软件工程 第2章_软件生存周期及其模型

合集下载

第2 章软件生存周期及开发模型

第2 章软件生存周期及开发模型

2.2 典型的软件过程模型
2.2 典型的软件过程模型
2.2 典型的软件过程模型
2.2 典型的软件过程模型
2.3 面向对象的软件过程模型
统一开发过程(RUP)
2.3 面向对象的软件过程模型
1.初始阶段:为系统建立业务用例和确定项目的边界 2.细化阶段:分析问题域,建立健全的体系结构基础, 编制项目计划,淘汰项目中最高风险的元素 3.构建阶段:所有剩余的构件和应用程序功能被开发并 集成为产品,所有的功能被详尽的测试。这个阶段的重点 在管理资源和控制运作以优化成本、日程、质量生产过程。 4.交付阶段:完成最后的软件产品和产品验收测试,并 编制用户文档,进行用户培训等,将软件产品交付给用户 群体
2.1.2 软件过程模型
软件过程:是整个软件生存周期中一系列有序的软件 生产活动的流程。为了能高效地开发一个高质量的软 件产品,通常把软件生存周期中各项开发活动的流程 用一个合理的框架 —— 开发模型来规范描述,这就是 软件过程模型,也称为软件生存周期模型。
过程模型: 能够清晰、直观地表达软件开发的 全过程,明确规定了要完成的主要活动和任务, 是软件项目工作的基础。 建模: 是软件过程中最常使用的技术手段之一。
极限编程过程
第2章软件生存周期及开发模型
1.策划:策划活动开始于建立一系列描述待 开发软件的必要特征与功能的“故事”。每个 故事由客户书写并置于一张索引卡上,客户根 据对应特征或功能的全局业务价值标明权值( 即优先级)。 (1)所有选定故事将在几周之内尽快实现; (2)具有最高价值的故事将移到进度表的前 面并首先实现; (3)高风险故事将首先实现。
2.3 面向对象的软件过程模型
第2章 软件生存周期及开发模型
第2章 软件生存周期及开发模型

软件工程第2章

软件工程第2章

软件定义的基本任务是确定软件系统
的工程需求,也就是要搞清“做什
么”。 软件定义过程可通过软件系统的可行
性研究和需求分析两个阶段来完成。
ZLL
BeiHua
1)可行性研究
确定用户要求解决的项目的性质、目标和 规模。
可行性研究
经济可行性、技术可行性、操作可行性、法律 可行性、不同的方案。
确定软件元素的作用范围,并对软件进行 成本估算,制定进度安排,最后提交软件 计划。
ZLL
BeiHua 软件研制与软件测试的层次对应关系
可行性研究 需求分析
(验收测试计划) 概要设计 (组装测试计划) 详细设计 (单元测试计划) 编码与调试
ZLL
运行与维护
验收测试
组装测试
单元测试
BeiHua
3 . 软件的使用与维护及退役
任务: 通过各种维护活动使软件系统持久地满足用户的需求。 每项维护活动实质上都是一次压缩和简化了的软件定义和软
软件开发小组人员素质和数量是影响软件质量和 开发效率的重要因素。实践表明,素质高的人员 与素质低的人员相比,开发效率可能高几倍至几 十倍、而且所开发的软件中的错误也要少得多。 另外,开发小组的人数不宜过多,因为随着人数 的增加,人员之间交流情况、讨论问题的通信开 销将急剧增加,这不但不能提高生产率,反而由 于误解等原因可能增加出错的概率。
软件危机的具体表现: ·开发成本和进度估计不准
·用户对“已完成的”软件系统不满意 ·软件质量往往靠不住 ·软件常常是不可维护的 ·软件通常没有适当的文档资料 ·软件成本逐年上升 ·软件开发生产率滞后于硬件和计算机应用普及
ZLL
BeiHua 软件、硬件成本变化趋势
100% 80% 硬 件 60% 40% 20% 1955年 1970年 软件开发

1-2 软件工程和软件生存周期模型

