面试被问到了解哪些开发模型?看这一篇就够了

这篇具有很好参考价值的文章主要介绍了面试被问到了解哪些开发模型?看这一篇就够了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

软件开发模型是指软件开发全部过程、活动和任务的结构框架。一般包括需求、设计、编码和测试等阶段,甚至包括维护阶段。软件开发模型明确规定了软件开发过程中要完成的主要活动和任务,用来指导整个开发过程中的工作。对于不同的系统,可依据软件的特点、项目成员的参与方式选择不同的软件开发模型。作为测试工程师,测试的工作内容与软件开发模型紧密相关,不同的开发模型中,测试的任务和作用也会不同。以下,给大家介绍几种常见的开发模型。

面试被问到了解哪些开发模型?看这一篇就够了

1、瀑布模型

瀑布模型作为最早出现的软件开发模型,提供了软件开发的基本框架,为后续出现的开发模型奠定了基础。从1970年被温斯顿·罗伊斯(Winston Royce)提出后,直到80年代早期,一直是被广泛采用。

这种模式有明确的阶段活动,分为6个阶段:计划→需求分析→软件设计→编码→测试→运行维护。阶段顺序固定,自上而下、相互衔接,形如瀑布流水逐级下落。这也是瀑布模型名称的由来。

面试被问到了解哪些开发模型?看这一篇就够了

瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品,也称为“线性顺序模型”或者“传统生命周期模型”。其过程是上一个阶段的工作完成输出结果并通过审核,才能“流动”到下一个阶段;否则返回前面,甚至更前的阶段活动。

缺点:

1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

2)由于开发模型是线性的,单一流程,不可逆,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。

3)测试只是其中一个阶段,缺乏全过程测试思想。早期的错误可能要等到开发后期的测试阶段才能发现,发现问题越晚造成代价越高

4)在软件需求分析阶段,完全确定用户的所有需求是比较困难的,不能应对需求不断变更的项目。

优点:

1)为项目提供了按阶段划分的检查点。

2)当前一阶段完成后,您只需要去关注后续阶段。

适用项目范围:

1)需求很明确的软件开发项目;

2)在开发时间内需求没有或很少变化;

3)分析设计人员应对应用领域很熟悉;

4)低风险项目(对目标、环境很熟悉);

5)用户使用环境很稳定;

2、快速原型模型

快速原型模型与瀑布模型相反,项目初期根据用户的需求快速构建一个可以运行的系统原型,之后向用户展示,由用户进行审核,提出意见,然后逐步丰富项目需求。当需求真正确定后,才正式进行项目开发。

面试被问到了解哪些开发模型?看这一篇就够了

优点:

有助于满足用户的真实需求;原型系统已经通过与用户的交互而得到验证,据此产生的规格说明文档能够正确地描述用户需求。

缺点:

要求开发人员快速建立原型。

适用项目范围:

适用于需求不明确的软件项目。

3、增量模型

又称为迭代模型或演化模型,它将一个完整的软件拆分成不同的组件,然后逐个组件地开发测试,每完成一个组件就展现给客户,让客户确认这一部件功能和性能是否达到客户需求,最终确定无误,将组件集成到软件体系结构中。整个开发工作被组织为一系列短期、简单的小项目,称为一系列迭代,每一个迭代都需要经过需求分析→软件设计→编码→测试的过程。

面试被问到了解哪些开发模型?看这一篇就够了

优点:

1)第一个可交付版本的软件所需的成本与时间较小

2)能够适应客户的需求变更,当需求变化时,只需要修改某一个组件即可。

缺点:

1)如果对用户需求的变更没有整体的规划,可能会变化为"边做边开发"的模式。

2)最终集成各个组件时,可能会出现集成失败的风险。

适用项目范围:

适用于工期紧张、功能可以划分、比较复杂的软件项目。软件工程师必须有较高的技术水平,能够设计出开放的软件体系结构。

4、螺旋模型

