第1页:第2讲软件生命周期和开发模型封面
第2讲软件生命周期和开发模型封面:第2讲软件生命周期和开发模型软件工程导论之用工程化的方法来开发软件
第2页:本讲内容:软件生命周期
本讲内容:软件生命周期
- 软件生命周期
- 软件开发模型
- CASE工具和环境
第3页:什么是软件生命周期
什么是软件生命周期
- 生命周期
- 人的生命周期:婴儿、幼儿、儿童、少年、…
- 软件生命周期
- 软件从提出开发开始到最终灭亡所经历的时期
第4页:软件生命周期示意图可行性研究需求分析概要
软件生命周期示意图可行性研究需求分析概要:设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发维护
第5页:可行性研究
可行性研究
- (1/2)
- (1/2)
- 任务
- 了解用户要求和现实环境,从技术、经济、市场等方面研究并论证开发该软件系统的可行性
- 技术途径
- 调查和了解用户要求和现实环境–攒写调查报告–可行性论证和分析(技术、经济等)–如可行,制定初步项目开发计划(人员,进度)
第6页:可行性研究
可行性研究
第7页:需求分析
需求分析
- (1/2)
- 任务–确定用户对待开发软件系统的需求包括:
- 功能
- 性能
- 运行环境约束
- 重要性–软件开发依据,软件验收的标准
- 困难性–难以说清,动态变化,歧义,复杂
第8页:需求分析
需求分析
- (2/2)
- (2/2)
- 技术途径和工具
- 需求分析人员需与用户不断、反复地交流和商讨,使用户需求逐步准确化、一致化、完全化–抽象、问题分解、快速原型、多视点等技术
- 阶段性产品
- 软件需求规格说明书SRS(功能,性能和运行环境约束)
第9页:概要设计
概要设计
- 任务
- 根据SRS建立目标软件系统总体结构、设计全局数据库和数据结构,规定设计约束,制定集成测试计划等等。
- 技术途径和工具
- 根据软件需求规格说明书,自顶向下,逐步求精,抽象,模块化,局部化,信息隐藏…...
- 阶段性产品
- 概要设计规格说明书–数据库或数据结构设计说明书–集成测试计划。
第10页:详细设计
详细设计
- 任务
- 细化概要设计所生成的各个模块,并详细描述程序模块的内部细节(算法,数据结构等),形成可编程的程序模块,制订单元测试计划
- 技术途径
- 根据SRS和概要设计结果进行,单入口单出口,PDL
- 阶段新产品
- 详细设计规格说明书–单元测试计划
第11页:实现
实现
- 任务
- 根据详细设计规格说明书编写源程序,并对程序进行调试和单元测试,验证程序与详细设计文档一致性
- 技术途径和工具
- 以详细设计规格说明书为依据、基于某种程序设计语言进行编码
- 阶段新产品
- 源程序代码
第12页:集成测试
集成测试
- 任务
- 根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试
- 技术途径和工具
- 以概要设计规格说明书和集成测试计划为依据,进行集成模块并进行测试–IDE,专有工具等
- 阶段性产品
- 生成满足概要设计要求、可运行的系统源程序和系统集成测试报告
第13页:确认测试
确认测试
- 任务
- 根据软件需求规格说明书,测试软件系统是否满足用户的需求
- 途径
- 由用户参与,以软件需求规格说明书为依据进行确认测试–专有工具
- 阶段性产品
- 可供用户使用的软件产品(文档,源程序)
第14页:软件维护
软件维护
- 任务
- 对使用后的软件进行维护例如:
- 修正使用过程中发现的错误-纠错性维护
- 修正使用过程中发现的错误-纠错性维护
- 增加新的功能-完善性维护
- 增加新的功能-完善性维护
- 从一个环境搬迁到另一个环境-适应性维护
- 从一个环境搬迁到另一个环境-适应性维护
- 途径
- 以文档和源程序为基础按用户要求进行
- 阶段性产品
- 版本更新的软件产品
第15页:本讲内容:软件生命周期
本讲内容:软件生命周期
- 软件生命周期
- 软件开发模型
- CASE工具和环境
第16页:软件开发模型
软件开发模型
- 软件生命周期(软件)
- 软件开发过程(开发人员) =?
- 软件开发模型是软件开发全过程、软件开发活动以及它们之间关系的的结构框架
- 软件项目的管理提供里程碑和进度表
- 为软件开发提供原则和方法
第17页:软件开发模型种类
软件开发模型种类
- 以软件需求可完全确定为前提的瀑布模型
- 在软件开发初期只能提供基本需求所采用的渐进式开发模型如原型模型、螺旋模型
- 以形式化开发方法为基础的变换模型
第18页:瀑布模型
瀑布模型
- (1/4)
- 主要思想
- 软件开发过程与软件生命周期是一致的
- 相邻二阶段之间存在因果关系
- 需对阶段性产品进行评审
第19页:可行性研究需求分析概要设计详细设计实现集
可行性研究需求分析概要设计详细设计实现集:成测试确认测试使用与维护瀑布模型(2/4)
第20页:瀑布模型
瀑布模型
第21页:可行性研究需求分析概要设计详细设计实现组
可行性研究需求分析概要设计详细设计实现组:装测试确认测试使用与维护带反馈的瀑布模型示意图
第22页:快速原型模型
快速原型模型:(1/2)
第23页:快速原型模型
快速原型模型
- (2/2)
- (2/2)
- 优点
- 有助于获取用户需求,加强对需求的理解–尽早发现软件中的错误–支持需求的动态变化–适合于需求动态变化,事先难以确定系统
- 不足
- 不能支持风险分析
第24页:螺旋模型
螺旋模型
- (1/2)
- 基本思想–螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析
第25页:螺旋模型
螺旋模型
- (2/2)
- 优点
- 有助于获取用户需求,加强对需求的理解
- 尽早发现软件中的错误
- 支持需求的动态变化
- 支持风险分析,可降低或者消除软件开发风险
- 适合于需求动态变化,事先难以确定并且开发风险较大的系统
第26页:本讲内容:软件生命周期
本讲内容:软件生命周期
- 软件生命周期
- 软件开发模型
- CASE工具和环境
第27页:什么是CASE工具和环境
什么是CASE工具和环境
- 计算机辅助软件工程(CASE)
- 在软件工程活动中,软件开发人员按照软件工程的方法和原则,借助于计算机及其软件工具的帮助来开发、维护和管理软件产品的过程
- CASE工具
- 支持CASE的工具(编译器,编辑器–推土机、锄头)
- 集成CASE环境
- 将CASE工具、信息按统一标准和接口组装起来,使工具间、人员间、各个过程间能方便交互的环境。–如Visual C++将编辑、编译、调试、界面设计、安装程序生成等等集成在一起。(联合收割机)
第28页:CASE工具和环境的类别
CASE工具和环境的类别:目前已有大量的CASE工具–项目管理工具:估算项目成本和工作量,制定项目规划等等;–分析和设计工具:用于系统建模;–程序设计工具:编译器,调试器等;–测试工具:测试用例生成,程序动态跟踪工具
第29页:CASE工具例子
CASE工具例子
- Rational Rose
- Microsoft Visual Studio
第30页:本讲小结1.软件生命周期
本讲小结1.软件生命周期:软件开发模型3.CASE工具和环境
第31页:思考题
思考题
- 你认为软件开发有什么特点?面临主要问题是什么?
- 软件开发模型和软件生命周期有何区别?
- 软件开发模型在软件开发过程中起到什么作用?没有它行吗?
- CASE工具和环境在软件开发过程中起到什么作用?没有它行吗?
第32页:问答与交流
本讲内容讲解完毕,进入提问与交流环节,可围绕本讲要点进行提问与讨论。