软件开发过程总结 PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件开发过程总结
如果我带着仅有的一本计算机书在沙漠荒 岛,应该是哪本书?
”
目录
软件概 论
软件工程概论
软件开发模型概 论
软件设计
软件概论
软件是什么 软件的特征 软件危机
软件
• 是客观世界中问题空间与解空间 的具体描述,
• 是追求表达能力强、更符合人类 思维模式,
• 具有易构造性和易演化性的计算 模型。
1 用分阶段的生存周期计划严格管理 2 坚持进行阶段评审 3 实行严格的产品控制 4 采用现代程序设计技术 5 结果应能清楚地审查 6 开发小组的人员应少而精 7 承认不断改进软件工程实践的必要性
软件工程 - 项目目标
互斥关系 互补关系
低开发成本
易于维护
按时交付
高可靠性
高性能
➢ 付出较低的开发成本;
如:DeRemer定律、银弹定律、…
➢ 最佳实践:由法则衍生的应用或技术实例
如:需求分簇实践
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
软件工程 - 基本思想
著名的软件工程专家B. W. Boehm于1983年提出
巴利·玻姆(Barry W. Boehm)—软件工程估 算模型COO模型之父、 软件过程螺旋式模型之 父
软件概论
软件是什么 软件的特征 软件危机
Software Crisis
➢ 1 缺乏“可见性” ➢ 2 规模庞大,逻辑结构复杂 ➢ 3 重设计,轻视用户需求分析 ➢ 4 质量管理不规范 ➢ 5 重开发,轻视维护
Software Crisis
1968年NATO-SE会议首次正式使用
软件生产率低,质量低
软件工程概念的形成与发展
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
※ “软件工程知识体系”指南(SWEBOK)第3版
➢ 定义软件工程知识框架,包括15个知识域
软件需求 软件设计 软件构造 软件测试 软件维护
变更管理
工程管理
工程过程 软件工程 模型与方法 软件质量
工程经济学 计算基础 数学基础 工程基础 软件工程 专业实践
软件危机真是一个无药可治的顽疾。声称能 医治它的人都是庸医、骗子和吹牛皮的人。
Edsger W.Dijkstra
“危机” --- 不恰当 暗示一种短期的、急性的严重问题 上述问题则是长期的、慢性的 近年常用“软件困扰”或“软件苦恼”来替换
为了应对“软件危机”, 专家 们主张: 以工程化方法开发 软件产品,即 软件工程(SE)
计算机软件 =
• 程序是以计算机语言表达的软件系统;
程序 + 数据 + 文档 • 文档是以人类语言表达的软件系统。
软件概论
软件是什么 软件的特征 软件危机
软件是频变的!
软件是复杂的!
A
软件是迄今为止最复杂的人造产 品
——Frederick P.
Brooks
B 软件是频变的!
C 软件是商品! 软件无关乎比特、字节和协议,仅关 乎利润和损益 ——Louis Gerstner
小、中、大型 计算机系统 PDP11/70 VAX11/780
计算
间件的软件开发,计
算安全,敏捷开发 面向对象的软件开发,
人机界面,多媒体,项
目管理、CMM、
2000-
结构化的分析CM、MI
软件工程成为CC2004
设计、实现、测 试,项目管理
1985-2005 的一个学科
软件工程课程逐步成熟,
1968-1990 成为CC1991的一个领域
成本高,风险高,失败率高 维护难度大,可靠性差
文档资料通常不完整,不合格
进度的估计常常不准确
危
机
一半是危 一半是机 危中 机中 有机 存危
软件也许根本不同于历史上已经出现的任 何产品。 故而,软件实践不能、也不应完全参照传 统实践进行。
Micheal Mahoney
(1939—2008) 美国普林斯顿 (Princeton)大学科学史教授, 对软件工程学科有独到研究。
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
编程难
软件危机
软件出现 软件工程
天才程序员 小程序
1970年代
1960年代
1950年代
领域
需求
设计
实现
程序 代码
运行软件
过程模型
编程难 软件危机
开发原则 过程工程化
软件出现 软件工程
1980年代
天才程序员
小程序
1970年代
➢ 达到要求的软件功能;
➢ 取得较好的软件性能;
➢ 开发的软件易于移植;
➢ 需要较低的维护费用能按时 完成开发工作,及时交付使 用。
需考虑的问题
需考虑的问题
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
※ 变更创造一切,但同时又毁掉一切
软件必然会持续变更,且还将更加频 繁。 变更的影响范围必须得到有效控制, 以避免对软件整体造成不必要的负面影响 。
1960年代
1950年代
领域
需求
设计
实现
程序 代码
运行软件
领域
编程难 软件危机
过程模型 开发原则 过程工程化
结构化方法 面向对象
1990年
需求 设计
软件出现 软件工程
1980年代 代
实现
天才程序员 小程序
1970年代
程序 代码
1960年代
运行软件
1950年代
需求管理 敏捷方法 架构设计 构件组装
➢ 力求辟除以往实践的“非工程” 特征
SE主题:
○ 控制软件及其开发过程的复杂 性
○ 从而消减软件危机及其负面影 响
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
软件工程
Software Engineering
为应对软件危机而提出
软件工程(SE)指科学知 识和工程方法,在软件开 发、维护和演化过程中的 系统应用,即软件的工程 化。
参考SWEBOK官网:
※ 核心知识(即在学科知识体系中处于核心地位的知识)
➢ 常识:专业实践所需的最基本知识
如:软件复杂性和频变性常识
理念 ➢
:经长期实践和反思而形成的思想Fra Baidu bibliotek念的抽象概括
如:分而治之和拥抱变更理念
➢ 法则:描述“怎么做”(即“How”)
如:关注点分离法则
定律 ➢
:描述“某现象是什么或怎么发生”(即“What”)
编程难 软件危机
过程模型 开发原则
结构化方法质量控制
面向对象
2000年
过程工程化
1990年 代
软件出现 软件工程
1980年代 代
天才程序员 小程序
1970年代
1960年代
1950年代
硬件支撑能力
Internet广泛应用
基于网络服务的超大系
统、计算安全、系统管
个人计算机、窗
理、监控、评估
口、网络、分布 基于网络、构件、中
如果我带着仅有的一本计算机书在沙漠荒 岛,应该是哪本书?
”
目录
软件概 论
软件工程概论
软件开发模型概 论
软件设计
软件概论
软件是什么 软件的特征 软件危机
软件
• 是客观世界中问题空间与解空间 的具体描述,
• 是追求表达能力强、更符合人类 思维模式,
• 具有易构造性和易演化性的计算 模型。
1 用分阶段的生存周期计划严格管理 2 坚持进行阶段评审 3 实行严格的产品控制 4 采用现代程序设计技术 5 结果应能清楚地审查 6 开发小组的人员应少而精 7 承认不断改进软件工程实践的必要性
软件工程 - 项目目标
互斥关系 互补关系
低开发成本
易于维护
按时交付
高可靠性
高性能
➢ 付出较低的开发成本;
如:DeRemer定律、银弹定律、…
➢ 最佳实践:由法则衍生的应用或技术实例
如:需求分簇实践
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
软件工程 - 基本思想
著名的软件工程专家B. W. Boehm于1983年提出
巴利·玻姆(Barry W. Boehm)—软件工程估 算模型COO模型之父、 软件过程螺旋式模型之 父
软件概论
软件是什么 软件的特征 软件危机
Software Crisis
➢ 1 缺乏“可见性” ➢ 2 规模庞大,逻辑结构复杂 ➢ 3 重设计,轻视用户需求分析 ➢ 4 质量管理不规范 ➢ 5 重开发,轻视维护
Software Crisis
1968年NATO-SE会议首次正式使用
软件生产率低,质量低
软件工程概念的形成与发展
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
※ “软件工程知识体系”指南(SWEBOK)第3版
➢ 定义软件工程知识框架,包括15个知识域
软件需求 软件设计 软件构造 软件测试 软件维护
变更管理
工程管理
工程过程 软件工程 模型与方法 软件质量
工程经济学 计算基础 数学基础 工程基础 软件工程 专业实践
软件危机真是一个无药可治的顽疾。声称能 医治它的人都是庸医、骗子和吹牛皮的人。
Edsger W.Dijkstra
“危机” --- 不恰当 暗示一种短期的、急性的严重问题 上述问题则是长期的、慢性的 近年常用“软件困扰”或“软件苦恼”来替换
为了应对“软件危机”, 专家 们主张: 以工程化方法开发 软件产品,即 软件工程(SE)
计算机软件 =
• 程序是以计算机语言表达的软件系统;
程序 + 数据 + 文档 • 文档是以人类语言表达的软件系统。
软件概论
软件是什么 软件的特征 软件危机
软件是频变的!
软件是复杂的!
A
软件是迄今为止最复杂的人造产 品
——Frederick P.
Brooks
B 软件是频变的!
C 软件是商品! 软件无关乎比特、字节和协议,仅关 乎利润和损益 ——Louis Gerstner
小、中、大型 计算机系统 PDP11/70 VAX11/780
计算
间件的软件开发,计
算安全,敏捷开发 面向对象的软件开发,
人机界面,多媒体,项
目管理、CMM、
2000-
结构化的分析CM、MI
软件工程成为CC2004
设计、实现、测 试,项目管理
1985-2005 的一个学科
软件工程课程逐步成熟,
1968-1990 成为CC1991的一个领域
成本高,风险高,失败率高 维护难度大,可靠性差
文档资料通常不完整,不合格
进度的估计常常不准确
危
机
一半是危 一半是机 危中 机中 有机 存危
软件也许根本不同于历史上已经出现的任 何产品。 故而,软件实践不能、也不应完全参照传 统实践进行。
Micheal Mahoney
(1939—2008) 美国普林斯顿 (Princeton)大学科学史教授, 对软件工程学科有独到研究。
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
编程难
软件危机
软件出现 软件工程
天才程序员 小程序
1970年代
1960年代
1950年代
领域
需求
设计
实现
程序 代码
运行软件
过程模型
编程难 软件危机
开发原则 过程工程化
软件出现 软件工程
1980年代
天才程序员
小程序
1970年代
➢ 达到要求的软件功能;
➢ 取得较好的软件性能;
➢ 开发的软件易于移植;
➢ 需要较低的维护费用能按时 完成开发工作,及时交付使 用。
需考虑的问题
需考虑的问题
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
※ 变更创造一切,但同时又毁掉一切
软件必然会持续变更,且还将更加频 繁。 变更的影响范围必须得到有效控制, 以避免对软件整体造成不必要的负面影响 。
1960年代
1950年代
领域
需求
设计
实现
程序 代码
运行软件
领域
编程难 软件危机
过程模型 开发原则 过程工程化
结构化方法 面向对象
1990年
需求 设计
软件出现 软件工程
1980年代 代
实现
天才程序员 小程序
1970年代
程序 代码
1960年代
运行软件
1950年代
需求管理 敏捷方法 架构设计 构件组装
➢ 力求辟除以往实践的“非工程” 特征
SE主题:
○ 控制软件及其开发过程的复杂 性
○ 从而消减软件危机及其负面影 响
软件工程概论
软件工程 基本思想与目标
发展史 知识体系 四大挑战 原则与方法
软件工程
Software Engineering
为应对软件危机而提出
软件工程(SE)指科学知 识和工程方法,在软件开 发、维护和演化过程中的 系统应用,即软件的工程 化。
参考SWEBOK官网:
※ 核心知识(即在学科知识体系中处于核心地位的知识)
➢ 常识:专业实践所需的最基本知识
如:软件复杂性和频变性常识
理念 ➢
:经长期实践和反思而形成的思想Fra Baidu bibliotek念的抽象概括
如:分而治之和拥抱变更理念
➢ 法则:描述“怎么做”(即“How”)
如:关注点分离法则
定律 ➢
:描述“某现象是什么或怎么发生”(即“What”)
编程难 软件危机
过程模型 开发原则
结构化方法质量控制
面向对象
2000年
过程工程化
1990年 代
软件出现 软件工程
1980年代 代
天才程序员 小程序
1970年代
1960年代
1950年代
硬件支撑能力
Internet广泛应用
基于网络服务的超大系
统、计算安全、系统管
个人计算机、窗
理、监控、评估
口、网络、分布 基于网络、构件、中