软件工程基础图式(第二章)
软件工程图示(第二章)
学习目标
1)软件过程和过程模型的概念
2)不同过程模型特征及优缺点
3)如何为不同项目选择过程模型
1、软件过程概念
软件过程:路线图(可预测步骤)
过程模型:定义了若干小的框架活动,为完整的软件开发过程奠定了基础(活动>动作>任务)
活动:宽泛目标(不实际意义考虑)
动作
任务:小而明确,产生实际产品
软件生命周期:止于被废弃
所有过程都具有以下活动:1、沟通 2、计划 3、建模 4、构建 5、布署
2、传统软件过程模型
瀑布模型/经典生命周期模型(9个活动)
内容:可行性研究⬅️➡️需求分析⬅️➡️总体设计⬅️➡️详细设计⬅️➡️实现与组装测试⬅️➡️验收测试⬅️➡️软件使用与维护
可行性研究:(1)技术可行性(2)经济可行性(3)法律可行性
特点:(1)顺序性和依赖性(2)推迟实现(3)每个过程建立完整文档(里程碑-可交付产品)
缺点:(1)增加工作量(死板、大量文档)(2)开发风险大(3)早期错误发现晚(4)不适应需求变化(不支持迭代)
问题:(1)小型,需求非常明确(2)技术成熟、工程管理严格:军工、航天、医疗
原型模型(原型+瀑布模型——降低需求不明确风险)
原型:一个部分开发的产品。用于明确需求,验证方案,最终可能会被抛弃。
内容:原型构建+系统开发
优点:减少需求不明确带来的风险
增量模型(n✖️瀑布模型——降低需求变化风险)
增量:小而可用的软件。在前面增量的基础上开发后面的增量,每个增量的开发可用瀑布或快速/原型模型。
开发方法:(1)增量方式:增加新功能(2)迭代方式;改进功能
特点:(1)非整体开发,进化式(2)从部分需求开发(3)迭代的思路。
优点:方便改动,人员精简
缺点:增量功能不相似则不合适,增量划分难把握
螺旋模型(原型嵌入瀑布模型)
开发过程分成若干次迭代(组成瀑布模型),每次迭代代表开发的一个阶段,对应模型一条环线
经典四迭代:操作概念—>软件需求—>软件设计—>软件实现
每次迭代分成四个方面活动(含原型模型),对应四个象限
喷泉模型
面向对象开发