1-2 软件工程和软件生存周期模型
28
软件工程的实现过程
检验、交付与维护 检验、
开发阶段
定义阶段
29
定义阶段
30
开发阶段
31
检验、 检验、交付与维护
32
思考题
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ 什么是软件工程三要素? 什么是软件工程三要素? 软件工程的基本目标是什么? 软件工程的基本目标是什么? 软件工程的基本原则 什么? 原则是 软件工程的基本原则是什么? 软件工程的基本原理是什么? 软件工程的基本原理是什么? 瀑布模型有什么特点? 瀑布模型有什么特点? 说明生命周期的划分? 说明生命周期的划分? 列出软件生存期的几个主要模型? 列出软件生存期的几个主要模型? 论述瀑布模型软件开发方法的基本过程? 论述瀑布模型软件开发方法的基本过程? 增量模型有什么特点? 增量模型有什么特点?
① 里程碑或基线驱动,或者说文档驱动; 里程碑或基线驱动,或者说文档驱动; 过程逆转性很差。 ② 过程逆转性很差。
16
瀑布模型
定义 阶段 计划 需求分析 设计 编码 测试 维护 阶段 运行、 运行、维护
开发 阶段
17
原型模型
原型模型的基本思想: 原型模型的基本思想:
软件开发人员在与用户进行需求分析时, 软件开发人员在与用户进行需求分析时,以比较 小的代价快速建立一个能够反映用户主要需求的 原型系统,让用户在计算机上进行操作, 原型系统,让用户在计算机上进行操作,在实践 过程中提出改进意见,开发人员根据用户的意见, 过程中提出改进意见,开发人员根据用户的意见, 对原型进行补充和完善,然后再由用户试用、 对原型进行补充和完善,然后再由用户试用、评 提出建议,重复这一过程, 价、提出建议,重复这一过程,直到用户对开发 的原型系统满意为止。 的原型系统满意为止。

软件工程与方法 软件生存周期与软件过程

软件工程与方法 软件生存周期与软件过程

简化的螺旋模型图
35
螺旋模型
螺旋模型将瀑布模型与增量模型结合 起来,加入了两种模型均忽略了的风 险分析,弥补了这两种模型的不足。 螺旋模型是一种风险驱动的模型。 螺旋模型将开发过程分为几个螺旋周 期,每个螺旋周期大致和瀑布模型相 符合。 螺旋模型适合于大型软件的开发。
36
制定计划
螺旋模型
风险分析
(1)原型系统只包括未来系统的主要功能及
接口 (2)开发原型系统应尽量使用能开发周期短 的语言和工具。
23
原型范型
听取用户 意见 建造/修改 原型
用户测试 运行原型
24
原型模型分类

原型是项目系统中的一个方面或者 多个方面的工作模型。 抛弃型原型:用于试验某些概 念,试验完系统将无用处。 进化型原型:原型系统不断被开 发和被修正,最终它变为一个真 正的系统。
31
增量模型图
把软件看作一系列相互联系的增量,每次迭代完成一个增量
构件1: 需求 设计 实现和集成 交付客户
构件2:
需求
设计
实现和集成
交付客户
构件3:Βιβλιοθήκη 需求设计实现和集成
交付客户
规格说明组 设计组 实现和集成组 构件n: 需求 设计 实现和集成 交付客户
32
增量模型的特点

增量

小而可用的软件 第1个增量通常是软件的核心部分 在前面增量的基础上开发后面的增量 每个增量的开发可用瀑布或快速原型模型 每个增量开发的顺序性和总体的迭代性相结 合 难度较大或需要使用新硬件的部分可以放在 较后的增量中开发
15
2.2.1.瀑布模型
定义 可行性研究与计划 需求分析 设计 开 发 编码 测试 维护 运行维护

《软件工程实用教程》第2章软件生存周期及开发模型

《软件工程实用教程》第2章软件生存周期及开发模型
第2章軟體生存週期及開發模型
本章學習內容: 1.掌握軟體的生存(生命)週期的概念 2.明確學習軟體過程模型的意義 3.掌握各種過程模型的特點與適用範圍 4.掌握面向對象軟體過程模型的內容與過 程
第2章軟體生存週期及開發模型
2. 1 軟體過程概述
2.1.1 軟體生存週期
軟體的生存週期指軟體產品從功能確 定、設計、開發成功、投入使用,並 在使用中不斷修改、完善,直至被新 的軟體所替代而停止該軟體的使用的 全過程。
第2章軟體生存週期及開發模型
2.2.4 螺旋模型
第2章軟體生存週期及開發模型
改進的瀑布模型
第2章軟體生存週期及開發模型
2.2.2 原型模型
1.快速原型方法 快速原型方法是原型模型在軟體分析、設計 階段的應用,用來解決用戶對軟體系統在需 求分析上的模糊認識。 快速原型法的特點: 快速原型是用來獲取用戶需求的,或是用來 試探某種設計是否有效。一旦需求或設計確 定下來,原型就將被拋棄。
第2章軟體生存週期及開發模型
瀑布模型的缺點 階段與階段劃分固定,階段間產生大量的文檔, 極大地增加了工作量; 由於開發模型呈線性,當開發成果尚未經過測試 時,用戶無法看到軟體的效果,這些問題往往會 導致開發出來的軟體不是用戶真正需要的軟體; 無法通過開發活動澄清本來不夠確切的軟體需求, 因此,需要返工或者不得不在維護中糾正需求的 偏差; 由於固定順序,前期工作中造成的差錯越到後期 階段所造成的損失越大,為了糾正偏差,需要付 出高昂的代價。
第2章軟體生存週期及開發模型
2.2 典型的軟體過程模型
軟體過程模型 把軟體生存週期中各項開發活動的流程用一 個合理的框架——開發模型來規範描述,這 就是軟體過程模型 。 軟體過程模型是從一個特定的角度表現一個 過程,主要根據軟體的類型、規模,特別是 軟體的開發方法、開發環境等多種因素確立 過程模型。

