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