3-软件项目生存期模型

合集下载

软件生存周期模型

软件生存周期模型

目录软件生存周期软件生存周期的6个阶段周期模型软件生存周期(SDLC软件生命期)。

是指从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程。

一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每一个时期又划分为若干阶段。

每个阶段有明确的任务,这样使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。

A:定义及规划,B:需求分析,C:软件设计,D:程序编码,E:软件测试,F:运行维护。

软件生存周期需求分析定义及规划软件测试程序编码软件设计运行维护软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

常见的软件生存周期模型有瀑布模型,增量模型, 螺旋模型等等。

瀑布模型:是种线性的过程,适用于在开发的早期阶段软件需求被完整确定的情况。

:用户不确定需求;开发人员不确定;开发人员与用户很难沟通。

增量模型:在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。

缺点:软件具备开放式体系结构;容易退化为边做边改,是软件过程的控制失去整体性。

螺旋模型:形式化方法特别适合于那些对安全性、可靠性和保密性要求极高的软件系统开发,它采用形式化的数学方法将系统描述转换成可执行程序。

基于组件的开发模型充分体现了软件复用的思想,降低了开发风险和成本,能够快速交付所开发的软件。

但是,由于某些商业组件是不能进行修改的,系统的演化将受到一定程度的限制。

谢谢观看THANK U。

软件工程第章软件生存周期及其模型-文档资料

软件工程第章软件生存周期及其模型-文档资料
这种工程化的思想贯穿到软件开发和维护的全过程。
软件工程过程
(Software engineering process)
是指在软件工具的支持下,所进行的一系列软 件开发和进化的活动。
通常包括以下四类基本过程: Evaluation only. ted 1 with Aspose.Slides for .NET 3.5 Client Profile 5.2 、软件规格说明: 规定软件的功能及其运行环境。 Copyright 2004-2011 Aspose Pty Ltd. 2、软件开发: 产生满足规格说明的软件。 3、软件确认:确认软件能够完成客户提出的要求。 4 、软件演进: 为满足客户的变更要求,软件必须在 使用的过程中演进。
软件工程过程
(Software engineering process)
规程与方法
Evaluation only. ted with Aspose.Slides for .NET 3.5 Client Profile 5.2 Copyright 2004-2011 Aspose Pty Ltd.
有技能经过培 训的开发人员
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
ted
基本任务:要解决的问题是什 2.需求分析 Evaluation only. 么?该问题有行得通的解决办 with for .NET 3.5 Client Profile 5.2 法吗?若有,则需要多少费用、 3.Aspose.Slides 概要设计 资源、时间等? Copyright 2004-2011 Aspose Pty Ltd.
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
Evaluation only. 2.需求分析 ted with Aspose.Slides for .NET 3.5 Client Profile 5.2 Copyright 2004-2011 Aspose Pty Ltd.

软件生存期模型

软件生存期模型

增量模型如图所示
增量模型的优点
(1)能在较短时间内向用户提交可完成一些有用的工作 (1)能在较短时间内向用户提交可完成一些有用的工作 产品,即从第1个构件交付之日起, 产品,即从第1个构件交付之日起,用户就能做一些 有用的工作。 有用的工作。 (2)逐步增加产品的功能可以使用户有较充裕的时间学 (2)逐步增加产品的功能可以使用户有较充裕的时间学 习和适应新产品, 习和适应新产品,从而减少一个全新的软件可能给用 户组织带来的冲击。 户组织带来的冲击。 (3)项目失败的风险较低,虽然在某些增量构件中可能 (3)项目失败的风险较低, 项目失败的风险较低 遇到一些问题, 遇到一些问题,但其他增量构件将能够成功地交付给 客户。 客户。 (4)优先级最高的服务首先交付 优先级最高的服务首先交付, (4)优先级最高的服务首先交付,然后再将其他增量构 件逐次集成进来。因此, 件逐次集成进来。因此,最重要的系统服务将接受最 多的测试。 多的测试。
统一过程的阶段
统一过程有4个阶段,分别是初始阶段、细化阶段、 统一过程有4个阶段,分别是初始阶段、细化阶段、 构造阶段和移交阶段。 构造阶段和移交阶段。 初始阶段。初始阶段主要关注项目计划和风险评估, ① 初始阶段。初始阶段主要关注项目计划和风险评估, 其目的是确定是否值得开发目标信息系统。 其目的是确定是否值得开发目标信息系统。 细化阶段。细化阶段关心定义系统的总体框架, ② 细化阶段。细化阶段关心定义系统的总体框架,其 目标是:细化初始需求(用况)、细化体系结构、 )、细化体系结构 目标是:细化初始需求(用况)、细化体系结构、监 控风险并细化它们的优先级、 控风险并细化它们的优先级、细化业务案例以及制订 项目管理计划。 项目管理计划。 构造阶段。构造阶段是建立系统, ③ 构造阶段。构造阶段是建立系统,构造信息系统的 个具有操作质量的版本,以能够交付给客户进行β 第1个具有操作质量的版本,以能够交付给客户进行β 测试的版本结束,有时称为测试版本。 测试的版本结束,有时称为测试版本。 移交阶段。移交阶段包含β测试时期, ④ 移交阶段。移交阶段包含β测试时期,以发布完整的 系统而终止, 系统而终止,其目标是确保信息系统真正满足客户的 需求。 需求。

