首页 > 编程知识 正文

软件工程生命周期的各个阶段,软件工程的生命周期

时间:2023-05-03 23:38:28 阅读:21899 作者:3800

生命周期模型

1. 1瀑布模型

瀑布模型是典型的软件生命周期模型,一般将软件开发分为可行性分析(规划)、需求分析、软件设计)、概要设计、详细设计)、编码)、测试、运营维护等几个阶段

瀑布模型的各项开发活动具有以下特点。

(l )从上次开发活动中接受其成果作为这次活动的输入。

)2)利用此输入实施本次活动应完成的工作内容。

)3)把这次活动的成果拿出来,作为输出传达给下一个开发活动。

)4)审查本次活动的实施成果。

缺点:过程基本上是不可迭代的,需求是第一个不确定性的,错误到最后也找不到,开发过程呈阻塞状态

瀑布型简单地说就是按照需求、设计、编码、测试、软件维护这个基本的顺序来研发软件,前面一个步骤不完成,后面的步骤不能开始,否则问题会滚到下个阶段,带来更多的问题。瀑布型简单地说就是按照需求、设计、编码、测试、软件维护这个基本的顺序来研发软件,前面一个步骤不完成,后面的步骤不能开始,否则问题会滚到下个阶段,带来更多的问题。

2 . V模型

如图所示

v模型左边下降是开发过程的各个阶段,与之对应的是右边上升的部分,即各个测试过程的各个阶段。

v模型的优点是清楚地展示了测试中存在的不同级别,并清楚地描述了这些测试阶段与开发各阶段的对应关系。

3原型化模型

原型化的第一步是构建快速原型,使客户或未来用户与系统交互,通过与用户就原型的讨论和交流,真正了解用户所需的软件产品是什么在充分理解的基础上,根据原型开发用户满意的产品。

如图所示,原型严格来说不是软件生命周期模型,而是它只是一种获取需求的方法,在实际工作中该方法是相当重要的方法。

增量模型也是一种原型化开发方法。 如图所示

模型要点:瀑布与原型模型相结合,强调版本升级。

该模型的特点是一次捕获所有需求,并制定按版本实现各需求的计划。 每个版本只实现部分需求,在多个版本中逐步实现所有需求。 每个版本都可以被认为是“小瀑布”。该模型的好处是可以尽快让系统上线,让客户先使用部分功能,尽早实现系统的价值。

该模型符合实际情况,我们也经常在多个版本中逐步实现所有需求,但需求不能从一开始就完全确定。 实际上只能确定80%,但后期各版本将获得更多新的需求和需求调整。 稍微调整一下这个模型,就可以适用于大多数实际项目。

4.螺旋模型

螺旋模型是进化软件的过程模型,它将原型实现的迭代特征与线性顺序(瀑布)模型中的控制和系统化方面相结合。 实现了软件增量版本的快速开发。 在螺旋模型中,软件开发是一系列增量发行。 螺旋模型的整个开发过程如图所示。

图中的螺旋表示随时间前进的工作进展; 开发过程具有周期性重复的螺旋形状。 四个象限分别显示了按周期划分的四个阶段:计划制定、风险分析、工程实施和客户评估。 螺旋模型的要点:将瀑布模型与原型模型统一,与增量模型相似。更强调风险分析。

1 .软件分为多个版本开发,每个版本都是螺旋的。

2 .每个版本都是按照这种顺序进行的。

1 )确定软件目标,选择实施方案,明确项目开发的限制条件; (图中左上象限)

2 )分析所选方案,考虑如何识别和消除风险; (图中右上象限)

3 )软件开发实施(图中右下象限)

4 )评估开发工作,提出修正案,调整计划。 (图中右下象限、左下象限)

3 .需求不是一次性获得和实现的,而是多螺旋完善的。

4 .计划也不是一次成型的,每次螺旋都需要调整。

这个模型在实际工作中实用性相当高,但是这个模型可能很多

资料都说得不太清楚,让很多人会有一些误解。

 

5 .迭代模型

喷泉模型:体现认识事物的循环迭代性,强调开发活动之间的无间隙性,无明显的活动阶段划分,适用于面向对象的开发过程。如图所示:

 

 

RUP (Rational Unified Process )软件统一过程是一种“过程方法”,它就是迭代模型的一种。如图所示。

 

RUP中的软件生命周期在时间上被分解为4 个顺序的阶段,分别是:初始阶段( Inception)、细化阶段(Elaboration )、构建阶段(Construction )和交付阶段(Transition )。这4 个阶段的顺序执行就形成了一个周期。每个阶段结束于一个主要的里程碑(MajorMileslones )。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否己经满足。

前面提到增量、进化、螺旋的共同特点是多个版本,而每个版本可以认为是一个“小瀑布”,对于每个版本,我们可以认为还是要先完成前一步才能做下一步。而RUP认为项目中的工作可以分成好几类,而每一类工作在整个项目周期都是持续进行的,只是不同工作在项目的不同时期比重不太一样.

按照时间顺序,项目分为初始(inception)、细化(Elaboration)、构造(Construction)、交付(Transition)四个阶段,
每个阶段会有很多个小迭代。这四个阶段其实很难说有明显界限的,我觉得大家大概了解每个阶段的工作内容就可以了。
按照工作的性质,项目的工作可以分为以下几类:
商业建模(BusinessModeling)
需求(Requirements)
分析和设计(Analysis& Design)
实现(Implementation)
测试(Test)
部署(Deployment)
配置管理与变更管理(Configuration& Change Mgmt)
项目管理(ProjectManagement)
环境(Environment)
以上这些工作,在项目的不同时期工作量分布是不太一样的,如:商业建模、需求这些工作往往是头大尾小,分析与设计、实现等是中间大两头小,项目管理、环境方面的工作一直都会持续进行。
RUP的思想打破了“需求-设计-编码-测试”这样的传统瀑布模式,需求、设计、编码、测试这些工作其实一直都在进行的,只是不同时间比重不一样。这个思想是很符合“敏捷”的特点,也和实际情况非常吻合。

http://www.360doc.com/content/12/0117/17/8115939_180031753.shtml

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。