该模型融合了瀑布模型、快速原型模型,由巴利·玻姆(Barry Boehm)于1988年提岀,该模型最大的特点就是引入了其他模型所没有的风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,在每个周期开始之前都会进行风险分析。在每个阶段,首先构建软件原型,根据快速原型模型完成这个迭代过程,产出最终完善的产品,然后进入下一个阶段,同样下一个阶段开始之前也要进行风险评估,这样循环往复直到完成所有阶段的任务。

面试被问到了解哪些开发模型?看这一篇就够了

该模型共有四个象限,每个象限的含义如下:

1、制订计划:确定软件目标,制订实施方案,并且列出项目开发的限制条件。

2、风险分析:评价所制订的实施方案,识别风险并消除风险。

3、实施工程:开发产品并进行验证。

4、客户评估:客户对产品进行审核评估,提出修正建议,制订下一步计划。

优点:

1)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;

2)减少了过多测试或测试不足所带来的风险;

3)在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。

缺点:

螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识

适用项目范围:

适用于内部开发的大型软件(开发周期长、比较容易受到社会因素影响的软件项目),软件开发人员具有丰富的风险评估知识和经验。

5、V模型

V模型也叫RAD(Rapid Application Development,快速应用开发)模型,是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以称为软件测试的V模型。V模型大体可以划分为以下几个不同的阶段步骤:客户需求分析、软件需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。

面试被问到了解哪些开发模型?看这一篇就够了

优点:

开发阶段包含了底层测试(单元测试)和高层测试(系统测试);清楚的标识了开发和测试的各个阶段;每个阶段分工明确,便于整体项目的把控。

缺点:

自上而下的顺序导致了,测试工作要在编码之后进行,就导致错误不可以及时进行修改;实际工作中,经常变更需求,导致v模型步骤反复执行,返工量大,灵活度低。

适用 项目范围:

一般适用于一些传统信息系统应用的开发,而一些高性能高风险的系统、互联网软件,或一个系统难以被具体模块化的时候,就比较难做成V模式所需的各种构件,需要更强调迭代的开发模型或者敏捷开发模型。

6、敏捷模型

敏捷模型是20世纪90年代兴起的一种软件开发模型。在现代社会的开发中,由于业务会经常快速的变化,因此会导致在软件开发之前经常是无法得到详细完整的开发需求,没有完整的开发需求,传统的软件开发模型也就无法适用。敏捷开发模型的提出就是为了解决该问题。该模型以客户的需求为核心,采用迭代,循序渐进的方法进行开发。

软件项目在构建初期会被拆分为多个相互联系而又独立运行的子项目,然后迭代完成各个子项目。当客户有需求变更时,敏捷模型能够迅速地对某个子项目做出修改以满足客户的需求。在这个过程中,软件一直处于可使用状态。

面试被问到了解哪些开发模型?看这一篇就够了

优点:

1、用户很快可以看到一个基线架构版的产品

2、敏捷注重市场快速反应能力,与客户面对面的交流

3、随时可以接受更改

缺点:

1、注重人员的沟通,需要较好的团队协作

2、忽略文档的重要性,需要项目中存在经验较强的人

3、如果项目人员流动大太,会增加项目维护难度

适用项目范围:

适用于产品复杂,需求多变,难预测、实现周期长的产品。


 

你们公司一般用什么模型呢?文章来源地址https://www.toymoban.com/news/detail-443528.html