3 软件生存周期模型

3  软件生存周期模型
软件工程
第三讲 软件生存周期模型
朱建凯
2.2 软件生存周期模型
1) 基本概念 软件生存周期模型 IEEE Standard 12207.0-1996 把一个软件生存周期模型描述为: 把一个软件生存周期模型描述为:一个包括软件产品开 发、运行和维护中有关过程、活动和任务的框架,覆盖了从该 运行和维护中有关过程、活动和任务的框架, 系统的需求定义到系统的使用终止。 系统的需求定义到系统的使用终止。 中国计算机科学与技术百科全书 称软件生存周期模型为“软件开发模型” 并把它定义为: 称软件生存周期模型为“软件开发模型”,并把它定义为: 软件过程、活动、任务的结构框架。 软件过程、活动、任务的结构框架。
(3)该模型的适用情况 在开始开发时,需求很明确, 在开始开发时,需求很明确,且产品还可被适当地分解为一 些独立的、可交付的软件(构造增量: increments. 些独立的、 可交付的软件(构造增量: Build increments.如 果一个增量并不需要交付给客户的话, 果一个增量并不需要交付给客户的话,那么这样的增量通常称 为一个“构造” 为一个 “ 构造”(Build)。如果增量被交付,那么它们就被认为 。如果增量被交付, 是发布版本(Released version)。 ); 是发布版本 。 在开发中,期望尽快提交其中的一些增量产品。 在开发中,期望尽快提交其中的一些增量产品。 例如: 例如: 一个数据库系统,它必须通过不同的用户界面, 一个数据库系统,它必须通过不同的用户界面,为不同类型的 用户提供不同的功能。在这一情况下, 用户提供不同的功能。在这一情况下,首先实现完整的数据库 设计,并把一组具有高优先级的用户功能和界面作为一个增量; 设计,并把一组具有高优先级的用户功能和界面作为一个增量; 以后,陆续构造其它类型用户所需求的增量。 以后,陆续构造其它类型用户所需求的增量。

软件开发过程生命周期模型

软件开发过程生命周期模型

软件开发过程生命周期模型一、序言生命周期指软件开发全部过程、活动和任务的结构框架。

软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。

目前软件开发实践中使用的各种生命周期模型,都是下面这些基本组成部分的不同的排列与组合。

•市场分析,可行性研究,与项目定义•需求分析•设计(概要设计和详细设计)•编码实现•测试•使用与维护主要有以下几种模型:• 1.瀑布模型(waterfall model)• 2.演化模型(evolutionary model)• 3.螺旋模型(spiral model)二、瀑布模型瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品。

如图所示:优点:a.强调开发的阶段性;b.强调早期计划及需求调查;c.强调产品测试。

缺点:a.依赖于早期进行的唯一一次需求调查,不能适应需求的变化;b.由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;c.风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会下表是瀑布模型中各个阶段的主要工作,及相应的质量控制手段。

阶段主要工作应完成的文档应完成的文档质量控制手段系统需求1.调研用户需求及用户环境2.论证项目可行性3.制定项目初步计划1.可行性报告2.项目初步开发计划1.规范工作程序及编写文档2.对可行性报告及项目初步开发计划进行评审需求分析1.确定系统运行环境2.建立系统逻辑模型3.确定系统功能及性能要求4.编写需求规格说明、用户手册概要、测试计划5.确认项目开发计划1.需求规格说明2.项目开发计划3.用户手册概要4.测试计划1.在进行需求分析时采用成熟的技术与工具,如结构化分析2.规范工作程序及编写文档3.对已完成的4种文档进行评审三、演化模型该模型主要针对事先不能完整定义需求的软件开发。

用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。

3软件项目生存期模型

3软件项目生存期模型

35
选择生存期的步骤
熟悉各种生存期模型 评审、分析项目的特性 选择适合项目的生存期模型 标识生存期模型与项目不一致地方,并进行裁减

chapter__3
36
小结
瀑布模型 V模型 原型模型 增量模型 螺旋式模型 快速应用开发模型 渐进式阶段模型

chapter__3 37
31
时间
阶段性完成规划
chapter__3
32
渐进式阶段模型的特点
阶段式提交一个可运行的产品 关键的功能更早出现 早期预警问题,避免软件缺陷不知不觉的增长 减少报告负担 阶段性完成可以降低估计失误 阶段性完成均衡了弹性与效率

chapter__3
33
渐进式阶段模型适合的项目
一、生存期模型定义 二、常用生存期模型




瀑布 V模型 原型 增量 螺旋式 快速应用开发 渐近式阶段

三、案例分析
chapter__3 29
最常用的-渐进式阶段模型
综合了增量模型和螺旋式模型的一个实用模型 渐进式前进 阶段式提交
chapter__3
30
渐进式迭代模型

chapter__3
19
本章要点
一、生存期模型定义 二、常用生存期模型




瀑布 V模型 原型 增量 螺旋式 快速应用开发 渐近式阶段

三、案例分析
chapter__3 20
Spiral Model
chapter__3
21
Spiral Model
螺旋模型沿着螺线旋转,在四个象限上分别表 达了四个方面的活动,即: 制定计划──确定软件目标,需求和选定实施 方案,弄清项目开发的限制条件 风险分析──评估所选方案,考虑如何识别和 消除风险 实施工程──实施软件开发,编码,测试等 客户评估──评价开发工作,提出修正建议, 规划下期任务

2_软件生存周期及模型

2_软件生存周期及模型
13
软件产品
基线 检查点 里程碑 评审 审计 顾客>客 户>用户 现有系统 目标系统
14
软件生存周期
软件生存周期模型
15
2.2 软件生存周期模型概念

模型是为了理解事物而对事物作出的一种抽 象,它忽略了不必要的细节,是事物的一种 抽象描述形式 。
软件生存周期模型是描述软件开发过程中各种
活动如何执行的模型。它确立了软件开发和演 化中各阶段的次序以及各阶段活动的准则,确 立开发过程所必须遵守的规定和限制等。
11 编码
12 测试
第2块 第2块 第2块 第2块 第3块 第3块 第3块 第4块 第4块 …第N块
19
增量模型特点
遵循递增方式进行软件开发。开发一部 分,向用户展示一部分。 增量模型是一种非整体开发的模型。 适用于:
1)使用面向对象语言或第四代语言(VB、 Delphi、Qt等); 2)需求可能发生变化,客户接受分阶段交付; 3)分析设计人员对应用领域不熟悉,难以一步 到位; 4)项目风险高;
基本任务:通过各种类型的测试活动使软件达到 预定的要求。 结束标准:软件合格,能交付用户使用。
测试
7
软件维护时期
基本任务:通过各种必要的维护活动使系 统持久地满足用户需要。
8
交互设计
美国的Alan Cooper提出,交互设计应该作 为软件生存周期的一个重要阶段考虑进去(具 体可参看《软件开发的创新思维》,刘瑞挺等 译,电子工业出版社出版)。 可行性研究和项目开发计划、需求分析、 交互设计、 概要设计、详细设计、编码、测试、维护 解决软件的可用性,最佳满足用户的使用目标。 结束标准:达成共识的交互设计文档
在CMM中软件产品是最终用户使用的软件。它是软件工作产品的一部分。 它是软件工作产品。它是要经内部和外部评审过的,并且是下一阶段工 作的基础,一根基线是一个里程碑或一个检查点。 它是由时间、计划、事件驱动的检查工作进度和质量的一个记号,一个 检查点不一定是基线或里程碑。 它是一个记号,只需经过内部评审。它是一个检查点,但不一定是基线。 是对软件工作产品质量的一次开会或汇签活动。 是复查评审活动程序的合法性,是否按程序与规范进行。 客户是顾客的一部分,顾客包括潜在的客户。用户是软件产品的最终使 用者,用户是客户的一部分。 现有系统是用户当前正在使用的系统(可能是手工系统);目标系统是 将要实现的系统。