软件工程第二章 软件生存周期及模型

软件工程第二章 软件生存周期及模型
13
13
5、瀑布模型特点 是一个理想化过程。会掩饰项目中真正的风险,当你 太晚发现它们时已无济于事。 过程逆转性很差,因为上游的错误会在下游进 行发散性传播。所以逆转会造成很大损失。 缺乏灵活性;特别是无法解决软件需求不明确或 不准确的问题后期错误,修正代价高 。
纯瀑布模型的缺点是在项目开始的时候,在设 计工作完成前和代码写出来前,很难充分描述 需求。
被审文档、开审查会、返工、复查。
❖管理复审的主要任务是在软件生存周期的每个 重要的里程碑,对工程项目的成本、实际花费的 经费、投资回收的前景、项目的进度等经济因素 从管理角度进行审查。从管理角度对软件开发工 程进行复审,是对工程进行管理和控制的主要手 段,对发现的问题可以及时采取措施加以解决, 2021/8必/5 要时甚至可以取消开发工程以避免更大的损失。12 12
它是一个记号,只需经过内部评审。它是一个检查点,但不一定是基线。
评审
审计
顾客>客 户>用户 现有系统 目标系统
2021/8/5
是对软件工作产品质量的一次开会或汇签活动。
是复查评审活动程序的合法性,是否按程序与规范进行。
客户是顾客的一部分,顾客包括潜在的客户。用户是软件产品的最终使 用者,用户是客户的一部分。 现有系统是用户当前正在使用的系统(可能是手工系统);目标系统是 将要实现的系统。
2021/8/5
27
27
五、原型模型----概念
快速原型模型:先开发一个“原型”软件,完成主
瀑布模型最主要的问题是缺乏灵活性。必须在 项目开始前说明全部需求。但这恰恰是非常困 难的。
2021/8/5
14
14
6、瀑布模型适用场合
当有一个稳定的产品定义和很容易被理解的技术解决方案 时,纯瀑布模型特别合适

软件工程(概论)生存期和开发模型-作业2

软件工程(概论)生存期和开发模型-作业2
发散性传播的原理,所以逆转将会延误工期,增加成本,造成重大损失。
2.3 软件开发模型
4.模型的优点 开发阶段清晰,便于评审、审计、跟踪、管理和控制。
5.模型的缺点 传统的项目组织方法是按顺序完成每个工作流程,即瀑布式生命周期。瀑布
只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。 瀑布式生命周期通常会导致在项目后期,出现“问题堆积”,更可怕的是,错
一阶段(活3)动用的户输使入用,环继境续很进稳行定下;一阶段的活动,否则返回上一阶段修改。 (4)用户除提出需求以外,很少参与开发工作。
2.模瀑型布的模特型点认为:项目经理或软件管理人员,只要控制好每级台阶的高度 (和1宽)度里,程在碑每或个基台线阶驱处动设,立或里者程说碑文或档基驱线动,;并组织好对基线的评审与审 (计2,)就过可程以逆控转制性好很项差目或的者开说发不成可本逆、转进,度因和为质根量据。上游的错误会在下游进行
误的传递会采取发散扩大的方式。
瀑布模型反馈环
CMM/CMMI采取阶段评审和不符合项(Noncompliance Items)的动态跟踪制度, 只有前一阶段不符合项全部改正,才允许开发人员进入后一阶段工作。
不符合项,就是在评审中发现的问题项,它不同于Bug。对于这些不符合项,软 件管理部门要列出表格,记录在案,确定责任人,限定改正时间,动态跟踪到底 。
可行性研究的结果是负责人作出是否继续进行这项工程的决定的重要依据。 可行性研究以后的各个阶段,将需要投入多少相应的人力物力。 及时终止不值得投资的工程项目,可以避免更大的浪费。
2.2 软件工程过程
3. 需求分析
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须 具备哪些功能。产生《需求规格说明书》。

