小结
一个软件工程通用过程模型包含了一系列的框架和普适性活动、动作及工作任务。每种过程模型都可以用不同的过程流来描述,工作流描述了框架活动、动作和任务如何按顺序组织。过程模式用来解决软件过程中遇到的共性问题。
传统软件过程模型已经使用了多年,力图给软件开发带来秩序和结构。每个模型都建议了一种过程流,但所有模型都实现同样的一组通用框架活动:沟通、策划、建模、构建和部署。
类似瀑布模型和V模型的顺序过程模型是最经典的软件工程模型,顺序过程模型建议采用线性过程流,这在软件世界里通常与当代软件开发的现实情况不符(例如,持续的变更、演化的系统和紧迫的开发时间)。但线性过程模型确实适用于需求定义清楚且稳定的软件开发。增量过程模型采用迭代的方式工作,能够快速地生成一个软件版本。演化过程模型认识到大多数软件工程项目的迭代和递增特性,其设计的目的是为了适应变更。演化模型,例如原型开发及螺旋模型,会快速地产生增量的工作产品(或是软件的工作版本)。这些模型可以应用于所有的软件工程活动—从概念开发到长期的软件维护。
软件生存周期过程(GB/T 8566—2007)进一步完善了软件生存周期的定义,即从概念形成直到退役,并且由获取和供应软件产品及服务的各个过程组成。把软件生存周期中可以开展的活动分为5个基本过程、8个支持过程和4个组织过程。为了降低成本和改进质量,应该针对具体项目来剪裁软件生存周期过程的有关标准。
软件过程是产生一个软件系统的一系列活动。软件过程模型是这些过程的抽象表示。“软件过程”的提出和发展是软件工程又一次认识上的飞跃,它标志着软件界已经认识到软件过程因素对软件开发的重要影响,它促使人们把注意力从对抽象的软件生存周期模型的研究,转向那些对软件项目的成功起着关键作用的过程细节的研究。
Rational统一过程是新式基本过程模型,是一种“用例驱动、以体系结构为核心、迭代及增量”的软件过程框架,由UML方法和工具支持,其特点是由阶段(起始、细化、构造建转换)所构成,但是它把活动(需求、分析和设计等)和阶段相区别。
在现代经济中,市场条件变化十分迅速,客户和最终用户的要求在演变,新一轮竞争威胁会没有任何征兆地出现。从业者必须使软件工程工作保持敏捷——要确保过程是灵活机动的、有适应能力的和精益的,以适应现代商务的需求。
软件工程的敏捷理念强调4个关键问题:自我组织团队对所开展工作具有控制力的重要性;团队成员之间,以及开发参与者与客户之间的交流与合作;对“变更代表机遇”的认识;以及强调快速软件交付以让客户满意。敏捷过程模型能解决上述这些问题。
极限编程(XP)是应用最广泛的敏捷过程。按照计划、设计、编码和测试4个框架活动组织,XP采用一系列新颖和有力的技术,保证敏捷团队创建能体现客户指定优先级特征和功能的频繁软件发布。其他敏捷过程模型也强调人员合作和团队自组织,只是定义自己的框架活动,选择不同的侧重点。