软件项目管理案例教程(第4版)-第3章

软件项目管理案例教程(第4版)-第3章

第三增量
……
核心功能
核心功能
核心功能
1
1
2
1
2
3
chapter__1
32
本章要点
一、生存期概述 二、预测生存期模型 三、迭代型生存期模型 四、增量型生存期模型 五、敏捷型生存期模型 六、混合型生存期模型 七、“医疗信息商务平台”生存期
模型案例分析
chapter__3
航天飞机等 公司的财务系统
chapter__1
22
本章要点
一、生存期概述 二、预测生存期模型 三、迭代型生存期模型 四、增量型生存期模型 五、敏捷型生存期模型 六、混合型生存期模型 七、“医疗信息商务平台”生存期
模型案例分析
chapter__3
24
本章要点
模型案例分析
chapter__3
4
3.1生存期概述
3.1.1 生存期的定义
软件项目生存期模型的基本特征如下:
描述开发的主要阶段。 定义每一个阶段要完成的主要过程和活动。 规范每一个阶段的输入和输出。
chapter__3
6
生存期模型选择
Customer
Customer
Requirements
模型案例分析
chapter__3
15
3.2 预测型生存期模型
3.2.1 瀑布模型(WaterFall model)
需求分析
设计
实施
测试
chapter__1
维护
17
WaterFall model适合的项目
在项目开始前,项目的需求很明确 在项目开始前,解决方案也很明确 类似的项目如:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

