第二章软件生命周期模型.ppt

上传人:re****.1 文档编号:571152127 上传时间:2024-08-09 格式:PPT 页数:63 大小:1.04MB
返回 下载 相关 举报
第二章软件生命周期模型.ppt_第1页
第1页 / 共63页
第二章软件生命周期模型.ppt_第2页
第2页 / 共63页
第二章软件生命周期模型.ppt_第3页
第3页 / 共63页
第二章软件生命周期模型.ppt_第4页
第4页 / 共63页
第二章软件生命周期模型.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《第二章软件生命周期模型.ppt》由会员分享,可在线阅读,更多相关《第二章软件生命周期模型.ppt(63页珍藏版)》请在金锄头文库上搜索。

1、 2008 BUPT TSEG软件工程软件工程Software Engineering第二章第二章 软件生命周期模型软件生命周期模型黄黄 海海 2 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心u软件工程件工程过程程u软件生命周期件生命周期u软件件过程模型程模型u传统软件生命周期模型件生命周期模型u新型新型软件生命周期模型件生命周期模型3 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.1 2.1 软件工程过程软件工程过程工程项目的工程项目的PDCA循环(戴明环)循环(戴明环)美国质量管理专家戴明博士针对工程

2、项目的质量美国质量管理专家戴明博士针对工程项目的质量目标,将全面质量管理思想引入工程项目过程,目标,将全面质量管理思想引入工程项目过程,提出了提出了PDCA循环,也称为戴明环循环,也称为戴明环.即即Plan(规划)、(规划)、Do(执行)、(执行)、Check(检查)、(检查)、Action(处理)等抽象活动的循环。(处理)等抽象活动的循环。4 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.1 2.1 软件工程过程软件工程过程软件工程过程软件工程过程(Software Engineering Process)软件工程过程是为获得软件产品,在软件工具

3、支持下由软软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件工程过程遵循件工程师完成的一系列软件工程活动。软件工程过程遵循PDCA抽象活动,包含四种基本的过程活动:抽象活动,包含四种基本的过程活动:P (Plan)P (Plan) : 软件规格说明软件规格说明。规定软件的功能及其运行的限。规定软件的功能及其运行的限制;制;D (Do)D (Do) : 软件开发软件开发。产生满足规格说明的软件;。产生满足规格说明的软件;C (Check)C (Check) : 软件确认软件确认。确认软件能够完成客户提出的要。确认软件能够完成客户提出的要求;求;A (Acti

4、on)A (Action) : 软件演进软件演进。为满足客户的变更要求,软件必。为满足客户的变更要求,软件必须在使用的过程中演进。须在使用的过程中演进。事实上,软件工程过程是一个软件开发机构针对某一事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品的质量。理的,否则必将影响到软件产品的质量。5 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心u软件工程件工程过程程u软件生命周期件生命周期u软件件过程模型程模型u传统软件生命周期模型件

5、生命周期模型u新型新型软件生命周期模型件生命周期模型6 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.2 2.2 软件生命周期软件生命周期软件生命周期软件生命周期( (software life cycle ) )是指软件产是指软件产品从考虑其概念开始,到该软件产品不再使用为品从考虑其概念开始,到该软件产品不再使用为止的整个时期,一般包括概念阶段、分析与设计止的整个时期,一般包括概念阶段、分析与设计阶段、构造阶段、移交阶段等不同时期。阶段、构造阶段、移交阶段等不同时期。在整个软件生命周期中贯穿了软件工程过程的六在整个软件生命周期中贯穿了软件工程过程

6、的六个基本活动个基本活动: :制定计划制定计划: : 确定要开发软件系统的总目标,给出它确定要开发软件系统的总目标,给出它的功能、性能、可靠性以及接口等方面的要求;研的功能、性能、可靠性以及接口等方面的要求;研究完成该项软件任务的可行性,探讨解决问题的可究完成该项软件任务的可行性,探讨解决问题的可能方案;制定完成开发任务的实施计划,连同可行能方案;制定完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。性研究报告,提交管理部门审查。7 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.2 2.2 软件生命周期软件生命周期需求分析和定义需求分析

7、和定义: :对待开发软件提出的需求进行分析对待开发软件提出的需求进行分析并给出详细的定义。编写出软件需求说明书及初步并给出详细的定义。编写出软件需求说明书及初步的用户手册,提交管理机构评审。的用户手册,提交管理机构评审。软件设计软件设计: :设计是软件工程的技术核心。把已确定了设计是软件工程的技术核心。把已确定了的各项需求转换成一个相应的体系结构。进而对每的各项需求转换成一个相应的体系结构。进而对每个模块要完成的工作进行具体的描述。编写设计说个模块要完成的工作进行具体的描述。编写设计说明书,提交评审。明书,提交评审。程序编写程序编写: :把软件设计转换成计算机可以接受的程序把软件设计转换成计算