软件生存周期及开发模型

软件生存周期及开发模型

据模型PDM 据模型PDM
面向对象的编程工具,在软件企业强大的类库,构件库 面向对象的编程工具,在软件企业强大的类库, 的支撑下,快速地实现需求分析中确认的流程,功能, 的支撑下,快速地实现需求分析中确认的流程,功能, 性能和接口 交付给用户试用,反复循环几次, 交付给用户试用,反复循环几次,直到客户确认满意为 止.
9
增量模型(续) 增量模型(
选择模型的条件 条件: 3,选择模型的条件: 接受分阶段交付. 在项目开发过程中,客户接受分阶段交付 (1)在项目开发过程中,客户接受分阶段交付. (2)开发人员对应用领域不熟悉,难以一步到位. 开发人员对应用领域不熟悉,难以一步到位. 工期过紧的中等或高风险项目 中等或高风险项目. (3)工期过紧的中等或高风险项目. 用户可参与到整个软件开发过程中 到整个软件开发过程中. (4)用户可参与到整个软件开发过程中. 面向对象语言. 使用面向对象语言 (5)使用面向对象语言. 软件公司自己有较好的类库 构件库. 类库, (6)软件公司自己有较好的类库,构件库.
6
瀑布模型(续) 瀑布模型(
3,选择模型的条件: 选择模型的条件 条件: 很少变化. (1)在开发时间内需求没有或很少变化. 在开发时间内需求没有或很少变化 (2)分析设计人员对应用领域很熟悉. 分析设计人员对应用领域很熟悉 领域很熟悉. (3)低风险项目(对目标,环境很熟悉). 低风险项目(对目标,环境很熟悉). (4)用户使用环境很稳定. 用户使用环境很稳定 稳定. 用户除提出需求以外 很少参与开发. 除提出需求以外, (5)用户除提出需求以外,很少参与开发.
12
原型模型(续) 原型模型(
选择模型的条件 条件: 3,选择模型的条件: 已有产品或产品的原型 只需客户化的项目. 或产品的原型, (1)已有产品或产品的原型,只需客户化的项目. 简单而熟悉的行业或领域 或领域. (2)简单而熟悉的行业或领域. 有快速原型开发工具 开发工具. (3)有快速原型开发工具. (4)进行产品移植或升级. 进行产品移植或升级 移植或升级. 4,优点 开发速度快 开发速度快 实时反馈用户意见 实时反馈用户意见 模型的缺点 不利于开发人员的 缺点: 开发人员的创新 5,模型的缺点:不利于开发人员的创新

第2章 软件生存期模型

第2章 软件生存期模型
➢ 每个构件由多个相互作用的模块构成,并且能够 完成特定的功能。
2.3 增量模型
➢ 增量模型如图所示。
2.3 增量模型
• 增量模型的优点
(1)能在较短时间内向用户提交可完成一些有用的工作产品, 即从第1个构件交付之日起,用户就能做一些有用的工作。
(2)逐步增加产品的功能可以使用户有较充裕的时间学习和适 应新产品,从而减少一个全新的软件可能给用户组织带来 的冲击。
在维护和开发之间并没有本质区别。
2.4 螺旋模型
• 螺旋模型的缺点
➢ 螺旋模型是风险驱动的,因此要求软件开发人员 必须具有丰富的风险评估经验和这方面的专门知 识,否则将出现真正的风险:当项目实际上正在 走向灾难时,开发人员可能还以为一切正常。
2.4
➢ 多数场合,软件开发过程是沿螺旋线的路径连 续进行的。
2.6 统一过程
• 统一过程的阶段
③ 构造阶段。构造阶段是建立系统,构造信息系统 的第1个具有操作质量的版本,以能够交付给客户 进行测试的版本结束,有时称为测试版本。
④ 移交阶段。移交阶段包含测试时期,以发布完 整的系统而终止,其目标是确保信息系统真正满 足客户的需求。
2.6 统一过程
• 主要工作产品
➢ 原型建造模型和螺旋模型既是迭代模型,又是进 化模型。
➢ 实践中,客户利用迭代或增量模型尽快开发第一 个版本的软件制品,占领市场的有利商机,然后 再逐步扩展系统功能,不断推出后续版本。
2.5 喷泉模型
• 喷泉模型是典型的面向 对象生命周期模型。
➢ “喷泉”一词体现了迭 代和无间隙特性。图中 代表不同阶段的圆圈相 互重叠,这明确表示两 个活动之间存在重叠。
2.3 增量模型
• 采用增量模型需注意的问题

chap2-软件生存期

chap2-软件生存期

分析
设计
编码
测试
增量2
分析
设计
编码
测试
增量3
分析
设计
编码
测试
增量4
分析
设计
编码
测试
增量模型
� 增量
�小而可用的软件
� 特点
�在前面增量的基础上开发后面的增量 �每个增量的开发可用瀑布或快速原型模型 �迭代的思路
螺旋模型
螺旋模型
� 特点
� 瀑布模型+快速原型+风险分析 � 迭代过程
� 一个螺旋式周期
The Importance of Modeling
Less Important More Important
Paper Airplane
Fighter Jet
Software Teams Often Do Not Model
� Many software teams build applications approaching the problem like they were building paper airplanes � Start coding from project requirements � Work longer hours and create more code � Lacks any planned architecture � Doomed to failure � Modeling is a common thread to successful projects
� 规划
� 确定目标,选择方案,选定完成目标的策略
� 风险分析
� 风险角度分析该策略
� 原型开发
� 启动一个开发阶段

软件工程 第2章 软件生存周期与软件过程 CUMT 110726PPT课件

软件工程 第2章 软件生存周期与软件过程  CUMT 110726PPT课件
该模型也可以看成是软件的生命周期模型。
该模型是计划驱动的,理论上,在开始工 作之前,必须对所有的过程活动制定计划并给 出进度安排。
计算机网络》课件 制作人:谢希

15
计划 时期
开发 时期
运行 时期
2.2.2瀑布模型
问题定义
可行性研究
需求分析
概要设计
详细设计
编码
测试
维护
计算机网络》课件 制作人:谢希
各阶段结束前都要对所完成的文档进 行评审,以便及时发现问题,改正错 误。
计算机网络》课件 制作人:谢希

20
瀑布模型的缺点
(1) 各个阶段的划分完全固定,阶段之间产 生大量的文档,极大地增加了工作量。
(2) 由于开发模型ቤተ መጻሕፍቲ ባይዱ线性的,用户只有等到 整个过程的末期才能见到开发成果,从而增 加了开发的风险。
计算机网络》课件 制作人:谢希

18
2.推迟实现
实践表明,编码开始得越早完成开发工作所 需要的时间反而越长。
这是因为,前期阶段的工作没完全做好,就 急于考虑程序实现,其结果导致大量返工, 有时甚至产生无法弥补的问题,带来严重后 果。
计算机网络》课件 制作人:谢希

19
3.质量保证
各阶段都必须完成规定的文档。完整、 正确、合格的文档不仅是软件开发时 期各类人员之间相互通信的媒介,也 是软件维护的重要依据。
求,系统定义。 2.可行性研究 估计可利用的资源(计算机硬件,软件,人力
等)、成本、效益、开发进度。 制定出完成开发任务的实施计划和解决方案,
可行性研究报告。
计算机网络》课件 制作人:谢希

6
2.1.2开发时期

软件工程实用教程2版课后答案

软件工程实用教程2版课后答案

软件工程实用教程2版课后答案第1章软件工程引论1.什么是软件危机?它和软件工程有什么关系?答案要点:由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。

在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。

软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。

人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。

由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。

2.简述软件和软件工程的定义以及软件工程的形成过程。

答案要点:计算机软件是由计算机程序的发展而形成的一个概念。

它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。

软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。

软件工程是指导计算机软件开发和维护的工程学科。

它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。

第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。

第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。

《软件工程》课件 第二章-软件生存周期及模型

《软件工程》课件   第二章-软件生存周期及模型

模型适合的项目:
项目开始,明确了需求的大部分,但是需
求可能会发生变化
对于市场和用户把握不是很准,需要逐步
了解
对于有庞大和复杂功能的系统进行功能改
进,就需要一步一步实施的。
银行业务系统的生存期实例
项目规划
.银行业务需求 .原形系统源代码 业务需求分析 产品阶段1设计 项目规划
产品阶段n设计
加工原型 客户评价原型
建造原型
原型开发过程
▲快速分析:分析人员与用户配合,迅速确定系统的基 本要求。要根据原型所要体现的特征,描述基本需求。 关键是要注意分析描述内容的选取。 ▲构造原型:在软件工具支持下尽快实现一个可运行的 系统。 ▲运行原型:是发现问题、消除误解、开发者与用户充 分协调的一个步骤。 ▲评价原型:评价原型的特性,纠正误解与错误,增添 新要求或提出要求变动,提出全面的修改意见。 ▲修改:原型开发的循环。
确认系统

把软件产品分解成一系列的增量构件,在增量开发迭代 中逐步加入。


每个构件由多个相互作用的模块构成,并且能够完成特
定的功能。 增量开发方法的新演进版本叫做 “极限程序设计 (eXtreme Programming)”。

增量模型
第一增量 第二增量 第三增量
……
核心功能
核心功能
核心功能
1
1
2
V模型:瀑布模型的细化--对测试的展开
适合的项目

项目的需求在项目开始前很明确
解决方案在项目开始前也很明确
对系统的性能安全很严格的项目 类似的项目如:

航天飞机等 公司的财务系统
2.增量模型
定义 基本需求
将需求赋予 增量构件

软件工程第2章_软件生存周期及其模型

软件工程第2章_软件生存周期及其模型

基本任务:为保证软件的质量, 在设计测试用例的基础上检验 软件的各个组成部分,是否达 到预定要求。
结束标准:软件合格,能交付 用户使用。
典型的软件生存周期包括以下阶段:
5. 编码 6. 测试 7. 软件维护
基本任务:通过各种必要的维 护活动使系统持久地满足用户 需要,是软件生存周期中时间 最长的阶段。
结束标准:以某种程序设计语 言表示的源程序清单。
技术审查和管理复审
• 技术审查是从技术角度进行审查,是保证软件质量和 降低软件成本的重要措施。
• 技术审查通常由专家组成的审查小组来承担审查工作。
• 管理复审的主要任务实在软件生存周期的每个重要里 程碑,对工程项目的成本、实际花费的经费、投资回 收的前景、项目的进度等经济因素从管理角度进行审 查。
面向对象开发方法的组成
OOSD由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计
软件工程过程
(Software engineering process)
是指在软件工具的支持下,所进行的一系列软 件开发和进化的活动。
通常包括以下四类基本过程: 1、软件规格说明:规定软件的功能及其运行环境。 2、软件开发:产生满足规格说明的软件。 3、软件确认:确认软件能够完成客户提出的要求。 4、软件演进:为满足客户的变更要求,软件必须在 使用的过程中演进。
2.2 软件生存周期模型
• 软件生存周期模型是描述软件开发过程中各种活 动如何执行的模型。
• 软件生存周期模型的选择受软件规模、种类、开 发方式、开发环境以及开发使用的方法等因素影 响。

《软件工程》第2课 软件生存周期与软件过程

《软件工程》第2课 软件生存周期与软件过程

代码生成 与检查
测试计划
盒结构 形式化 正确性 规约 设计 证明
统计性使 认证 用测试
增量2 需求
收集
代码生成 与检查
测试计划
统计性使 认证 用测试
增量n 需求
收集
盒结构 形式化 正确性 规约 设计 证明
测试计划
代码生成 与检查
统计性使 认证 用测试
软件过程模型的特点汇总
开发模型 特 点 适用场合 瀑布模型 线性模型,每一阶段必须完成规 需求明确的中小型软件开发 定的文档 快速原型 用户介入早,通过迭代完善用户 需求模糊的小型软件开发 模型 需求,原型废弃不用
• 敏捷过程
–Agile Development是一种以人为核心、迭 代、循序渐进的开发方法,其软件开发过程称 为“敏捷过程”。
RUP
Rational Unified Process 将软件开发分为四个阶段: –初始 – 定义整个项目的范围,是否可行。 –细化 – 制定项目计划、描述功能、建立体系架构框架。 –构造 – 构造软件产品。 –迁移 – 将软件产品移交到最终用户手中。
变换n
形式化 规格说明
变换2
变换1
测试
系统需求
目标系统
净室模型
• 净室思想
–在分析和设计阶段消除错误。 –在“洁净”状态下实现软件制作。
• 增量模型
–把软件看成一系列的增量。
• 形式化
–每一个增量用形式化表示—盒,表示分析和 设计。 –正确性验证。
净室模型
增量1 需求
收集
盒结构 形式化 正确性 规约 设计 证明
用户要求 需求分析 需求规格说明 软件分析 与总体设计 确认测试 系统测试
软件结构图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

增量模型特点
• 增量 – 小而可用的软件
• 特点 – 在前面增量的基础上开发后面的增量 – 每个增量的开发可用瀑布或快速原型模型 – 迭代的思路
循环模型
为了描述软件开发过程中可能的回溯,尤其是维 护阶段往往要经历上述各个阶段。采用循环模型描 述。
计划
评价
运行
需求分析
测试
设计
编码
循环模型
速成原型的工作模型是一个循 环的模型。
1.快速分析 快速确定软件系统的 基本要求,确定原型所要体现的特 征(界面,总体结构,功能,性能)
2.构造原型 考虑主要特征,快速 构造一个可运行的系统。有三类原 型:用户界面原型,功能原型,性 能原型。
3.运行和评价原型
4.修改与改进
快速分析修改
评价
构造
运行
原型的工作模型
软件开发方法
软件开发的目标是要在规定的投资和时间内, 开发出符合用户的需求,高质量的软件,为此需要 有成功的开发方法。
结束标准:以某种程序设计语 言表示的源程序清单。
技术审查和管理复审
• 技术审查是从技术角度进行审查,是保证软件质量和 降低软件成本的重要措施。
• 技术审查通常由专家组成的审查小组来承担审查工作。
• 管理复审的主要任务实在软件生存周期的每个重要里 程碑,对工程项目的成本、实际花费的经费、投资回 收的前景、项目的进度等经济因素从管理角度进行审 查。
1. 以软件需求完全确定为前提的瀑布模型 2. 在软件开发初期只能提供基本需求所采用
的渐进式开发模型如原型模型、螺旋模型、 增量模型、并发开发模型 3. 以形式化开发方法为基础的变换模型 4. 基于构件的开发过程 5. 敏捷开发过程---统一软件开发过程RUP
计划 时期
开发 时期
运行 时期
瀑布模型
螺旋模型将开发过程 分为几个螺旋周期,每 个螺旋周期可分为4个工 作步骤:
第一,确定目标、方案 和限制条件;
第二,评估方案、标识 风险和解决风险;
第三,开发确认产品; 第四,计划下一周期工 作。
螺旋模型
螺旋模型的使用
软件工程项目从螺旋中心开始启动,沿顺时针方 向前进。 第一圈 产生产品规格说明; 第二圈 产生一个用于开发的原型; 第三圈 产生软件产品的初始版本; 第四圈 产生软件产品比较完善的新版本 ……。
2.2 软件生存周期模型
• 软件生存周期模型是描述软件开发过程中各种活 动如何执行的模型。
• 软件生存周期模型的选择受软件规模、种类、开 发方式、开发环境以及开发使用的方法等因素影 响。
• 软件生存周期模型一旦确定,软件开发过程就应 该按照模型严格执行,不可随意更改。
软件生命周期(SDLD)—瀑布模型
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
2.需求分析
3.概要设计 4.详细设计
基本任务:应怎样具体地实现这个 系统?为每个模块完成的功能进行 具体描述,把功能描述转变为精确 的、结构化的过程描述。 结束标准:设计出程序的详细规格 说明书
典型的软件生存周期包括以下阶段:
5.编码 6.测试 7.软件维护
OOD 与OOA密切配合顺序实现对现实世界的进 一步建模。
OOP 是面向对象的技术中发展最快的,使用 面向对象的程序设计语言,进行编码。
喷泉模型
该模型是由B.H.Sollers和J.M.Edwards于1990年提出的 一种新的开发模型。它克服了瀑布模型不支持软件重用和 多项开发活动集成的局限性,喷泉模型使开发过程具有迭 代性和无间隙性。
分析
喷泉模型
面向对象的方法的代表性成果有:
1. B.Henderson-sellers 和 J.m.Edwards提出的面向对象软件 生存期喷泉模型及面向对象的系统开发方法。
软件开发方法可分为两大类: 面向过程(结构化)的开发方法 面向对象的开发方法
结构化方法及瀑布模型
结构化开发方法(Structured Developing Method) 是现有的软件开发方法中最成熟,应用最广泛的方法, 主要特点是快速,自然和方便。 结构化方法总的指导思想自顶向下、逐步求精。它的 基本原则是功能的分解与抽象。 一、结构化开发方法的组成 结构化程序设计方法 SP法(Structured Program)
软件工程过程
(Software engineering process)
是指在软件工具的支持下,所进行的一系列软 件开发和进化的活动。
通常包括以下四类基本过程: 1、软件规格说明:规定软件的功能及其运行环境。 2、软件开发:产生满足规格说明的软件。 3、软件确认:确认软件能够完成客户提出的要求。 4、软件演进:为满足客户的变更要求,软件必须在 使用的过程中演进。
典型的软件生存周期包括以下阶段:
5. 编码 6. 测试 7. 软件维护
基本任务:把每个模块的控制 结构转换成计算机可接受的程 序代码。程序应是结构好、清 晰易读,并且与设计一致。
结束标准:以某种程序设计语 言表示的源程序清单。
典型的软件生存周期包括以下阶段:
5. 编码 6. 测试 7. 软件维护
软件工程过程
(Software engineering process)
规程与方法
有技能经过培 训的开发人员
过程
工具和设备
软件工程三要素软件工程 Nhomakorabea工具
方法 过程
软件工程釆用层次化的方法,每个层次都包括过程、 方法、工具三要素。
软件生存周期
• 软件的生存周期是指一个软件从提出开发要求直 到该软件报废为止的整个时期。
1.可行性研究和项目开发计划
2.需求分析 3.概要设计 4.详细设计
基本任务:要解决的问题是什 么?该问题有行得通的解决办 法吗?若有,则需要多少费用、 资源、时间等?
结束标准:提出书面可行性研 究报告;若问题值得去解决, 制定项目开发计划。
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
螺旋模型的优点
• 符合人们认识现实世界和软件开发的客覌规律; • 支持软件整个生命周期; • 保持瀑布模型的系统性、阶段性; • 利用原型评估降低开发风险; • 开发者和用户共同参与软件开发,尽早发现软件
中的错误; • 不断推出和完善软件版本,有助于需求变化,获
取用户需求,加强对需求的理解。
面向对象方法及其工作模型
原型化方法的基本思想是花费少量代价建立一 个可运行的系统,使用户及早获得学习的机会。
原型化方法又称速成原型法(Rapid Prototyping)。
N Y Y
N Y
细化的快速原型模型
图2 细化的快速原型模型
快速分析或修改
评价
构造
运行
原型模型的优点
• 原型模型支持软件需求开发,帮助用户和开发人 员理解需求,是软件需求工程的关键。
其特点如下:
1. 开发过程有分析、系统设计、软件 设计和实现4个阶段。
实现
2.各阶段相互重叠,它反映了软件过 程并行性的特点。
3.以分析为基础,资源消耗成塔型。
4.反映了软件过程迭代性的自然特性, 从高层返回低层无资源消耗。
5.强调增量开发,整个过程是一个迭 代的逐步提炼的过程。
软件 设计 系统 设计
基本任务:为保证软件的质量, 在设计测试用例的基础上检验 软件的各个组成部分,是否达 到预定要求。
结束标准:软件合格,能交付 用户使用。
典型的软件生存周期包括以下阶段:
5. 编码 6. 测试 7. 软件维护
基本任务:通过各种必要的维 护活动使系统持久地满足用户 需要,是软件生存周期中时间 最长的阶段。
结构化设计方法 SD法(Structured Design) 结构化分析方法 SA法(Structured Analysis) SA,SD,SP 法相互衔接,形成了一整套开发方法。
原型化方法及其工作模型
什么是原型化方法(Prototyping Method)
原型——是软件的一个早期可运行的版本,它 反映了最终系统的部分重要特性。
面向对象开发方法的组成
OOSD由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计
强调的是对一个系统中的对象特征和行 OOA 为的定义。建立系统的三类模型。
• 软件开发过程具有系统性、可控性,克服 了软件开发的随意性 。
瀑布模型的缺点
• 项目开始阶段用户很难精确的提出产品需求, 由于技术进步,用户对系统深入的理解,修改 需求十分普遍。
• 项目开发晚期才能得到程序的运行版本,这时 修改软件需求和开发中的错误代价很大。
• 采用线性模型组织项目开发经常发生开发小组 人员“堵塞状态”,特别是项目的开始和结束。
2.需求分析
3.概要设计 4.详细设计
基本任务:为了解决问题,目标系 统必须做什么?确定目标系统的功 能。 结束标准:给出软件需求说明书
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
2.需求分析
3.概要设计 4.详细设计
基本任务:概括地说,应如何解决 这个问题?把确定的各项功能需求 转换成需要的体系结构。设计软件 的结构,确定程序由哪些模块组成 及模块间的关系,同时设计该项目 的总体数据结构和数据库结构。 结束标准:给出概要设计文档
计划 时期
开发 时期
运行 时期
(目标与范围说明书) (可行性论证论告) (需求说明书) (设计文档) (源程序清单) (测试报告) (维护报告)
瀑布模型
常用的软件开发模型
软件开发模型是描述软件开发过程中各种活动如何 执行的模型。因此又称为软件过程模型。
相关文档
最新文档