chapter__3
33
敏捷模型整体框架图
chapter__3
34
敏捷宣言
个体和交互胜过过程
和工具
可以工作的软件胜过面 面俱到的文档
敏捷 宣言
客户合作胜过合同谈判 响应变化胜过遵循计划
chapter__3
35
Scrum模型
chapter__3
36
燃尽图
chapter__3
37
XP(eXtreme Programming)极限编程模型
需求
不明确
希望
减少项目需求的不确定性
chapter__3
19
• 适合的项目类型 • 在项目开始前项目的需求不明确 • 需要减少项目的不确定性 • 类似的项目如:
• 需要明确系统的界面 • 验证一些技术的可行性
山东大学计算机学院
20
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
• 4.2 取得主任评估师的资格比较困难
• • • • 10年以上的软件开发经验 在SEI接受培训,培训费用每人约需数万美元,非美国人加倍。 经过两次以上CMM评估的全过程实习 主任评估师的资格并非终身制
• 4.3 评估费用昂贵:大约是ISO认证的十倍
• 价格视客户需求的多少而定,可以与咨询公司协商。 • 参考价:CMM2级50万元RMB, CMM3级80万元RMB。
14
适合V模型的项目特征
需求
很明确
方案
很明确
类似项目ቤተ መጻሕፍቲ ባይዱ
系统性能、安全等有严格要求等
chapter__3
15
V模型案例
chapter__1
16
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
chapter__3
17
原型模型☺
山东大学计算机学院
18
适合原型模型的项目特征
本章总结
• 1.软件项目生存期模型定义 • 2.典型的软件项目生存期模型
• 传统生存期模型 • 敏捷生存期模型
• 3.软件过程改进CMM简介
53
增量模型实例
chapter__3
24
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
chapter__3
25
渐进式阶段模型☺
也称为:渐进式迭代模型 渐进式前进
特点
阶段式提交
chapter__3
26
阶段性提交
chapter__1
27
渐进式阶段模型的优点
阶段式提交一个可运行的产品 关键的功能更早出现
• 2 过程的基本概念
• 过程就是人们使用相应的方法、规程、技术、工具等将原始材料(输入)转 化成用户需要的产品。过程的3个基本要素是:人、方法与规程、技术与工 具 • 过程与产品存在因果关系。即好的过程才能得到好的产品,而差的过程只会 得到差的产品。 • 过程被文档化后才能成为规范。 • 软件过程改进的根本目的是:提高质量、提高生产率并且降低开发成本。
XP(eXtreme Programming)极限编程是由Kent Beck提出的一套针对业务需求和软件开发实 践的规则。
chapter__3
38
极限编程最佳实践
chapter__1
39
极限编程方法的实施原则
快速反馈 (Rapid feedback) 假设简单 (Assuming simplicity) 包容变化 (Embracing change)
方法与规程
人员
过程
产品
技术与工具
3. CMM发展简史
• 3.1 CMM是什么
• CMM(Capability Maturity Model)是用于衡量软件过程能力的事实上的 标准,同时也是目前软件过程改进最好的参考标准。 • 美国卡内基-梅隆大学软件工程研究所(SEI)研制
• 3.2 发展简史
• • • • CMM 1.0于1991年制定。 CMM 1.1于1993发布,该版本应用最广泛。 CMM 2.0草案于1997年制定(未广泛应用)。 到2000年,CMM演化成为CMMI(Capability Maturity Model Integration ),CMM 2.0成为CMMI 1.0的主要组成部分。 • CMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出。
Disciplined Process
Repeatable (2)-规范化过程
Can repeat previously mastered tasks
Initial (1)-个别过程
4. CMM等级评估
• 4.1 过程复杂
• 每一个CMM等级评估周期(从准备到完成)约需12-30个月。 • 每一级别的评估由SEI授权的主任评估师领导一个评审小组进行,其成员 大部分来自企业内部。 • 评估过程包括员工 培训(企业的高层领导也要参加)、问卷填写和统计 、文档审查、数据分析、与企业的高层领导 讨论和撰写评估报告等。 • 评估结束由主任评估师签字生效(没有盖上公章的证书)
• 3.3 CMM重要概念
• 5个成熟度等级:Initial, Repeatable, Defined, Managed, Optimizing • 18个关键过程域。关键过程域指出为了达到某个成熟度等级必须要解决的 一族问题。
CMM五级模型
Optimizing (5)-持续改进的过程
Focus on process and technology improvement
43
MED生存期模型—敏捷模型
chapter__3
44
四个迭代
chapter__3
45
迭代模型
chapter__3
46
本章要点

