软件工程生命周期模型_软件生命周期模型比较| 软件工程

软件工程生命周期模型

软件生命周期模型 (Software Lifecycle Models)

There are five software lifecycle models that are commonly used while developing any software. These are as follows:

开发任何软件时,通常使用五个软件生命周期模型。 这些如下:

  1. The classical waterfall model

    古典瀑布模型

  2. The iterative waterfall model

    迭代瀑布模型

  3. The prototyping model

    原型模型

  4. The evolutionary model

    进化模型

  5. The spiral model

    螺旋模型

Now, let us compare each of them based on their features, and list each of their pros and cons. Also, we will list the situations in which the particular model should be used and also the situations where these models must not be used.

现在,让我们根据它们的功能进行比较,并列出它们的优缺点。 另外,我们将列出应使用特定模型的情况以及不得使用这些模型的情况。

各种软件生命周期模型的比较 (Comparisons of various software lifecycle models)

The comparison table of these models is as follows:

这些模型的比较表如下:

Software lifecycle ModelFeaturesAdvantagesDisadvantages
Classical waterfall model
  • Has defined phases

  • Follows all phases in the mentioned order

  • The flow of phase execution cannot be broken

  • Iteration is not allowed

  • Simple to use, understand and implement

  • Managed work

  • No scope of risk management

  • New features cannot be added or modified in the software after the development has begun.

  • Error is detected at the end of every phase

Iterative lifecycle model
  • Enhanced classical waterfall model in which Iterations are allowed

  • Most commonly used

  • Risk management is possible

  • Updates and modification can be made in any phase

  • Easy to understand and implement

  • Risks cannot be handled efficiently

  • Developer's idle hours are too high

Prototyping model
  • The prototype of the model is made before the actual software

  • User Interface usually is much more attractive in this model

  • It can be used where the user requirements are not defined.

  • Takes user feedback from time to time

  • User's satisfaction is a priority here

  • Is costly

  • The communication that is required between the customer and the developer is not always possible to get

  • Takes a lot of time to develop

Evolutionary model
  • Software is developed through different modules in an incremental manner

  • This model deals with the different versions of the software

  • Each version is an enhanced version of the previous one

  • Large projects can be developed efficiently through this model

  • Every version is capable of to fully function the mentioned functionalities

  • Is suitable only for large projects

  • Takes time to develop

  • Module integration is difficult

Spiral model
  • The phases are divided in the form of loops

  • Further, the loops are divided into four quadrants

  • Each block of this model contains a set of activities that the software performs

  • Most versatile model

  • Able to manage almost every type of risk

  • Complex projects can be created using this model

  • Is complex to understand and implement

  • Not suitable for ordinary software models

  • Costly to develop

  • Time consuming

软件生命周期模型 特征 优点 缺点
古典瀑布模型
  • 已定义阶段

  • 遵循上述顺序的所有阶段

  • 阶段执行流程不可中断

  • 不允许迭代

  • 易于使用,理解和实施

  • 管理工作

  • 没有风险管理范围

  • 开发开始后,无法在软件中添加或修改新功能。

  • 在每个阶段结束时检测到错误

迭代生命周期模型
  • 增强的经典瀑布模型,允许迭代

  • 最常用的

  • 可以进行风险管理

  • 可以在任何阶段进行更新和修改

  • 易于理解和实施

  • 风险无法有效处理

  • 开发人员的闲置时间太长

原型模型
  • 模型的原型是在实际软件之前制作的

  • 在这种模式下,用户界面通常更具吸引力

  • 可以在未定义用户要求的地方使用。

  • 不时获取用户反馈

  • 用户满意是这里的重中之重

  • 昂贵

  • 客户与开发人员之间所需的交流并非总是可以得到的

  • 需要很多时间来开发

进化模型
  • 通过不同的模块以增量方式开发软件

  • 该模型处理软件的不同版本

  • 每个版本都是前一个版本的增强版本

  • 通过此模型可以有效地开发大型项目

  • 每个版本都能够完全发挥上述功能

  • 仅适用于大型项目

  • 需要时间来发展

  • 模块集成困难

螺旋模型
  • 阶段以循环形式划分

  • 此外,循环分为四个象限

  • 该模型的每个模块都包含软件执行的一组活动

  • 最通用的型号

  • 能够管理几乎所有类型的风险

  • 可以使用此模型创建复杂的项目

  • 难以理解和实施

  • 不适合普通软件模型

  • 开发成本高

  • 耗时的

翻译自: https://www.includehelp.com/basics/comparison-of-software-lifecycle-models-software-engineering.aspx

软件工程生命周期模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VB 日期时间函数

1.date(日期表达式)将日期表达式转换成日期类型的数据。日期表达式是任何可以解释成日期的表达式,包含日期文字,可以看作日期的字符串以及从函数返回的日期。比如:myDate CDate("99-5-20") ,这样的日期表达式必须加双引…

高并发系统 3 大利器之缓存

引言随着互联网的高速发展,市面上也出现了越来越多的网站和app。我们判断一个软件是否好用,用户体验就是一个重要的衡量标准。比如说我们经常用的微信,打开一个页面要十几秒,发个语音要几分钟对方才能收到。相信这样的软件大家肯定…