8、机可以接受的程序代码。代码。软件测试软件测试: :在设计测试用例的基础上检验软件的各个在设计测试用例的基础上检验软件的各个组成部分。组成部分。运行维护运行维护: :已交付的软件投入正式使用,并在运行已交付的软件投入正式使用,并在运行过程中进行适当的维护。过程中进行适当的维护。8 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心u软件工程件工程过程程u软件生命周期件生命周期u软件件过程模型程模型u传统软件生命周期模型件生命周期模型u新型新型软件生命周期模型件生命周期模型9 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程

9、中心2.3 2.3 软件过程模型软件过程模型模型模型是实际事物、实际系统的抽象。是实际事物、实际系统的抽象。 软件过程模型软件过程模型是从一个特定角度提出的是从一个特定角度提出的对软件过程的简化描述,是对软件开发对软件过程的简化描述,是对软件开发实际过程的抽象,它包括构成软件过程实际过程的抽象,它包括构成软件过程的各种的各种活动活动、软件工件软件工件(artifact)以及)以及参与角色参与角色等。等。10 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.3 2.3 软件过程模型软件过程模型从软件过程的三个组成成分可以将软件过程模型划分为从软件过程的

10、三个组成成分可以将软件过程模型划分为三种类型:三种类型: 工作流(工作流(work flow)模型)模型 这类模型描述软件过程中各种活动的序列、输入和输出,以及各种活动这类模型描述软件过程中各种活动的序列、输入和输出,以及各种活动之间的相互依赖性。它强调软件过程中活动的组织控制策略。之间的相互依赖性。它强调软件过程中活动的组织控制策略。 数据流(数据流(data flow)模型)模型 这类模型描述将软件需求变换成软件产品的整个过程中的活动,这些活这类模型描述将软件需求变换成软件产品的整个过程中的活动,这些活动完成将输入工件变换成输出工件的功能。它强调软件过程中的工件的变换动完成将输入工件变换成

11、输出工件的功能。它强调软件过程中的工件的变换关系,对工件变换的具体实现措施没有加以限定。关系,对工件变换的具体实现措施没有加以限定。 角色角色/动作模型动作模型 这类模型描述了参与软件过程的不同角色及其各自负责完成的动作,即这类模型描述了参与软件过程的不同角色及其各自负责完成的动作,即根据参与角色的不同将软件过程应该完成的任务划分成不同的职能根据参与角色的不同将软件过程应该完成的任务划分成不同的职能(function area)。它强调软件过程中角色的划分、角色之间的协作关系,并对角色的。它强调软件过程中角色的划分、角色之间的协作关系,并对角色的职责进行了具体的确定。职责进行了具体的确定。 1

12、1 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心u软件工程件工程过程程u软件生命周期件生命周期u软件件过程模型程模型u传统软件生命周期模型件生命周期模型u新型新型软件生命周期模型件生命周期模型12 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型软件过程模型软件过程模型有时也称有时也称软件生命周期模型软件生命周期模型,即描述从软,即描述从软件需求定义直至软件经使用后废弃为止,跨越整个生存件需求定义直至软件经使用后废弃为止,跨越整个生存期的软件开发、运行和维

13、护所实施的全部过程、活动和期的软件开发、运行和维护所实施的全部过程、活动和任务的结构框架,同时描述生命周期不同阶段产生的软任务的结构框架,同时描述生命周期不同阶段产生的软件工件,明确活动的执行角色等。件工件,明确活动的执行角色等。九个传统软件生命周期模型:九个传统软件生命周期模型:. .瀑布模型瀑布模型. .螺旋模型螺旋模型.V.V模型和模型和W W模型模型. .喷泉模型喷泉模型. .原型方法原型方法. .构件组装模型构件组装模型. .演化模型演化模型. .快速应用开发模型快速应用开发模型. .增量模型增量模型13 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软

14、件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型1. 1. 瀑布模型瀑布模型( (waterfall model) )14 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型u19701970年,年,W.Royce提出瀑布模型。瀑布模型规定了软件提出瀑布模型。瀑布模型规定了软件生命周期提出的六个基本工程活动,并且规定了它们自生命周期提出的六个基本工程活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水上而下、相互衔接的固定次序,如同瀑布流水u瀑布模型将软件生命周期划分为瀑布

