当前位置: 首页 > news >正文

什么是软件的生命周期,以及常见的开发测试模型

目录

一、软件的生命周期 

1、什么是生命周期?

2、每个阶段都要做些什么? 

二、常见的开发模型

1、瀑布模型

2、螺旋模型

3、增量模型、迭代模型 

4、敏捷模型

scrum模型

三个角色

五个会议


一、软件的生命周期 

1、什么是生命周期?

生命周期是指从生命的开始到结束的这一段时间,以人为例,就是生命从孕育开始,中间经历童年、少年、青年、中年、老年,最终到死亡;而软件、产品也是如此,软件的生命周期是从需求的产生,再经过需求的计划、设计,程序开发,程序测试等阶段,最终到软件不再维护时,软件的生命周期也就结束了。

那什么是需求呢?

首先需求分为用户需求软件需求

用户需求:可以理解为是甲方提出的要求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。其需求一般比较简略,往往是一句简单的话。

比如:实现⼀个软件的登录功能,或者你朋友说,帮我写一个作业。那么你朋友就是甲方(当然,作为你的甲方肯定要他给你工资哈)。

软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。软件需求也是测试人员进行测试工作的基本依据。

那么软件需求与用户需求有什么区别?

用户需求:

帮我写一个作业。

软件需求:

需要你和他反复的沟通了解更加详细具体的需求,来制定解决方案

比如:

“什么作业”  “计算机作业”

“什么时候交”  “下周”

.........

最终理解清楚用户需求之后,知道朋友想要你帮他做python作业,那么再去研究其要求,怎么做等等的具体步骤,这就是软件需求

具体的软件测试会做成一份文档,提供给开发人员及测试人员。

了解了需求,我们现在来看一个案例

假如我想要建造⼀套房子,房子的⽣命周期(流程)是什么样的?

因此,我们就得到了软件(开发)的生命周期:

需求分析⸺⸺计划⸺⸺设计⸺⸺编码⸺⸺测试⸺⸺运行维护

2、每个阶段都要做些什么? 

需求分析:分析用户需求是否合理,分别从市场需求、技术等方面进行分析,最后会输出需求等文档。

计划:对成立的需求执行需求执行计划,比如,多长时间内完成该需求,每个时间段具体完成哪些功能,最后会输出计划等文档。

设计:将需求细化成一个个任务,团队成员各司其职领取任务并进行技术计划,最后输出技术等文档。

编码:开发人员参考需求文档、设计文档、交互图等文件进行代码的编写,最后输出代码等文档。

测试:测试人员需要介入到软件的测试中,参考测试用例对软件进行测试,最后输出测试用例、测试设计与计划、测试报告等文档。

运行维护:测试项目结束后,项目需要进行上线,并对产品进行线上的维护,线上维护主要分为三个方面:修护性维护、完善性维护和预防性维护。

二、常见的开发模型

1、瀑布模型

瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每⼀个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

而瀑布模型其缺陷也很明显,由于周期太长,产品很迟才能被看到和使用,可能会导致需求/功能过时。并且测试的后置,会使得前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去及早修复的机会。而且必须留有足够的时间给测试人员,否则导致测试不充分,将缺陷直接暴露给用户。

因此,瀑布模型适用于需求固定的小项目

2、螺旋模型

螺旋模型在瀑布模型的基础上,每个阶段都引入了风险分析+原型

风险分析很好理解,就是对当前阶段可能存在的问题以及风险进行评估,并进行解决,重新输出文档。那么什么是原型?

原型就是一个需求在完成开发之后的一个模型,我们需要对这个模型来进行考核评估,如果该模型是合理的,那就进行下一阶段,如果不合理,那就回炉重造。

螺旋模型强调严格的全过程分险管控,强调各开发阶段的质量,解决了瀑布模型对许多些规模庞大、复杂度高、分险大的项目的无力问题。但是项目中可能存在的分险性与分险管理人员的技能水平有直接关系,同时也加大了需求人员、资金、时间的增加和投入,可能导致项目的成本过高。

 因此,螺旋模型适用于规模庞大,复杂度高、分险大的项目