二 三 四
生存期模型定义 传统生存期模型 敏捷生存期模型 案例分析

软件过程改进概述
47
软件过程改进概述
• 1 什么是软件过程改进
• 提高软件过程能力的实践通称为软件过程改进(Software Process Improvement) • 从20世纪90年代至今,软件过程改进成为软件工程学科的一个主流研究方向 ,其中CMM和CMMI是该领域举世瞩目的重大成果。
早期预警问题,避免缺陷蔓延
阶段性完成可以降低估计失误
chapter__3
28
RUP统一过程模型
山东大学计算机学院
29
RUP模型-渐进式阶段模型
chapter__3
30
银行业务系统的生存期实例
项目规划
.银行业务需求 .原形系统源代码
项目规划
业务需求分析
产品阶段1设计
产品阶段n设计
原形系统分析
产品阶段1开发
软件项目管理
第3章 软件项目生存期模型
生存期模型选择
实施策略?
客户
客户
满意
产品
需求
输入
实现
输出 产品
2
路线图:生存期
3
本章要点
生存期模型定义
传统生存期模型 敏捷生存期模型 案例分析
一 二

四 五
软件过程改进简介
4
1.软件项目生存期模型定义 ☺
描述了开发的主要阶段 定义每一个阶段要完成的主要过程和活动 确定每一个阶段的输入和输出
chapter__3
21
增量模型:Incremental Model ☺
第一增量
第二增量
第三增量
……
核心功能
核心功能
核心功能
1
1
2
1
2
3
chapter__3
22
适合增量模型的项目特征
需求
基本明确,可能发生变化
市场、用户
对于市场和用户把握需要逐步了解
系统改造
需要一步一步实施
chapter__3
23
chapter__3
40
选择生存期的步骤
熟悉各种生存 期模型
评审、分析项 目的特性
标识生存期模型 与项目不一致地 方,并进行裁减
chapter__3
选择适合项目 的生存期模型
41
本章要点

二 三 四
生存期模型定义 传统生存期模型 敏捷生存期模型 案例分析

软件过程改进概述
42
医疗信息商务平台
chapter__3
问题定义 可行性研究
需求分析
软件设计 实 施 测 试 维 护
山东大学计算机学院
11
适合瀑布模型的项目特征
需求
很明确
方案
很明确
类似项目
短期项目等
chapter__3
12
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
chapter__3
13
V型模型☺
山东大学计算机学院
产品阶段n开发
集成测试
项目规划
确认测试 产品提交
chapter__3
31
本章要点

二 三 四
生存期模型定义 传统生存期模型 敏捷生存期模型 案例分析

软件过程改进简介
32
敏捷模型(Agile Development) ☺
敏捷组织提出的一个灵活开发方法 应对迅速变化需求的快速软件开发方法 是一种迭代、循序渐进的开发方法
Continuously improving process Predictable process
Managed (4)-可预见的过程
相关文档
最新文档