软件工程课件第1章 软件工程概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
增量模型
软件过程模型
增 量
系统需求子集1
需求
设计
编码 测试
交付增量1
系统需求子集2 需求 设计 编码 测试 交付增量2
………………………………………………………………
系统需求子集N 需求 设计 编码 测试 交付增量N
时间
增量模型是对软件项目中功能以一系列增量的方式来开发,也被称为渐增式 开发模型。增量模型是一种非整体开发模型,对于系统整体需求,增量模 型先将需求分解为若干部分,每个部分都按照瀑布模型方法进行开发。
项目计划确 认
第1章 软件工程概述
第 25 页25
软件开发方法
结构化开发方法
1978年E. Yourdon和L. L. Constantine提出了结构化方法,也 称为面向功能的软件开发方法或面向数据流的软件开发方法。 它首先提出用结构化分析(Structure Analysis,SA)对软件 进行需求分析,之后用结构化设计(Structure Design,SD) 方法进行系统设计,最后用结构化编程(Structure Programming,SP)实现软件。结构化方法提出的开发过程 步骤明确,SA、SD和SP三个阶段彼此衔接,前后照应。
第1章 软件工程概述
第 22 页22
软件过程模型
敏捷过程模型
维护
开始
循环
初始计划
开发停止
支持 发布
计划
分析说明
需求 分析
评价
客户评价
测试 集成
设计和 开发 设计和
初始开发 实现
人工与 自动化
编码和 实现文档
价值体现: ❖ 个体和交互胜过过程和工具 ❖ 可以工作的软件胜过面面俱 到的文档 ❖客户合作胜过合同谈判 ❖响应变化胜过遵循计划
著名的软件工程专家Barry W. Boehm给出的定义是,运用现代科学技术知识 来设计并构造计算机程序以及为开发、运行和维护这些程序所必须的相关文 件资料。
1983年IEEE给出的定义是,软件工程是开发、运行、维护和修复软件的系统 方法。
1993年IEEE又给出一个更全面更具体的定义:软件工程是把系统的、规范的 、可度量的途径应用于软件开发、运行和维护的全过程,以及对上述方法的 研究。
第 21 页21
软件过程模型
喷泉模型是B.H.Sollers和J.M.Edwards在1990年提出的软件开 发过程模型。从图1-12中可以看到,喷泉模型最大的特点在于软 件过程的每个阶段相互重叠,而不像其它过程模型每阶段有明显 界线。
其特点如下: ➢开发阶段的相互重叠 ➢支持重用 ➢不严格的阶段划分,增量式 开发 ➢对象驱动
可行性与计划
需求源自文库析
运行和维护 … 运行和维护 …
设计
测试
实现
报废
软件工程生命周期各阶段
退化
第1章 软件工程概述
第 15 页15
软件与软件过程
软件过程是由组织或项目使用的,用以计划、管理、执 行、监控和改进其软件相关活动的过程或过程的集合。
可行性分析与计划
确认测试
需求分析
验收测试
概要设计
集成测试
详细设计 界
第1章 软件工程概述
第 11 页11
软件工程的概念
软件工程的实施原则
➢用分阶段的生命周期计划严格管理 ➢坚持进行阶段评审 ➢执行严格的产品质量控制 ➢采用现代化程序设计技术 ➢结果应能清楚地审查 ➢开发人员应少而精 ➢承认不断改经软件工程的必要性
第1章 软件工程概述
第 12 页12
软件与软件过程
原型模型
原型是软件开发过程中一个用于实验的、测试的或早期能运行 的简单系统。由于在软件开发的需求分析阶段,难以确定用户 需求,因而软件人员根据用户初步的、不明确的需求快速开发 出系统原型。
开始
维护
简要获取 需求
产生样品
原型 再加工
快速设计
评审、修改
建造原型
客户评价
第1章 软件工程概述
第 19 页19
第1章 软件工程概述
第 26 页26
软件开发方法
面向对象开发方法
面向对象思想符合人们对客观世界的认识和描述。客观世界的 实体是人们认识世界的基础,面向对象开发方法的基础是对象, 而对象就是对客观事务(问题空间)的直接描述。
面向对象 = 对象 + 类 + 继承 + 消息
第1章 软件工程概述
第 27 页27
第1章 软件工程概述
第 20 页20
螺旋模型
软件过程模型
❖ 制订计划:包括决定目标、 实施方案和系统限制。
❖ 风险分析:包括划分风险 类别、风险识别、风险评 价、风险预防与消除。
❖ 实施工程:包括开发、验 证下一代产品,并做预防 性评估。
❖ 客户评估:包括验收测试、 用户体验、下一次迭代评 估。
第1章 软件工程概述
用构件组装完成,而无需从
2.第二代软件工程 — 对象头工开程始构造,以此达到提高
效率和质量,降低成本的目
3.第三代软件工程 — 过程的工,程称为构件工程。
4.第四代软件工程 — 构件工程
第1章 软件工程概述
第 8 页8
软件工程的概念
软件工程的不同定义
1968年,Fritz Bauer给出的定义是,软件工程是为了经济地获得能够在实 际机器上有效运行的、可靠的软件而建立和使用的、一系列完善的、健全的 工程化原理。
2006年中国国家标准中给出的定义是,应用计算机科学理论和技术以及工程 管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开 发、发布和维护的工程或进行研究的学科。
第1章 软件工程概述
第 9 页9
软件工程的概念
软件工程的目标
跟踪最新的软件技术发展,修改和制定新的软件开发活动
规则,提高和规范软件管理的效率和可操作性,确保软件质量,
第 3 页3
软件工程的发展历程
软件工程的发展已经历了四个重要阶段: 1.第一代软件工程 — 传统的软件工程 2.第二代软件工程 — 对象工程 3.第三代软件工程 — 过程工程 4.第四代软件工程 — 构件工程
第1章 软件工程概述
第 4 页4
软件工程的发展历程
软件工程的发展已经历了四个重要阶段:
1.第一代软件工程 — 传统的软件工程
过程工程。
3.第三代软件工程 — 过程工程
4.第四代软件工程 — 构件工程
第1章 软件工程概述
第 7 页7
软件工程的发展历程
90 起 年 代 , 基 于 构 件
软件工程的发展已经历了四(个C重om要p阶one段nt:)的开发方法
取得重要进展,软件系统的
1.第一代软件工程 — 传统开的发软可件通工过程使用现成的可复
2.第二代软件工程 — 对象工克程6服0年“代末软到件70年危代机为”了 3.第三代软件工程 — 过程工(“S程o软f件twa工re程”cr的i名sis词),提将软出 4.第四代软件工程 — 构件工件基程开本发形纳成入软工件程工化程的的轨概道念,、
框架、技术和方法。称为传 统的软件工程。
第1章 软件工程概述
编码
单元测试 界
第1章 软件工程概述
第 16 页16
软件过程模型
针对软件生命周期各阶段活动的一般规律,对软件开 发过程进行定量度量的量化,为软件工程管理提供阶 段性评价,为软件开发过程提供原则和方法,提出了 软件过程模型,也被称为软件生命周期模型。
目前典型的软件开发模型有: 瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、 敏捷过程模型、渐进式交互过程模型、微软解决框架模型等。 不同的软件开发过程可选择不同的软件过程模型。
第1章 软件工程概述
第 13 页13
软件与软件过程
软件的分类
➢系统软件 ➢支撑软件 ➢实施软件 ➢嵌入式软件 ➢人工智能软件 ➢应用软件
第1章 软件工程概述
第 14 页14
软件与软件过程
软件工程用于软件开发的指导思想之一就是划分软件生 命周期,把软件开发的全过程分阶段、定任务,按先后 顺序依次完成。
第1章 软件工程概述
第 17 页17
软件过程模型
瀑布模型 (线形顺序模型)
分析:
❖ 系统需求 ❖ 软件需求
定义 阶段
可行性研究与计划 需求分析
设计: ❖数据结构 ❖体系结构 ❖接口 ❖算法
确定: ❖ 系统功能 ❖ 系统性能
开
设计
发
阶
编码
段
测试
维护阶段
运行维护
第1章 软件工程概述
第 18 页18
软件过程模型
第一章 软件工程概述 小结
❖ 软件工程的发展历程 ❖ 软件工程的概念 ❖ 软件与软件工过程 ❖ 软件过程模型 ❖ 软件开发方法
第1章 软件工程概述
第 28 页28
第1章 软件工程概述
第 23 页23
软件过程模型
渐进式交互过程模型
面对不明确的需求(原型模型)、非整体的开发(增量模型)、影响软 件质量的风险(螺旋模型),渐进交付迭代模型通过对软件不断演进的循环 往复,完成软件系统的实施过程。
[可行性分析] 问题定义
[需求变更与新需求]
[用户反馈] 收集反馈数据
提高软件生产率,开发出满足用户需求、并最终实现软件的工
业化生产。
低开发 成本
互补关系 存在矛盾
第三方监控
易于理解和 修改
较低的维护 成本
第1章 软件工程概述
按时完成 及时交付
第 10 页10
软件工程的概念
软件工程的实施原则
➢做好用户的全面分析 ➢选取适宜的开发模型 ➢ 采用成熟的设计方法 ➢选择高效的开发环境 ➢保证有效的维护过程 ➢重视软件过程管理
第1章 软件工程概述
❖ 软件工程的发展历程 ❖ 软件工程的概念 ❖ 软件与软件工过程 ❖ 软件过程模型 ❖ 软件开发方法
第1章 软件工程概述
第 1 页1
软件工程的发展历程
仍存在以下严重问题困扰着软件和软件产业发展:
❖软件开发进度和成本难以控制 ❖软件产品难以满足用户的需求 ❖软件质量难以得到保证 ❖软件产品难以进行维护 ❖软件的文档资料难以管理 ❖软件产品的生产率难以得到提高
第 5 页5
软件工程的发展历程
软件工程的发展已经历了四个重要阶段:
1.第一代软件工程 — 传统的软件工程
2.第二代软件工程 — 对象工程
3.第三代软件工程 — 过程工80程年代中到90年代,面向对
象的方法与技术得到发展,研
4.第四代软件工程
—
构件究工的程重点转移到面向对象的分
析与设计,演化为一种完整的
软件开发方法和系统的技术体
系,称为对象工程。
第1章 软件工程概述
第 6 页6
软件工程的发展历程
80年代中开始,人们在软
软件工程的发展已经历了四件个开重发要的阶实段践:过程中认识到:
提高软件生产率,保证软件
1.第一代软件工程 — 传统质的量软的件关工键程是“软件过程”,
是软件开发和维护中的管理
2.第二代软件工程 — 对象和工支程持能力,逐步形成软件
软件的概念
➢Barry Boehm提出“软件是程序,以及开发、使用 和维护程序所需的所有文档”。 ➢计算机领域多次引用的基本定义是:软件是计算机 中与硬件相互依存的另一部分,它包括程序、数据以 及相关文档的完整集合。 ➢文献[8]中给出的定义是:与计算机系统有关的操作、 有关的计算机程序、规程和可能相关的文档。
当前的 需求分析
用户使用
[需求建模] [反馈] [实际应用]
满足当前需求 的设计与实现
[第N次迭代产品]
发布新版本产品
最终产品
[最终产品]
第1章 软件工程概述
第 24 页24
软件过程模型
微软解决框架过程模型
产品测试
产品发布
稳定
创想
阶段
阶段
开发
计划
阶段
阶段
目标/内容确认
分为四个主要阶段: ❖计划阶段 ❖开发阶段 ❖稳定阶段 ❖创想阶段
第1章 软件工程概述
第 2 页2
软件工程的发展历程
软件危机出现的原因:
❖对软件开发缺乏正确的理论指导 ❖软件人员与用户缺乏充分的交流 ❖对软件开发过程缺乏整体认识 ❖对软件产品缺乏有效一致的质量评价标准,使得 交付的软件质量差,在运行过程中出现错误,不符 合用户的操作习惯等一系列问题
第1章 软件工程概述