15、模型将软件生命周期划分为定义阶段定义阶段、开发阶段开发阶段和和维护阶段维护阶段,在定义阶段部署了计划和需求分析活动;在,在定义阶段部署了计划和需求分析活动;在开发阶段部署了设计、编码和测试活动,维护阶段部署开发阶段部署了设计、编码和测试活动,维护阶段部署了运行了运行/ /维护活动维护活动 u瀑布模型中的每一个开发活动具有下列特征瀑布模型中的每一个开发活动具有下列特征 本活动的工作对象来自于上一项活动的输出本活动的工作对象来自于上一项活动的输出 根据本阶段的活动规程执行相应的任务。根据本阶段的活动规程执行相应的任务。 产生本阶段活动相关产出产生本阶段活动相关产出软件工件,作为下一活动的输入。软件

16、工件,作为下一活动的输入。 对本阶段活动执行情况进行评审。对本阶段活动执行情况进行评审。 15 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型u瀑布模型中的运行瀑布模型中的运行/维护活动,是一个具有最长生维护活动,是一个具有最长生命周期的循环往复阶段。命周期的循环往复阶段。16 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型瀑布模型优点:瀑布模型优点: 软件生命周期的阶段划分不仅降低了软件开发的软件生

17、命周期的阶段划分不仅降低了软件开发的复杂程度,而且提高了软件开发过程的透明性,便复杂程度,而且提高了软件开发过程的透明性,便于将软件工程过程和软件管理过程有机地融合在一于将软件工程过程和软件管理过程有机地融合在一起,从而提高软件开发过程的可管理性。起,从而提高软件开发过程的可管理性。 推迟了软件实现,强调在软件实现前必须进行分推迟了软件实现,强调在软件实现前必须进行分析和设计工作。析和设计工作。 瀑布模型以项目的阶段评审和文档控制为手段有瀑布模型以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正

18、开发过程中存在的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,从而能够使产品达到预期的质量要求。缺陷,从而能够使产品达到预期的质量要求。17 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型瀑布模型缺点瀑布模型缺点: 模型缺乏灵活性,特别是无法解决软件需求不明确模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题,这是瀑布模型最突出的缺点。因此,或不准确的问题,这是瀑布模型最突出的缺点。因此,瀑布模型只适合于瀑布模型只适合于需求明确需求明确的软件项目。的软件项目。 模型的风险控制能力较弱。

19、成品时间长;体系结构模型的风险控制能力较弱。成品时间长;体系结构的风险和错误只有在测试阶段才能发现,返工导致项的风险和错误只有在测试阶段才能发现,返工导致项目延期。目延期。软件活动是文档驱动的,文档过多会增加工作量,软件活动是文档驱动的,文档过多会增加工作量,文档完成情况会误导管理人员。文档完成情况会误导管理人员。18 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型2. V模型和模型和W模型模型(1) V模型模型瀑布模型的变种瀑布模型的变种瀑布模型将测试作为软件实现之后的一个独立瀑布模型将测试作为

20、软件实现之后的一个独立阶段,没有强调测试的重要性。阶段,没有强调测试的重要性。针对瀑布模型这个缺点,针对瀑布模型这个缺点,1980年代后期年代后期Paul Rook提出了提出了V模型。模型。V模型的价值在于纠正了人们不重视测试阶段模型的价值在于纠正了人们不重视测试阶段重要性的错误认识,将测试分等级,并和前面重要性的错误认识,将测试分等级,并和前面的开发阶段对应起来。的开发阶段对应起来。 19 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 V模型示意图模型示意图 20 2008 BUPT TSEG

21、 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型(2) W模型模型瀑布模型的变种瀑布模型的变种V模型仍然将测试作为一个独立的阶段,所以模型仍然将测试作为一个独立的阶段,所以并没有提高模型抵抗风险的能力。并没有提高模型抵抗风险的能力。Evolutif公司在公司在V模型的基础上提出了模型的基础上提出了W模型,模型,将测试广义化,增加了将测试广义化,增加了确认确认和和验证验证内容,并贯内容,并贯穿整个软件生命周期。穿整个软件生命周期。W模型由两个模型由两个V型模型组成,分别代表测试与型模型组成,分别代表测试与开发过程开发过程 ,两个

22、过程是同步进行的。,两个过程是同步进行的。 21 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 W模型示意图模型示意图 22 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型3. 原型方法原型方法(prototyping) 完整准确的需求规格说明很难得到完整准确的需求规格说明很难得到早期用户对系统只有一个模糊的想法;早期用户对系统只有一个模糊的想法;开发过程中用户可能提出新的需求;开发过程中用户可能提

