现代软件工程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
? 利用相应原型开发工具快速开发 ? 已经完成核心产品开发和试点,进行本地化、客
户化的过程,称为二次开发(迭代和演化)
《现代软件工程》
第一章 现代软件工程概述
第一章 现代软件工程概述
从软件到软件工程:进入一个新的境界 -1 生命周期:软件工程的基本思路 -2
技术与方法:软件工程的基本过程 -3 软件企业的现代软件工程实践 -4
第一章 现代软件工程概述
1.2 生命周期:软件工程的基本思路
软件生存周期-2.1 瀑布模型-2.2 原型模型-2.3 喷泉模型-2.4 增量模型-2.5 螺旋模型-2.6
构件组装模型-2.7 统一软件过程RUP模型-2.8
2.1 软件工程的生存周期
1. “生存周期”的起源
人类解决复杂问题时普遍采用的一个策略是“各个击破”,也就 是对问题进行分解,然后再分别解决各个子问题的策略。
软件工程采用的“生存周期法”,就是从时间角度对软件开发和 维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若 干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶 段的任务。
2.2 软件开发过程模型—瀑布模型
? 具有维护阶段循环的软件生存期的瀑布模型
2.3 软件开发过程模型——原型模型
二、原型(迭代)模型
1. 基本思想
– 在获取一组基本的需求定义后,利用高级软件工 具的可开发环境,快速地建立一个目标系统的最 初版本-原型,并把它交给用户试用、补充和修改, 再进行新的版本开发。反复进行这个过程,直到 得出系统的“精确解”,即用户满意为止。
系统 实施 用户手 册
当 前系统 运行维 护 当 前系统 的生命 期
图2-1 MIS生命 周期模 型
新系 统运行 维护
时间
2.2 软件开发过程模型—瀑布模型
? 瀑布模型的缺点:
1. 从认识论角度看,人的认识是一个多次反复循环的过程, 不可能一次完成。但瀑布模型中划分的几个阶段,没有反 映出这种认识过程的反复性。 特别是瀑布模型过于依赖早 期进行的唯一一次需求调查,不能适应需求的变化 ;
定义软件生存周期的另一个目的,是提供一个公共的框架,以便 软件人员可以用相同的语言,在各自的环境中,开展工作。
这是传统软件工程的基本想法。
2.1 软件工程的生存周期
2. 生存周期划分的原则
? 各阶段的任务彼此间尽可能相对独立,同一个阶段各项 任务的性质尽可能相同,从而降低每个阶段任务的复杂 性,简化不同阶段之间的联系,有利于软件开发过程的 组织管理。
? 瀑布模型的优点:
1.强调开发的阶段性; 2.强调早期计划及需求调查; 3.强调产品测试。
瀑布模型与全生命周期 ——另一种看法
抽
新系 统的生 命期
象 程
系统 开发过 程
度
系统 规划 可行性 报告
参
系统 分析
系统 说明书
考 系统 设计 设计说 明书
产品的观点
产品的全生命 周期要长于 (开发)项目 的生命周期
– 经过这样一个反复补充和修改的过程,应用系统 的“最初版本”就逐步演变为系统的“最终版 本”。
– 原型 :一个真实的可执行模型,它实现了系统的 若干基本功能。
– 原型 法:不断地运行系统“原型”来进行启发、 揭示和判断的系统开发方法。
2.3 软件开发过程模型——原型模型
2.原型(迭代)模型的来源:
生存周期各阶段的工作
阶段 关键问题 结束标准
问 题 定 问 题 是 什 关于规模和目标的报告书
Fra Baidu bibliotek
义
么?
可 行 性 有 可 行 的 解 系统的高层逻辑模型: 数据流图、
研究 吗?
成本 /效益分析
需求分析 系 统 必 须 做 系统的逻辑模型:数据流图、数
什么?
据字典、算法描述
总体设计 如 何 解 决 已 可能的解法:系统流程图、成本 /
3. “生存周期法”的特点
? 阶段具有顺序性和依赖性 ? 推迟实现的观点
– 不到最后阶段,不知道真正的结果
? 质量保证的观点
– 每个阶段都必须完成规定的文档 – 每个阶段结束前都要对所完成的文档进行评审,以便尽早
发现问题,改正错误。
4. 生存周期的划分
? 传统软件生存周期一般分为:软件定义(问题定义、可 行性研究、需求分析)、软件开发(总体设计、详细设 计、编码和单元测试、综合测试)、软件维护等三个时 期。
2. 软件开发是一个知识密集型的开发活动,需要相互合作完 成,但瀑布模型没有体现这一点。特别是由于瀑布模型是 单一流程,开发中的经验教训不能反馈应用于本产品的过 程。
思考题:
1、我们的日常生活中,有哪些活动是符合瀑布模型的? 2、为什么我们的小型开发团队连瀑布模型都不能坚持
做到?客观因素是什么?
3、瀑布模型的现实实用价值在哪里?
提 出 的 问 效益分析;推荐的系统结构:层
题?
次图或结构图
生存周期各阶段的工作
阶段 关键问题 结束标准
详细设计 怎 样 具 体 地 编码规格说明: HIPO 图或
实 现 这 个 系 PDL
统?
编码 和单 正 确 的 程 序 原程序清单:单元测试方案
元测试 模块
和结果
综合测试 符 合 要 求 的 综合测试方案和结果;完整
软件
一致的软件配置
维护
持 久 地 满 足 完整准确的维护记录
需要的软件
2.2 软件开发过程模型—瀑布模型
问题定义
定义阶段
软件需求
总体设计 详细设计
开发阶段
一、瀑布模型 (waterfall Model)
– 传统的生命周期模型 – 70年由Royce提出
– 典型瀑布模型具有顺序性 和依赖性
编程调试
维护阶段
瀑布模型造成软件错误的积累和放大效应
原始要求 分析 正确的规格说明 错误的规格说明 设计 正确设计 错误设计 对错误说明的设计 编码 正确编码 错误编码 错误设计的编码 错误说明编码 测试 正确功能 可纠正错误 不可纠正和潜伏的错误
交付的软件产品
2.2 软件开发过程模型—瀑布模型
? 软件的变更、维护往往经历软件生存期的各个阶段, 因此,瀑布模型也有反馈,构成生存期循环。 下图:上下阶段间循环:
运行维护
2.2 软件开发过程模型—瀑布模型
– 瀑布模型的特征
1. 从上一项活动中接受该项活动的工作成果 (工作产品),作为输入。
2. 利用这一输入实施该项活动应完成的内容 3. 给出该项活动的工作成果,作为输出传给下
一项活动 4. 对该项活动实施的工作进行评审。若其工作
得到确认,则继续下一项活动。
户化的过程,称为二次开发(迭代和演化)
《现代软件工程》
第一章 现代软件工程概述
第一章 现代软件工程概述
从软件到软件工程:进入一个新的境界 -1 生命周期:软件工程的基本思路 -2
技术与方法:软件工程的基本过程 -3 软件企业的现代软件工程实践 -4
第一章 现代软件工程概述
1.2 生命周期:软件工程的基本思路
软件生存周期-2.1 瀑布模型-2.2 原型模型-2.3 喷泉模型-2.4 增量模型-2.5 螺旋模型-2.6
构件组装模型-2.7 统一软件过程RUP模型-2.8
2.1 软件工程的生存周期
1. “生存周期”的起源
人类解决复杂问题时普遍采用的一个策略是“各个击破”,也就 是对问题进行分解,然后再分别解决各个子问题的策略。
软件工程采用的“生存周期法”,就是从时间角度对软件开发和 维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若 干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶 段的任务。
2.2 软件开发过程模型—瀑布模型
? 具有维护阶段循环的软件生存期的瀑布模型
2.3 软件开发过程模型——原型模型
二、原型(迭代)模型
1. 基本思想
– 在获取一组基本的需求定义后,利用高级软件工 具的可开发环境,快速地建立一个目标系统的最 初版本-原型,并把它交给用户试用、补充和修改, 再进行新的版本开发。反复进行这个过程,直到 得出系统的“精确解”,即用户满意为止。
系统 实施 用户手 册
当 前系统 运行维 护 当 前系统 的生命 期
图2-1 MIS生命 周期模 型
新系 统运行 维护
时间
2.2 软件开发过程模型—瀑布模型
? 瀑布模型的缺点:
1. 从认识论角度看,人的认识是一个多次反复循环的过程, 不可能一次完成。但瀑布模型中划分的几个阶段,没有反 映出这种认识过程的反复性。 特别是瀑布模型过于依赖早 期进行的唯一一次需求调查,不能适应需求的变化 ;
定义软件生存周期的另一个目的,是提供一个公共的框架,以便 软件人员可以用相同的语言,在各自的环境中,开展工作。
这是传统软件工程的基本想法。
2.1 软件工程的生存周期
2. 生存周期划分的原则
? 各阶段的任务彼此间尽可能相对独立,同一个阶段各项 任务的性质尽可能相同,从而降低每个阶段任务的复杂 性,简化不同阶段之间的联系,有利于软件开发过程的 组织管理。
? 瀑布模型的优点:
1.强调开发的阶段性; 2.强调早期计划及需求调查; 3.强调产品测试。
瀑布模型与全生命周期 ——另一种看法
抽
新系 统的生 命期
象 程
系统 开发过 程
度
系统 规划 可行性 报告
参
系统 分析
系统 说明书
考 系统 设计 设计说 明书
产品的观点
产品的全生命 周期要长于 (开发)项目 的生命周期
– 经过这样一个反复补充和修改的过程,应用系统 的“最初版本”就逐步演变为系统的“最终版 本”。
– 原型 :一个真实的可执行模型,它实现了系统的 若干基本功能。
– 原型 法:不断地运行系统“原型”来进行启发、 揭示和判断的系统开发方法。
2.3 软件开发过程模型——原型模型
2.原型(迭代)模型的来源:
生存周期各阶段的工作
阶段 关键问题 结束标准
问 题 定 问 题 是 什 关于规模和目标的报告书
Fra Baidu bibliotek
义
么?
可 行 性 有 可 行 的 解 系统的高层逻辑模型: 数据流图、
研究 吗?
成本 /效益分析
需求分析 系 统 必 须 做 系统的逻辑模型:数据流图、数
什么?
据字典、算法描述
总体设计 如 何 解 决 已 可能的解法:系统流程图、成本 /
3. “生存周期法”的特点
? 阶段具有顺序性和依赖性 ? 推迟实现的观点
– 不到最后阶段,不知道真正的结果
? 质量保证的观点
– 每个阶段都必须完成规定的文档 – 每个阶段结束前都要对所完成的文档进行评审,以便尽早
发现问题,改正错误。
4. 生存周期的划分
? 传统软件生存周期一般分为:软件定义(问题定义、可 行性研究、需求分析)、软件开发(总体设计、详细设 计、编码和单元测试、综合测试)、软件维护等三个时 期。
2. 软件开发是一个知识密集型的开发活动,需要相互合作完 成,但瀑布模型没有体现这一点。特别是由于瀑布模型是 单一流程,开发中的经验教训不能反馈应用于本产品的过 程。
思考题:
1、我们的日常生活中,有哪些活动是符合瀑布模型的? 2、为什么我们的小型开发团队连瀑布模型都不能坚持
做到?客观因素是什么?
3、瀑布模型的现实实用价值在哪里?
提 出 的 问 效益分析;推荐的系统结构:层
题?
次图或结构图
生存周期各阶段的工作
阶段 关键问题 结束标准
详细设计 怎 样 具 体 地 编码规格说明: HIPO 图或
实 现 这 个 系 PDL
统?
编码 和单 正 确 的 程 序 原程序清单:单元测试方案
元测试 模块
和结果
综合测试 符 合 要 求 的 综合测试方案和结果;完整
软件
一致的软件配置
维护
持 久 地 满 足 完整准确的维护记录
需要的软件
2.2 软件开发过程模型—瀑布模型
问题定义
定义阶段
软件需求
总体设计 详细设计
开发阶段
一、瀑布模型 (waterfall Model)
– 传统的生命周期模型 – 70年由Royce提出
– 典型瀑布模型具有顺序性 和依赖性
编程调试
维护阶段
瀑布模型造成软件错误的积累和放大效应
原始要求 分析 正确的规格说明 错误的规格说明 设计 正确设计 错误设计 对错误说明的设计 编码 正确编码 错误编码 错误设计的编码 错误说明编码 测试 正确功能 可纠正错误 不可纠正和潜伏的错误
交付的软件产品
2.2 软件开发过程模型—瀑布模型
? 软件的变更、维护往往经历软件生存期的各个阶段, 因此,瀑布模型也有反馈,构成生存期循环。 下图:上下阶段间循环:
运行维护
2.2 软件开发过程模型—瀑布模型
– 瀑布模型的特征
1. 从上一项活动中接受该项活动的工作成果 (工作产品),作为输入。
2. 利用这一输入实施该项活动应完成的内容 3. 给出该项活动的工作成果,作为输出传给下
一项活动 4. 对该项活动实施的工作进行评审。若其工作
得到确认,则继续下一项活动。