3、增量模型、迭代模型 

 

增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。

迭代模型与增量模型是有区别的,就如下图所示:

增量是逐块建造的概念。先完成一部分功能,发布后,再根据需求增加新的功能再发布,就比如抖音,最开始只有刷视频的功能,再后面就上线了商城购物功能。

迭代是反复求精的概念。把所有功能都进行简化,保留最基础的功能进行上线发布,然后再对已有的功能进行优化完善,是一个不断优化的过程。

这两个模型通常被混合使用,适用于大型的、需求不明确的项目

4、敏捷模型

敏捷模型主要旨在帮助项目快速适应变更请求。因此,敏捷模型的主要目的是促进项目的快速完成。

敏捷模型中有⼀个重要的《敏捷宣言》,宣言内容:

个体与交互重于过程和工具

可用的软件重于完备的文档

客户协作重于合同谈判

响应变化重于遵循计划

简单来说,这几句话的意思就是要注重实在的交流,随机应变,不用循规蹈矩。

敏捷开发有很多种方式,其中scrum是比较流行的一种。

scrum模型

scrum模型是敏捷模型中的一种,又称为迭代式软件增量开发模型。

在scrum模型中主要有三个角色五个重要会议

三个角色

scrum由product owner(产品经理)、scrum master(项⽬经理)和team(研发团队)组成

product owner负责整理user story(用户故事,也就是需求),定义其商业价值,对其进行排序,制定发布计划,对产品负责。

scrummaster负责召开各种会议,协调项目,为研发团队服务。

研发团队则由不同技能的成员组成,通过紧密协同,完成每⼀次迭代的目标,交付产品。 

五个会议

发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这⼀期迭代要完成的story列表,sprint backlog。

迭代计划会议:项⽬团队对每⼀个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。

每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。

演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间⼤家的反馈记录下来,由product owner整理,形成新的story。

回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下⼀次迭代继续改进,以达到持续改进的效果。

相关文章:

  • 电脑软件管家 免安装便携 四十多种功能系统优化”“磁盘清理”“隐私保护
  • 【行动指南】大一如何高效备考java
  • 密钥管理系统在存储加密场景中的深度实践:以TDE透明加密守护文件服务器安全
  • 十六进制数据转换为对应的字符串
  • 2025.5.23 【ZR NOI模拟赛 T3】高速公路 题解(容斥,高维前缀和,性质)
  • 精准耐用的工业流量管家 格恩朗金属管浮子流量计
  • MySQL OCP 与 Oracle OCP 认证,怎么选?
  • 生物化学:药品药物 营养和补充剂信息 第三方认证信息 常见误区 汇总
  • 零滑点期货跟单软件在小恒指交易中的作用。
  • 【PhysUnits】15 类型整数基本结构体补充P1(basic.rs)
  • 【第2章 绘制】2.13 坐标变换
  • HA-820A程控高压放大器详解
  • vue2指令方式防抖功能
  • CEH Practical 实战考试真题与答案
  • 【第2章 绘制】2.7 路径、描边与填充
  • 企业信息管理系统的设计与实现(代码+数据库+LW)
  • 开源架构在移动端开发中的卓越应用与深度解析
  • 基于c++11重构的muduo核心库项目梳理
  • node_modules\node-sass: Command failed.报错了
  • Java设计模式之命令模式详解
  • 网站官方认证怎么做/网站推广的方式有哪些?
  • 免费只做网站/百度投诉中心24人工客服电话
  • h5免费制作平台企业秀/电脑优化软件推荐
  • 怎么制作网站图片不显示/北京seo顾问服务公司
  • 服务器放n个网站/如何在网上推广自己
  • 意识形态 加强网站建设/教你免费申请个人网站