23、出新的需求;环境的变化也要求开发过程中的系统随之改变;环境的变化也要求开发过程中的系统随之改变;预料之外的实际困难使得开发人员不得不改变需预料之外的实际困难使得开发人员不得不改变需求来适应。求来适应。通过加强评审和确认、全面测试也不能从根本通过加强评审和确认、全面测试也不能从根本上解决需求不稳定带来的问题。上解决需求不稳定带来的问题。为了解决这些问题,逐渐形成了软件系统的原为了解决这些问题,逐渐形成了软件系统的原型建设思想型建设思想 23 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型(1) (1

24、) 原型方法概述原型方法概述原型:原型:是指模拟某种产品的原始模型。软件原型是指模拟某种产品的原始模型。软件原型是一个早期可以运行的版本,它反映最终系统的是一个早期可以运行的版本,它反映最终系统的部分重要特性。部分重要特性。原型方法构造软件系统原型方法构造软件系统 获得一组基本的需求说明,快速分析构造出一个小型获得一组基本的需求说明,快速分析构造出一个小型的软件系统,满足用户的基本要求;的软件系统,满足用户的基本要求;用户试用原型系统,对其进行反应和评价;用户试用原型系统,对其进行反应和评价;开发者根据用户意见对原型进行改进,获得新的原型开发者根据用户意见对原型进行改进,获得新的原型版本;版本

25、;周而复始,直到产品满足用户的要求。周而复始,直到产品满足用户的要求。原型化方法是在研究需求分析技术的过程中产生原型化方法是在研究需求分析技术的过程中产生的,但也可以用于软件开发的其他阶段的,但也可以用于软件开发的其他阶段24 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型原型的种类(目的)原型的种类(目的)探索型:弄清对目标系统的要求探索型:弄清对目标系统的要求实验型:系统实现前考察系统的可行性实验型:系统实现前考察系统的可行性进化型:将原型扩展到开发过程,通过原型开发逐进化型:将原型扩展到开发

26、过程,通过原型开发逐步实现所有系统功能。步实现所有系统功能。原型的使用策略原型的使用策略废弃策略:探索型和实验型废弃策略:探索型和实验型追加策略:进化型追加策略:进化型原型不同于最终的系统,需要快速实现和运行,原型不同于最终的系统,需要快速实现和运行,因此,原型可以忽略一切暂时不必关心的部分因此,原型可以忽略一切暂时不必关心的部分(抽象)(抽象)25 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型原型方法的优点原型方法的优点有助于增进软件人员和用户对系统服务需求的理有助于增进软件人员和用户对系统服

27、务需求的理解解 提供了一种有力的学习手段提供了一种有力的学习手段 容易确定系统的性能、服务的可应用性、设计的容易确定系统的性能、服务的可应用性、设计的可行性和产品的结果可行性和产品的结果原型的最终版本可作为最终产品或最终系统的一原型的最终版本可作为最终产品或最终系统的一部分部分原型方法的缺点原型方法的缺点文档容易被忽略文档容易被忽略 建立原型的许多工作会被浪费掉建立原型的许多工作会被浪费掉 项目难以规划和管理项目难以规划和管理 26 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型(2) (2) 原

28、型方法应用过程原型方法应用过程 27 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型l快速分析快速分析l快速构造快速构造 尽快实现一个可运行的系统,可忽略目标系统在尽快实现一个可运行的系统,可忽略目标系统在某些细节(如安全性、健壮性、异常处理等)上某些细节(如安全性、健壮性、异常处理等)上的要求的要求 。 l用户使用用户使用 l评价反馈评价反馈是否满足规格说明的要求;纠正分析过程中的一是否满足规格说明的要求;纠正分析过程中的一些误解和错误;增补新的要求些误解和错误;增补新的要求 l修改修改 反复迭

29、代,直到形成最终产品反复迭代,直到形成最终产品28 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型(3) (3) 原型方法支持的软件生命周期原型方法支持的软件生命周期原型方法可以支持软件生命周期的不同阶段原型方法可以支持软件生命周期的不同阶段辅助或代替分析阶段辅助或代替分析阶段 ( (确定需求确定需求) )辅助设计阶段辅助设计阶段 ( (确定设计方案的合理性确定设计方案的合理性) )代替分析与设计阶段代替分析与设计阶段 代替分析、设计和实现阶段代替分析、设计和实现阶段 代替全部开发阶段代替全部开发