到了这里,关于面试被问到了解哪些开发模型?看这一篇就够了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试面试一定会被问到的10个技术问题(附答案)

    本文记得熟读并背诵,99%通过技术二 范例回答: 一般都是让你对一个“书本”“水杯”“电梯”这些老例子做测试用例,这些答案百度一下全部都是,掌握好测试用例的方法,换成什么例子都可以讲的全面。 对方还会根据这个问题衍生出:你觉得什么样算是好测试用例,好

    2024年02月13日
    浏览(52)
  • 【线程池】面试被问到线程池参数如何配置时该如何回答

           前言         没有基于业务场景,直接抛出这个问题,等同于耍流氓。         八股文告诉我们CPU密集型就 核心数+1 ,IO密集型就 核心数*2 ,那么真实业务中该怎么去配置呢。         方法论还是有的         1.需要分析线程池执行的任务的特性: CPU 密集型

    2024年02月09日
    浏览(44)
  • 面试被问到vue的diff算法原理,我不允许你回答不上来

    diff 算法是一种通过同层的树节点进行比较的高效算法 其有两个特点: 比较只会在同层级进行, 不会跨层级比较 在diff比较的过程中,循环从两边向中间比较 diff 算法在很多场景下都有应用,在 vue 中,作用于虚拟 dom 渲染成真实 dom 的新旧 VNode 节点比较 diff 整体策略为:深度

    2023年04月12日
    浏览(38)
  • 最经典的20个Spring Boot面试题,95%以上会被问到,不服来战

    非常热门的 20 个Spring Boot 技术面试中经常被问到的问题。 1. Spring Boot 有哪些特点? Spring Boot 是 Spring 的扩展,它消除了设置 Spring 应用程序所需的样板配置。 自动配置 这是 Spring Boot 最重要的特性。这极大地消除了手动配置。基础框架附带了一个名为 auto-configure 的内置库,

    2024年02月08日
    浏览(39)
  • 了解5G安全标准,看这一篇就够了

    随着移动通信系统在社会生活中的使用越来越广泛,特别是5G进一步以企业级应用作为核心应用场景,安全成为了包括5G在内的移动通信系统不可忽视的因素。本文梳理了全球主流移动通信标准化组织在安全方面的标准制定,从而可以快速了解5G协议层面对信息安全的考量。原

    2024年02月05日
    浏览(44)
  • 阿里二面:Kafka中如何保证消息的顺序性?这周被问到两次了

    在现代分布式系统中,消息顺序消费扮演着至关重要的角色。特别是在涉及事务处理、日志追踪、状态机更新等场景时,消息的处理顺序直接影响着系统的正确性和一致性。例如,金融交易系统中,账户间的转账操作必须严格按照发出请求的顺序进行处理,否则可能导致资金

    2024年03月20日
    浏览(34)
  • 理想汽车大模型算法工程师面试,被问的瑟瑟发抖。。。。

    最近我们技术群的一位小伙伴,分享了他面试理想汽车大模型算法工程师的经历与经验。 今天整理后分享给大家,如果你对这块感兴趣,可以文末加入我们的技术面试讨论群 自我介绍,讲一下大模型应用项目(我讲的nl2sql的项目) 项目背景,总体思路,解决什么问题,指标

    2024年01月25日
    浏览(41)
  • 【标准解读】Autosar 复杂驱动(CDD)开发--看这一篇就够了

    最近看到有朋友提问,“复杂驱动和Linux驱动有啥区别?” 看到几个回答挺好的,“Linux驱动是真正的驱动,复杂驱动只是在autosar范畴的说法,内容不一定是驱动,可能同时包含底层、算法、应用层等其他东西” 简而言之,没办法统一标准的东西,都放在复杂驱动了;例如功

    2024年02月03日
    浏览(65)
  • IDEA中搭建flink开发环境,看这一篇就够了,亲测有效

    在使用flink进行应用开发的时候,通常都是将开发的应用程序,提交到flink集群中,但是这样对应用程序开发调试很不方便,所谓磨刀不误砍柴工,下面我整理一个在mac上使用idea开发flink程序的配置教程,具体如下。 添加flink应用程序开发必要的依赖: 此时启动开发的应用程

    2023年04月10日
    浏览(48)
  • 接口测试,后端接口还没开发完,如何测?解决看这一篇就够了......

    在测试的时候经常会碰到后端开发工程师的接口还没有开发完成,但是测试任务已经分配过来。没有接口怎么测试呢? 测试人员可以通过 mock server 自己去造一个接口来访问。mock server 可用于模拟真实的接口。收到请求时,它会根据配置返回对应的请求。 Postman接口测试:

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包