《实践者的研究方法》—— 第3章 软件工程 3.4 过程模式

本节书摘来自华章出版社《实践者的研究方法》一书中的第3章,第3.4节,作者罗杰 S. 普莱斯曼(Roger S. Pressman),更多章节内容可以访问云栖社区“华章计算机”公众号查看。


3.4 过程模式

每个软件团队在软件过程里都会遇到很多问题。针对这些问题,如果软件团队能够得到已有的经过验证的解决方案,将有助于他们快速地分析和解决问题。过程模式(process pattern)描述了软件工程工作中遇到的过程相关的问题,明确了问题环境并给出了针对该问题的一种或几种可证明的解决方案。通俗地讲,过程模式提供了一个模板[Amb98]——?一种在软件过程的背景下统一描述问题解决方案的方法。通过模式组合,软件团队可以解决问题并定义最符合项目需求的开发过程。

我们可以在不同抽象层次上定义模式。在某些情况下,模式可以描述一个与完整过程模型(例如原型开发)相关的问题(及其解决方案);在其他的情况下,模式可以描述一个与框架活动(如策划)或者框架活动中的一动作(如项目估算)相关的问题(及其解决方案)。

Ambler[Amb98]提出了下面的过程模式的描述模板:

模式名称。模式名称应能清楚地表述该模式在软件过程中的含义(例如技术评审)。

驱动力。模式的使用环境及主要问题,这些问题会显现在软件过程中并可能影响解决方案。

类型。定义模式类型。Ambler[Amb98]提出了三种类型:

1. 步骤模式(stage pattern)——定义了与过程的框架活动相关的问题。由于框架活动包括很多动作和工作任务,因此步骤模式包括与步骤(框架活动)有关的许多任务模式(见以下描述)。例如,建立沟通可能作为一个步骤模式,该步骤模式可能包括需求收集等任务模式。

2. 任务模式(task pattern)——定义了与软件工程动作或是工作任务相关、关系软件工程实践成败的问题(例如,需求收集是一个任务模式)。

3. 阶段模式(phase pattern)——定义在过程中发生的框架活动序列,即使这些活动流本质上是迭代的。例如,螺旋模型和原型开发就可能是两种阶段模式。

启动条件。它描述的是模式应用的前提条件。在应用模式之前需要明确:(1)在此之前,整个开发组织或是开发团队内已经有哪些活动?(2)过程的进入状态是什么?(3)已经有哪些软件工程信息或是项目信息?

例如,策划模式(阶段模式)需要的前提条件有:(1)客户和软件工程师已经建立了合作的交流机制;(2)已经成功完成一些客户沟通模式中特定的任务模式;(3)项目范围、基本业务需求和项目限制条件已经确定。

问题。描述模式将要解决的具体问题。

解决方案。描述如何成功实现模式。这部分主要讨论随着模式的启动,过程的初始状态(模式应用之前就已经存在)是如何发生改变的。解决方案也描述了随着模式的成功执行,模式启动之前所获得的软件工程信息和项目信息是如何变换的。

结果。描述模式成功执行之后的结果。模式完成时需要明确:(1)必须完成哪些开发组织或是开发团队相关的活动?(2)过程的结束状态是什么?(3)产生了哪些软件工程信息或是项目信息?

相关模式。以层次化或其他图的方式列举与该模式相关的其他过程模式。例如步骤模式沟通包括了一组任务模式:项目团队组织、合作指导原则定义、范围分解、需求收集、约束描述以及场景模式的创建等。

已知应用和实例。说明该模式可应用的具体实例。例如,沟通在每一个软件项目的开始都是必需的,建议在整个软件项目过程中采用,并规定在部署活动中必须进行。

过程模式提供了一种有效的机制,用以解决任何与软件过程相关的问题。模式使得软件工程组织能够从高层抽象开始(阶段模式)建立层次化的过程描述。高层抽象描述又进一步细化为一系列步骤模式以描述框架活动,然后每一个步骤模式又进一步逐层细化为更详细的任务模式。过程模式一旦建立起来,就可以进行复用以定义各种过程变体,即软件开发团队可以将模式作为过程模型的构建模块,定制特定的过程模型。

信息栏  过程模式实例

当利益相关者对工作成果有大致的想法,但对具体的软件需求还不确定时,下述简化的过程模式描述了可采用的方法。

模式名称。需求不清。

目的。该模式描述了一种构建模型(或是原型系统)的方法,使得利益相关者可以反复评估,以便识别和确定软件需求。

类型。阶段模式。

启动条件。在模式启动之前必须满足以下四个条件:(1)确定利益相关者;(2)已经建立起利益相关者和软件开发团队之间的沟通方式;(3)利益相关者确定了需要解决的主要问题;(4)对项目范围、基本业务需求和项目约束条件有了初步了解。

问题。需求模糊或者不存在,但都清楚地认识到项目存在问题,且该问题需要通过软件解决。利益相关者不确定他们想要什么,即他们无法详细描述软件需求。

解决方案。描述了原型开发过程,详见4.1.3节。

结果。开发了软件原型,识别了基本的需求(例如交互模式、计算特性、处理功能等),并获得了利益相关者的认可。随后,可能有两种结果:(1)原型系统可以通过一系列的增量开发,演化成为软件产品;(2)原型系统被抛弃,采用其他过程模式建立了产品软件。

相关模式。以下模式与该模式相关:客户沟通,迭代设计,迭代开发,客户评价,需求抽取。

已知应用和实例。当需求不确定时,推荐原型开发方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值