30、阶段 ( (典型的演化模型典型的演化模型 ) )29 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 原型方法支持下的软件生命周期原型方法支持下的软件生命周期 30 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型(4) (4) 支持原型构造的软件复用技术支持原型构造的软件复用技术( (快速构建快速构建) )数据复用数据复用 模块复用模块复用 结构复用结构复用 设计复用设计复用 规格说明复用规格说明复用

31、 软件复用两种实现机制软件复用两种实现机制:合成复用技术合成复用技术 ( (构件构件) )生成复用技术生成复用技术 ( (模式模式) )31 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型4. 4. 演化模型演化模型项目开发初始阶段对需求的认识不够清晰,项目开发初始阶段对需求的认识不够清晰,使得开发工作出现再开发在所难免。经验告使得开发工作出现再开发在所难免。经验告诉我们:开发诉我们:开发“两次两次”后的软件能较好地满后的软件能较好地满足用户的要求。足用户的要求。第一次:第一次:试验开发,目的是探

32、索可行性,弄试验开发,目的是探索可行性,弄清楚项目的需求。第一次得到的试验性产品清楚项目的需求。第一次得到的试验性产品称为称为“原型原型”。第二次:第二次:在第一次的原型基础上进行开发,在第一次的原型基础上进行开发,从而获得较为满意的软件产品。从而获得较为满意的软件产品。32 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 演化模型示意图演化模型示意图 33 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期

33、模型演化模型主要针对需求不是很明确的软件项目演化模型主要针对需求不是很明确的软件项目 演化模型缺点演化模型缺点可能会抛弃瀑布模型的文档控制优点,开发过程不可能会抛弃瀑布模型的文档控制优点,开发过程不透明透明 探索式演化模型可能会导致最后的软件系统的系统探索式演化模型可能会导致最后的软件系统的系统结构较差结构较差 可能会用到一些不符合主流、不符合要求或者不成可能会用到一些不符合主流、不符合要求或者不成熟的工具和技术熟的工具和技术 34 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型5. 5. 增量模

34、型增量模型增量模型首先由增量模型首先由Mills等人于等人于19801980年提出,结年提出,结合了瀑布模型和演化模型的优点。合了瀑布模型和演化模型的优点。允许客户的需求可以逐步提出来;每一次允许客户的需求可以逐步提出来;每一次“增量增量”需求的划分与需求的划分与“增量增量”实现的集成是实现的集成是以不影响系统体系结构为前提的。以不影响系统体系结构为前提的。 在增量模型中,客户定义需求框架,确定系在增量模型中,客户定义需求框架,确定系统需求实现的优先级;此后针对核心需求以统需求实现的优先级;此后针对核心需求以及系统的性能要求确定系统的体系结构,并及系统的性能要求确定系统的体系结构,并以此体系结

35、构指导增量的集成,保证在整个以此体系结构指导增量的集成,保证在整个开发过程中体系结构的稳定性。开发过程中体系结构的稳定性。35 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 增量模型示意图增量模型示意图 36 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型增量模型优点增量模型优点增强了客户使用系统的信心,逐步提出对后续增增强了客户使用系统的信心,逐步提出对后续增量的需求量的需求 项目总体失败的风险较

36、低项目总体失败的风险较低 增量从高到低的优先级确定保障了系统重要功能增量从高到低的优先级确定保障了系统重要功能部分的可靠性部分的可靠性 同一个体系结构提高了系统的稳定性和可维护性同一个体系结构提高了系统的稳定性和可维护性 增量模型缺点增量模型缺点增量的粒度选择问题增量的粒度选择问题 确定所有的基本业务服务比较困难确定所有的基本业务服务比较困难 37 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型6. 6. 螺旋模型螺旋模型螺旋模型是螺旋模型是Boehm于于19881988年针对年针对大型软件项目大

37、型软件项目的特点提出来的的特点提出来的对于复杂的大型软件而言,事先不能完整清晰地定对于复杂的大型软件而言,事先不能完整清晰地定义需求是常事,而且开发一个原型是远远不能解决义需求是常事,而且开发一个原型是远远不能解决问题的,需要开发内容逐步丰富的多个原型。问题的,需要开发内容逐步丰富的多个原型。大型软件项目往往存在着诸多风险因素,螺旋模型大型软件项目往往存在着诸多风险因素,螺旋模型将瀑布模型与演化模型结合起来,并加入了两种模将瀑布模型与演化模型结合起来,并加入了两种模型均忽略了的风险分析。因为大型项目的规模和复型均忽略了的风险分析。因为大型项目的规模和复杂性增加,软件开发过程中必然存在着许多风险

