目录

用户需求和软件需求的区别?

开发模型

软件的生命周期

瀑布模型

螺旋模型

增量模型、迭代模型​编辑

敏捷模型

测试模型

V模型​编辑

W模型(双V模型)


用户需求和软件需求的区别?

用户需求就是用户随便一句话,可能是可以实现的,也可能无法实现,

比如我现在开发一个抽奖活动,我要开发一个中彩票的软件。

很显然,第一个可以实现,第二个实现不了。

软件需求就是,它可以实现,那我们讨论一下怎么实现,讨论出来的结果就是软件需求,它写了我们应该怎么做的具体流程

开发模型

你以为的模型如下:

实际的模型:

模型并不是一个我们知道的那种手机苹果18promax的模型,而是工作的全体流程。

因为现在软件发展的很快,并不只是在开发阶段有流程,而是一个产品的一整个生命周期

软件的生命周期

最简单的模型:需求分析->计划->设计->开发->测试->运行维护

需求分析:评估用户需求是否合理并且产出软件需求

计划:什么时候开发,什么时候结束,要做多久

设计:把一个大的任务细分为一个个小的任务,比如用什么接口啊,什么架构等等

开发:开发人员进行开发

测试:测试人员进行测试

运行维护:上线,维护正常运行。线上维护主要有三个方面,修复性维护、完善性维护、预防性维护

常见的开发模型

瀑布模型

成年老图了,兄弟们凑合着看。瀑布模型是最简单最基础的模型,市面上很多模型都是以这个模型为基础,进行改造的,它就是一个流程,一个生命周期。

他的优点:是简单,基础,容易,强调一个个阶段,串行执行

缺点:前面即使有风险,我们发现不对了,但是我们还是按照规定继续做下去,风险越来越多,很多都留到测试才发现,真正发现的时候已经无力回天。

并且没有留足够的时间给测试进行测试,就相当于拿了一个有bug的残次品上线。

最重要的是它战线、流程拉的太久了,已经过时了,收益大大降低。

所以瀑布模型适合:需求固定的小项目。

不适合:规模庞⼤、复杂度⾼、⻛险⼤的项目

螺旋模型

这个图非常的直观,它是基于瀑布模型改出来的。我们前面不是说瀑布模型它很多风险都会在后面暴露出来吗,集成之日就是爆炸之日。所以我们这个螺旋模型每次都风险评估一下,把风险解决掉。

我们先需求分析->原型1->计划->风险分析->原型2->软件需求->计划->风险分析->原型3->组装测试(准备开发测试材料)->风险分析->最终原型->开发->测试->上线维护

就是在开发之前,每一轮都进行风险评估,把风险扼杀在摇篮里。

优点:全过程的风险管理,强调开发质量,增加了风险评估

缺点:螺旋模型的质量和风险评估的水平有关,并且成本(时间、资金等等)大大增加

适⽤场景:规模庞⼤、复杂度⾼、⻛险⼤的项⽬。

增量模型、迭代模型

增量模型:把一个大的需求划分为小需求,一个一个去实现

迭代模型:把需求拆分步骤一步一步去实现

他们两者很容易搞乱,但是他们又有很本质的区别,并且他们一般都是一起用的这两个模型。

适合:⼤型项⽬,需求不明确

敏捷模型

敏捷模型:主要旨在帮助项⽬快速适应变更请求。因此,敏捷模型的主要⽬的是促进项⽬的快速完成。实际上敏捷开发吸收了增量模型和迭代模型的优点,并引入了其他优点,使其开发效率高。

四个特点:轻文档、轻流程、重目标、重产出

Scrum是敏捷模型中的⼀种,⼜称为迭代式增量软件开发模型。

在scrum模型中,主要有三个⻆⾊和五个重要会议,如下:

三个角色:产品经理(评估项目价值、制定项目计划)、项目经理(协调团队、发布会议)、研发团队(开发项目、测试项目)

五个重要会议:发布计划会议(定需求,要做什么)、迭代计划会议(拆分需求+计划)、每日站会(昨天今天做了什么+遇到困难)、演示会议(亮出产品+总结问题+优化)、回顾会议(总结全流程遇到问题+优化)

测试模型

V模型

v模型是瀑布模型的测试部分的变种

他有四种测试,左边的测试分别对应右边的需求:

详细设计对应单元测试概要设计对应集成测试需求分析对应系统测试用户需求对应验收测试

缺点:编码后才能测试,没有足够时间给测试,风险后置,和瀑布模型一样。

W模型(双V模型)

开发模型第一个V是开发V,第二个V是测试V

特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进⾏的。

优点:尽早的发现风险,防止风险后置,足够时间测试

缺点:开发和测试实际上存在先后,不能同时执行。重流程重文档,不能使用敏捷模型。需求、设计、编码等活动被视为串行的。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