(6) 健壮性:不受意外发生问题的干扰。
(7) 可维护性:过程可以根据开发组织的需求的改变而改进。
(8) 高效率:从给出软件规格说明起,就能够较快地完成开发而交付使用。
2.2 软件过程的思维
什么是过程思维
过程思维就像是一种宗教信仰,无论你相信与否,它都会对你传统的思维方式形成挑战,并试图
加以改变。
过程思维会使大家保持行为的一致,从而实现整体能力的提升,并获得更佳的效果。
过程思维,从某种意义上讲,反映了人类的大脑对知识与经验的保存及其使用方式。是一种自然的
思维方式。
什么是过程
从字面上,过程又很多种不同的定义。如活动与操作的集合;用于产生及软件进化的一系列的活动、
方法和实践;对于一个特定的目标所完成的一系列的操作步骤(例如软件开发过程);通过一种或多
种输入产生对用户有价值的输出的一系列活动的集合等等。
以上的定义之所以会各不相同,是因为它们各自的关注点不同。这些定义无一例外地强调了过程的
某一方面而忽略了其他方面。过程事实上有以下
3 个方面的特征。
(
1
) 过程应被定义,通常是将过程所包含的活动及程序文档化;
(
2
) 应将关于过程的知识传授给需要执行过程的每一个人;
(
3
) 让过程的知识深入的每个执行者的头脑中去,并以此驱动他们的行为与活动,就像产品的
形成是经过一系列的工序处理后的结果一样,通过执行过程中的活动才能获得最终的过程结果
[5]
。
为了实现特定目标,所做的行为、活动及任务也可以反映出为实现目标所采用的目标的特点。一个
规范化的过程可以按顺序被加以细分,并且有统一活动模式,这一点无论是针对个体还是团队都是有
效的。针对特定的状态或者为实现特定的任务,过程定义了活动或事件发生时的响应方式。
2.3 软件工程过程模型
在一个具体的实际工程活动中,软件工程师必须设计、提炼出一个工程开发策略,用以覆盖软件过
“
”
程中的基本阶段,确定所涉及的过程、方法、工具。这种策略常被称为 软件工程过程模型 。
在软件工程实践中,过程模型比较流行的有:瀑布模型、原型模型、快速应用开发模型、增量模型、
螺旋模型、形式化方法模型、
RUP
(
Rational Unified Process )模型、敏捷过程模型、构件组装模型、
并发开发模型等等。
“
” “
” “
”
过程模型的共性:一般都包含 定义(或计划) 、 开发 和 维护
3 类活动。定义活动主要弄清软
“
”
“
”
“
”
“
件 做什么 ;开发活动集中解决让软件 怎么做 ;维护活动则聚集于软件的 修改 ,即
What-How-
Change”
瀑布模型(也称线性顺序模型或软件生存周期模型),是
W.Royce 在 1970 年提出的。瀑布模型
遵循软件生存期的划分,明确规定各个阶段的任务,各个阶段的工作自上而下、顺序展开,如同瀑布流
水,逐级下落。
瀑布模型把软件生存周期划分为计划时期(或定义时期)、开发时期和运行时期。这三个时期又分
别细分为若干个阶段。参看图
2.2-1。
2