38、问杂性增加,软件开发过程中必然存在着许多风险问题,风险分析是保证项目成功的必要手段。题,风险分析是保证项目成功的必要手段。38 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 螺旋模型示意图螺旋模型示意图 39 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型螺旋模型沿着螺线旋转,在四个象限上分别表达螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:了四个方面的活动,即:制定计划制定计划确

39、定软件目标,选定实施方案,弄确定软件目标,选定实施方案,弄清项目开发的限制条件清项目开发的限制条件风险分析风险分析分析所选方案,考虑如何识别和消分析所选方案,考虑如何识别和消除风险除风险实施工程实施工程实施软件开发实施软件开发客户评估客户评估评价开发工作,提出修正建议评价开发工作,提出修正建议螺旋模型适合于大型软件的开发螺旋模型适合于大型软件的开发; ;然而风险分析需然而风险分析需要相当丰富的评估经验,风险的规避又需要深厚要相当丰富的评估经验,风险的规避又需要深厚的专业知识,这给螺旋模型的应用增加了难度。的专业知识,这给螺旋模型的应用增加了难度。 40 2008 BUPT TSEG 北京邮电大

40、学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型7. 7. 喷泉模型喷泉模型( (迭代模型迭代模型) )喷泉模型认为软件开发过程具有两个固有的本质特征:喷泉模型认为软件开发过程具有两个固有的本质特征:迭代迭代 多次重复、演进。多次重复、演进。无间隙无间隙 各阶段间无明显的界限。支持分析和设计结果各阶段间无明显的界限。支持分析和设计结果的自然复用。的自然复用。适用:适用:面向对象的软件开发过程。对象概念的引入,对面向对象的软件开发过程。对象概念的引入,对象及对象关系在分析、设计和实现阶段的表达方式的统象及对象关系在分析、设计和实现阶段的表达

41、方式的统一,使得开发活动之间的迭代和无间隙性能够容易地实一,使得开发活动之间的迭代和无间隙性能够容易地实现。现。41 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 喷泉模型示意图喷泉模型示意图 42 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型8. 8. 构件组装模型构件组装模型构件组装模型本质上是演化的,开发过程构件组装模型本质上是演化的,开发过程是迭代的。是迭代的。构建组装模型由五个阶段组成:

42、构建组装模型由五个阶段组成:需求定义和分析需求定义和分析软件体系结构设计软件体系结构设计构件开发构件开发应用软件构造应用软件构造测试和发布测试和发布43 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 构件组装模型构件组装模型 44 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型软件的开发过程步骤如下:软件的开发过程步骤如下:(1)(1)定义和分析需求;定义和分析需求;(2)(2)标识本项目需要什么构

43、件;标识本项目需要什么构件;(3)(3)从库中查找构件或相似的构件;从库中查找构件或相似的构件;(4)(4)如如果果可可用用转转(5)(5),否否则则自自行行开开发发或或修修改改,确确认后入库;认后入库;(5)(5)构造为新系统作第构造为新系统作第m m次迭代;次迭代;(6)(6)测试、确认。测试、确认。45 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型9. 9. 快速应用开发快速应用开发( (RAD) )模型模型快速应用开发快速应用开发( (Rapid Application Developm

44、ent,RAD) )是一个增量型的软件开发过程模型,采是一个增量型的软件开发过程模型,采用构件组装方法进行快速开发。用构件组装方法进行快速开发。RAD模型包含如下阶段:模型包含如下阶段:(1)(1)业务建模:业务建模:通过捕获业务过程中信息流的流动及通过捕获业务过程中信息流的流动及处理情况描述业务处理系统应该完成的功能。回答处理情况描述业务处理系统应该完成的功能。回答以什么信息驱动业务过程运作以什么信息驱动业务过程运作? ? 要生成什么信息要生成什么信息? ? 谁生成它谁生成它? ? 信息流的去向信息流的去向? ? 由谁处理由谁处理? ? 可以辅之以可以辅之以数据流图。数据流图。(2)(2)数

45、数据据建建模模:对对于于支支持持业业务务过过程程的的数数据据流流,建建立立数数据据对对象象集集合合, ,定定义义数数据据对对象象属属性性, ,与与其其它它数数据据对对象象的的关系构成数据模型,可辅之以关系构成数据模型,可辅之以E-R图。图。46 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型(3)(3)过过程程建建模模:定定义义如如何何使使数数据据对对象象在在信信息息流流中中完完成成各各业业务务功功能能。描描述述数数据据对对象象的的增增加加、修修改改、删除、查找。即细化数据流图中的处理框。删除、查

