摘要:软件过程(Software Process)是人们建立、维护和进化软件产品整个过程中所有技术活动和管理活动的集合 [1]。目前,软件过程技术是一个非常活跃的研究领域,吸引了大批来自学术界和工业界的希赛网和学者。从1984年起每年有软件过程国际研讨会 (ISPW),从1991年起开始召开软件过程国际会议(ICSP),每个几乎都有自己的软件过程改进网络(SPN)。软件过程技术的研究主要有三个 方向:
>>>>>>>>>>点击进入2016年系统分析师考试网络课堂
>>>>>>>>>>点击进入2016年系统分析师考试大纲和教程
从图1中可以看出,基于RUP的软件过程是一个迭代过程。通过初始、细化、构建和提交四个阶
段就是一个开发周期,每次经过这四个阶段就会产生一代软件。除非产品退役,否则通过重复同样的四个阶段,产品将进化为下一代产品,但每一次的侧重点都将放
在不同的阶段上。这些随后的过程称为进化过程。
用户需求的变化、运行环境的变更、基础技术方面的变更等都会引发进化过程。通常情况
下,进化过程的初始阶段和细化阶段都比较简单,因为基本产品定义和体系结构在前面的开发过程就已经决定。但也有例外情况,例如对软件体系结构
(SoftwareArchitecture)进行重新定义的进化过程。
2.1初始阶段
初始阶段的任务是为系统建立业务模型并确定项目的边界。在初始阶段,必须识别所有与系统交互的外部实体,定义系统与外部实体交互的特性。在这个阶段中所
关注的是整个项目的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来说,初始阶段可能很短。初始阶段的实现过程如图2所示。
(1)明确项目规模
建立项目的软件规模和边界条件,包括验收标准;了解环境及重要的需求和约束,识别系统的关键用例(UseCase)。
(2)评估项目风险
软件过程主要关心的是软件开发的已知方面,只能准确描述、计划、分配和评审那些已经知道将要完成的事情。风险管理则主要关心未知方面。在基于RUP的迭
代式软件过程中,很多决策要受风险决定。要达到这个目的,开发者需要详细了解项目所面临的风险,并对如何降低或处理风险有明确的策略。
(3)制订项目计划
估计整个项目的总体成本、进度和人员配备。综合考虑备选体系结构,评估设计和自制/外购/重用方面的方案,从而估算出成本、进度和资源。在这个过程中,
要通过对一些概念的证实来证明可行性,该证明可采用可模拟需求的模型形式或用于探索高风险区的初始原型。初始阶段的原型设计工作应该限制在确信解决方案可
行就可以了,具体实现留到细化阶段和构建阶段。
(4)阶段技术评审
初始阶段结束时要进行一次技术评审,检查初始阶段的目标是否完成,并决定继续进行项目还是取消项目。在评审过程中,需要考虑项目的规模定义、成本和进度
估算是否适中,估算根据是否可靠?需求是否正确,开发方和用户方对软件需求的理解是否达成一致?是否已经确定所有风险,并且有针对每个风险的规避策略等问
题。
2.2细化阶段
细化阶段的任务是分析问题领域,建立健全的体系结构基础,淘汰项目中较高风险的元素。在细化阶段,必须在理解整个系统的基础上,对体系结构做出决策,包括其范围、主要功能和诸如性能等非功能需求,同时为项目建立支持环境。细化阶段的实现过程如图3所示。
相关链接:
软考备考资料免费领取
去领取