1、,第2章 软件过程,l软件过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施以及标志软件开发各个阶段任务完成的里程碑。,2.1 软件生命周期的基本任务 2.2 软件生命周期模型,1.软件生命周期:一个软件从定义、开发、运行维护 ,直到最终被废弃要经历一个漫长的时期,这个时期称为软件生命周期。,2. 软件生命周期的组成阶段及任务软件定义时期,回答“要解决的问题是什么?”,(1)问题定义阶段:通过调研,提出关于问题的性质、工程目标和工程规模的书面报告,并且需要得到客户的确认。,(2)可行性研究阶段:用最小的代价在尽可能短的时间内确定问题是否能够解决。, 进一
2、步了解用户需求 提出若干种可能的系统实现方案 分析每种方案的技术、经济、社会可行性 最终确定这项工程的可行性, 回答“是否有行得通的解决方法?”,(3)需求分析阶段:对目标系统提出完整、准确、清晰、具体的要求。, 得出经过用户确认的系统需求 用正式文档(需求规格说明)准确记录系统需求,l 回答 “系统必须做什么?”,软件开发时期,(5)详细设计阶段:设计每个模块的算法和数据结构,l 回答“怎样实现目标系统?”,(4)概要设计阶段:设计程序的体系结构,即确定程序由哪些模块组成以及模块间的关系。,(6)编码和单元测试阶段:写出正确的、易理解、易维护的程序代码;测试编写出的每一个模块,(7)综合测试
3、阶段:集成测试和验收测试,软件运行维护时期,(8)软件维护阶段:l目的:使系统持久地满足用户的需要,l四类维护活动:改正性维护、适应性维护、完善性维护、预防性维护,l软件生命周期模型也称为软件过程模型,它直观地描述了把软件生命周期划分成哪些阶段及各个阶段的执行顺序,2.2.1 瀑布模型 2.2.2 快速原型模型 2.2.3 增量模型 2.2.4 螺旋模型 2.2.5 喷泉模型,(1)瀑布模型,(2)瀑布模型的特点, 阶段间具有顺序性和依赖性, 推迟实现的观点(尽可能推迟软件的物理实现), 阶段质量保证观点l问题发现的越晚,付出的代价越大,l 瀑布模型的优点:, 强迫采用规范方法开发软件 严格规
4、定了各阶段提交的文档 各阶段提交的产品经过质量验证,l 瀑布模型的缺点:,分析和设计阶段只考虑逻辑模型,开发出可执行系统需要较长时间,不便于用户直接参与需求分析,可能导致最终的软件产品不能完全满足用户需求。,传统的瀑布模型,实际的瀑布模型,(1)快速原型模型的含义:,快速建立一个能反映用户主要需求的可执行系统, 让用户试用,根据用户意见进行修改,从而了解 真正的用户需求;然后抛弃原型,按瀑布模型开 发软件。,(2)快速原型模型,(3)快速原型模型的优点:,通过原型的使用和设计,获得了准确的用户需求; 积累了开发经验;软件开发时期的各阶段,基本 上是线性顺序进行,提高了总开发效率。,(1)增量模
5、型的含义:,把软件产品看成由一系列构件组成;每个构件 由若干个相互作用的模块组成,并且能够完成 特定的功能。,(2)增量模型:,增量模型1(图2.4):,开始实现各个构件之前,完成整个需求分析和 概要设计工作,增量模型2(图2.5):,不同的构件并行构建,(3)增量模型的特点:,能在较短的时间内向用户提交可完成一些有用工作的软件产品,软件体系结构必须是开放的,可维护性提高(开发软件和扩充软件都是向现有产品加入新构件),l使用原型、风险分析等方法来尽量降低风险(1)完整的螺旋模型 (图2.7),(2)简化的螺旋模型(图2.6),螺旋模型是在每个开发阶段之前都增加了风险分析的快速原型模型 每个周期包含4个方面的活动:制定计划;风险分析;实施工程;客户评估。 需要丰富的风险评估经验和专门知识; 适用于大的、需求不明确的项目。,l喷泉模型也称为面向对象的生命周期模型l软件开发过程是迭代的、无缝的 (图2.8),