46、找。即细化数据流图中的处理框。(4)(4)应用生成:应用生成:利用第四代语言利用第四代语言( (4GL) )写出处理程序,写出处理程序,重用已有构件或创建新的可重用构件,利用环重用已有构件或创建新的可重用构件,利用环境提供的工具,自动生成,构造出整个的应用境提供的工具,自动生成,构造出整个的应用系统。系统。(5)(5)测试及迭代:测试及迭代:由于大量重用,一般只作总体测由于大量重用,一般只作总体测试,但新创建的构件还是要测试的。当一轮需试,但新创建的构件还是要测试的。当一轮需求完成快速开发后,可以迭代进入下一轮需求求完成快速开发后,可以迭代进入下一轮需求的开发。的开发。47 2008 BUPT

47、 TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.4 2.4 传统软件生命周期模型传统软件生命周期模型 RAD模型示意图模型示意图 48 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心u软件工程件工程过程程u软件生命周期件生命周期u软件件过程模型程模型u传统软件生命周期模型件生命周期模型u新型新型软件生命周期模型件生命周期模型49 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型1. 1. 统一软件开发过程统一软件开发过程 ( (RU

48、P) )RUP(Rational Unified Process)是由是由Rational公司开发的一种软件工程过程框公司开发的一种软件工程过程框架,是一个面向对象的基于架,是一个面向对象的基于web的程序开的程序开发方法论。发方法论。RUP既是一种软件生命周期模型,又是既是一种软件生命周期模型,又是一种支持面向对象软件开发的工具,它将一种支持面向对象软件开发的工具,它将软件开发过程要素和软件工件要素整合在软件开发过程要素和软件工件要素整合在统一的框架中统一的框架中。50 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模

49、型新型软件生命周期模型(1) RUP的基本结构的基本结构RUP是一个二维的软件开发模型。是一个二维的软件开发模型。横轴在时间上将生命周期过程展开成四个阶段横轴在时间上将生命周期过程展开成四个阶段(Phase),每个阶段特有的里程碑),每个阶段特有的里程碑(Milestone)是该阶段结束的标志,每个阶段里)是该阶段结束的标志,每个阶段里又划分为不同的迭代(又划分为不同的迭代(Iteration),体现了软件),体现了软件开发过程的动态结构。开发过程的动态结构。纵轴按照活动的内容进行组织,包括活动纵轴按照活动的内容进行组织,包括活动(activity)、活动产出的工件()、活动产出的工件(art

50、ifact)、活动)、活动的执行角色(的执行角色(worker)以及活动执行的工作流)以及活动执行的工作流(workflow),体现软件开发过程的静态结构。),体现软件开发过程的静态结构。 51 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型 RUP二维软件开发模型二维软件开发模型 52 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型RUP中的软件生命周期的四个顺序阶段:中的软件生命周期的四个顺序阶段

51、: 初始阶段初始阶段生命周期目标生命周期目标( (Lifecycle Objective) )里程碑里程碑 细化阶段细化阶段生命周期体系结构生命周期体系结构( (Lifecycle Architecture) )里程碑里程碑 构造阶段构造阶段初始运行能力初始运行能力( (Initial Operational Capability) )里程碑里程碑 移交阶段移交阶段 产品发布产品发布( (Product Release) )里程碑里程碑 53 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型(2)

52、RUP的迭代增量开发思想的迭代增量开发思想RUP的每一个阶段可以进一步划分为一个或多个迭代的每一个阶段可以进一步划分为一个或多个迭代过程,从一个迭代过程到另一个迭代过程增量形成最过程,从一个迭代过程到另一个迭代过程增量形成最终的系统。终的系统。RUP是融合了喷泉模型和增量模型的一种综合生命周是融合了喷泉模型和增量模型的一种综合生命周期模型期模型 。 RUP中的迭代增量开发中的迭代增量开发 54 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型RUP将整个项目的开发目标划分成一些更易于完成和将整个项目