QTimer与事件循环理解

问题分析 最近在使用QT的时候发现了某些问题,查阅资料最后总结一下。我起初是想用QT在界面还在加载时加载一副动画,然后动画下面有加载的滚动条代表时间,由于测试所以界面加载没写很多东西很快就加载完成了。我就想让他加载慢点我看看效果。…

MYSQL 数学运算符问题

背景: 在mysql中 ’stringA stringB 这种类型的操作,在mysql内部会自动转化为两个double 数进行运算。 -------------------------------------------------------------------------------------------------------------------------------- 例子&a…

C语言 链表

// LinkTable.cpp : Defines the entry point for the console application. // 程序运行,用户输入学生数,根据用户输入学生数,动态创建链表,提示输入学生 // 姓名、成绩,最后输出所有学生数据以及平均成绩 #include &…

Python | 重命名现有文件(os.rename()方法的示例)

重命名现有文件 (Renaming an existing file) To change the name of an existing file – we use "rename()" method of "os" module – so to access the "rename()" method, we must have to import the module "os". 要更改现有文…

面试系列第1篇:常见面试题和面试套路有哪些?

作者 | 面哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)面试是人生中为数不多的改变自身命运的途径之一,当然有效的准备面试也是人生中为数不多的低投入高回报的…

c语言limits.h_ (limits.h)C ++中(整数类型的大小)的宏常量

c语言limits.hC 宏常量(整数类型的大小) (C Macro constants of (sizes of integral types)) In this tutorial, we are learning about some of the defined macro constants which are used to find the sizes of the integral types like a character, short, integer, long…

怎样让VB6程序只能运行一次

方法一:利用PrevInstance属性If App.PrevInstance ThenCall MsgBox("对不起本程序已在运行中, 不得重复加载!!", vbCritical)EndEnd If优点:简单方便、缺点:针对性不强、随意复制一份即可再次运行、方法二:创建互斥体&a…

PLSQL_性能优化系列15_Oracle Explain Plan解析计划解读

2014-12-19 Created By BaoXinjian 一、摘要 在SQL语句的执行计划中,包含很多字段项和很多模块,其不同字段代表了不同的含义且在不同的情形下某些字段、模块显示或不显示,下 面的描述给出了执行计划中各字段的含义以及各模块的描述。 二、执行…

漫话:应用程序被拖慢?罪魁祸首竟然是Log4j!

之前一段时间,为我们发现的一个SaaS应用程序会间歇性地卡顿、变慢,因为很长时间都没有定位到原因,所以解决的办法就只能是重启。这个现象和之前我们遇到的程序变得卡顿不太一样,因为我们发现这个应用程序不仅在高流量期间时会变慢…

面试系列第2篇:回文字符串判断的3种方法!

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)回文字符串判断是面试和笔试中常见的面试题之一,同时也是 LeetCode 中一道经典的面试题,那么…

工程中多个不同类型线程池_软件工程中不同类型的设计策略

工程中多个不同类型线程池As we know that the designing phase is probably the second phase in the software development lifecycle, which comes after the feasibility testing and requirement analysis phase. As the name itself defines that in this phase, the sof…

vb检查磁盘类型

Option ExplicitPrivate Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As LongPrivate Sub Command1_Click()Select Case GetDriveType("C:\")Case 0MsgBox "未知类型", vbExcl…

Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)...

一、什么是Activity&#xff1f; 简单的说&#xff1a;Activity就是布满整个窗体或者悬浮于其它窗体上的交互界面。在一个应用程序中通常由多个Activity构成&#xff0c;都会在Manifest.xml中指定一个主的Activity&#xff0c;例如以下设置 <actionandroid:name"androi…

将十进制转化为八进制的算法_十进制系统转换为八进制系统

将十进制转化为八进制的算法Converting a number from Decimal to Octal is almost similar to converting Decimal into Binary, although just one difference is that unlike Binary conversion, here in an integral part, we successively divide the number by 8 until t…

阿里为什么推荐使用LongAdder,而不是volatile?

这是我的第 87 篇原创文章作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;阿里《Java开发手册》最新嵩山版在 8.3 日发布&#xff0c;其中有一段内容引起了老王的注意&#…

VC函数中的延时操作

说到程序中的延时&#xff0c;你会想到怎么做&#xff0c;新开一个线程&#xff1f;如果我的程序只用单线程&#xff0c;却又想让函数等上10秒才返回值&#xff0c;而且还不能像使用Sleep函数那样不能处理其它消息呢&#xff1f;我在这里把论坛里能见到的几种延时方式总结一下。…

Eclipse中SVN的安装步骤(两种)和用法

一、给安装EclipseSVN&#xff0c;最常见的有两种方式&#xff1a;手动方式和使用安装向导方式。详细过程例如以下&#xff1a; 方式一&#xff1a;手动安装 1、从官网下载site-1.6.9.zip文件,网址是:subclipse.tigris.org2、从中解压出features与plugins目录&#xff0c;拷贝到…

c构造函数和析构函数_C ++构造函数和析构函数| 查找输出程序| 套装3

c构造函数和析构函数Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {private:int X;public:Sample(){X 0;}void set(int x){X x;}void print(){cout << X << endl;}};int main(){Sample S[2] { Sample(), Sample()…