53、的开发目标划分成一些更易于完成和达到的阶段性小目标。每一次迭代就是为了完成一定达到的阶段性小目标。每一次迭代就是为了完成一定阶段性小目标而从事的一系列开发活动,包含需求、阶段性小目标而从事的一系列开发活动,包含需求、设计、实施(编码)、部署、测试等。设计、实施(编码)、部署、测试等。RUP中的迭代过程中的迭代过程 55 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型(3) (3) RUP的核心工作流的核心工作流6 6个核心过程工作流个核心过程工作流( (Core Process Workflows

54、) )商业建模(商业建模(Business Modeling) 需求(需求(Requirements) 分析和设计(分析和设计(Analysis & Design) 实现(实现(Implementation) 测试(测试(Test) 部署(部署(Deployment) 56 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型3 3个核心支持工作流个核心支持工作流( (Core Supporting Workflows) )配置和变更管理(配置和变更管理(Configuration & Change M

55、anagement) 项目管理(项目管理(Project Management) 环境(环境(Environment) 57 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型(4) (4) RUP的最佳实践的最佳实践 短时间分区式的迭代短时间分区式的迭代适应性开发适应性开发在早期迭代中解决高技术风险和高业务价值的问题在早期迭代中解决高技术风险和高业务价值的问题不断地让用户参与迭代结果的评估不断地让用户参与迭代结果的评估在早期迭代中建立内聚的核心架构在早期迭代中建立内聚的核心架构不断地验证质量;尽早、

56、经常和实际地测试不断地验证质量;尽早、经常和实际地测试使用用例驱动软件建模使用用例驱动软件建模可视化软件建模:使用可视化软件建模:使用UMLUML进行软件建模进行软件建模仔细地管理需求仔细地管理需求实行变更请求和配置管理实行变更请求和配置管理58 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型2. 敏捷模型敏捷模型(Agile Modeling,AM)敏捷建模是由敏捷建模是由Scott W. Ambler从许多的软从许多的软件开发过程实践中归纳总结出来的一些敏件开发过程实践中归纳总结出来的一些敏捷

57、建模价值观、原则和实践等组成的捷建模价值观、原则和实践等组成的 AM只是一种只是一种态度态度,不是一个说明性过程,不是一个说明性过程,它描述了一种它描述了一种建模风格建模风格 AM是对已有生命周期模型的补充,它本身是对已有生命周期模型的补充,它本身不是一个完整的方法论,在应用传统的生不是一个完整的方法论,在应用传统的生命周期模型时可以借鉴命周期模型时可以借鉴AM的过程指导思想的过程指导思想 59 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型(1) (1) 敏捷建模价值观敏捷建模价值观 沟通沟通

58、简单简单反馈反馈 勇气勇气 谦逊谦逊 60 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型(2) (2) 敏捷建模原则敏捷建模原则核心原则核心原则 1)1)主张简单主张简单 2)2)拥抱变化拥抱变化 3)3)软件开发的第二个目标应是可持续性软件开发的第二个目标应是可持续性 4)4)递增的变化递增的变化 5)5)令项目干系人投资最大化令项目干系人投资最大化 6)6)有目的地建模有目的地建模 7)7)多种模型多种模型 8)8)高质量的工作高质量的工作 9)9)快速反馈快速反馈 10)10)软件产品是主

59、要目标软件产品是主要目标 11)11)轻装前进轻装前进 61 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型补充原则补充原则 1)1)内容比表示更重要内容比表示更重要 2)2)三人行必有我师三人行必有我师 3)3)了解软件建模方法了解软件建模方法 4)4)了解软件开发工具了解软件开发工具 5)5)局部调整局部调整 6)6)开放诚实的沟通开放诚实的沟通 7)7)利用好直觉利用好直觉 62 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件

60、生命周期模型新型软件生命周期模型(3) (3) 敏捷建模实践敏捷建模实践 核心实践核心实践1)1)项目干系人的积极参与项目干系人的积极参与 2)2)正确使用工件正确使用工件3)3)集体所有制集体所有制 4)4)测试性思维测试性思维 5)5)并行创建模型并行创建模型 6)6)创建简单的内容创建简单的内容 7)7)简单地建模简单地建模 8)8)公开展示模型公开展示模型 9)9)切换到另外的工件切换到另外的工件 10)10)小增量建模小增量建模 11)11)和他人一起建模和他人一起建模 12)12)用代码验证用代码验证 13)13)使用最简单的工具使用最简单的工具 63 2008 BUPT TSEG 北京邮电大学北京邮电大学 通信软件工程中心通信软件工程中心2.5 2.5 新型软件生命周期模型新型软件生命周期模型补充实践补充实践1)1)使用建模标准使用建模标准 2)2)逐渐应用模式(逐渐应用模式(pattern) 3)3)丢弃临时模型丢弃临时模型 4)4)合同模型要正式合同模型要正式 5)5)为外部交流建模为外部交流建模 6)6)为帮助理解建模为帮助理解建模 7)7)重用现有的资源重用现有的资源 8)8)不到万不得已不更新模型不到万不得已不更新模型

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号