【.com速译】软件开发模型最早引入软件开发社区是在1950年代和1960年代。那时,将所有内容放在一起是一种很好的做法,编程是必须计划的流程之一。今天,这个过程在日常项目管理中非常必要,因为没有特定的事件流,项目开发可能会非常混乱。因此,从项目规划到发布和维护的任何活动都有一个每个人都需要使用的概念框架。因此,许多组织表示:与未定义的软件开发过程作斗争。缺乏项目管理技术方面的某些知识。找到优化和构建开发阶段的方法。希望加快发货进程。降低项目风险。减少项目时间和过多的成本。本文将定义软件开发生命周期,概述七种最常用的软件开发模型,并找出它们在项目开发中的区别和好处。此外,还将比较软件工程中的软件模型,以帮助组织找到最合适的模型。为什么需要软件项目开发模型?每个软件外包公司都有自己的软件开发生命周期(SDLC),通常包括以下应用程序开发阶段:需求分析设计开发和测试执行文档维护这些阶段标志着软件项目开发的阶段通常的过程,从收集客户需求推出具有24/7支持的成熟产品。许多组织通常更喜欢个性化的工作流程和方法,因此存在包含这些开发阶段的概念模型。这些模型具有预先编写和建立的关键原则、基本流程和时间表,因此得名方法论。以下是七种各具特色的软件开发模型。它们是:瀑布模型迭代增量模型螺旋模型V型模型原型模型敏捷模型DevOps模型软件开发过程模型的价值在于过程优化和作为团队绩效提升的最终因素的工具。每个模型都非常具体,组织在实施它们时应关注其技术、愿景、使命和节奏。这就是为什么这么多人前来寻找适合他们组织的软件开发模型的原因。根据研究公司Statista的一项调查,全球最常用的软件工程过程模型是DevOps模型,占36%;其次是敏捷模式,近32%;第三是看板(Kanban)模式,全球13%的IT社区都在使用它。那么,软件开发模型有哪些呢?当今组织使用的软件工程模型有哪些类型?什么是软件开发模型,它们是如何工作的?1.瀑布模型瀑布模型是软件开发领域最早引入的软件项目开发模型。它也被称为线性模型,因为该模型意味着在进入下一阶段之前完成上述所有阶段。因此,该模型线性逐步运行,不可能重叠任何阶段。其原理如下图所示:的确,该模型类似于现实中的瀑布,它有始有终,就像一股水流从悬崖上落下,没有任何中断或变化。(1)哪些因素有助于选择瀑布法?短期项目。清晰、固定且记录完备的要求。可理解的静态技术。稳定的产品定义。各种产品支持资源。产品负责人参与度低。严格设定的时间表。无法更改的固定预算。在所有其他情况下,可以选择其他模型进行项目开发。瀑布模型的主要优点是该模型在执行的任务及其时间表方面具有严格的顺序。由于顺序是固定的,许多任务可以很容易地在软件部门之间分配,并监控任务完成情况。客户可能会发现瀑布模型是一种可靠的方法,因为他们会事先了解从开始到结束的整个过程。当然,瀑布模型也有一些缺点。例如,瀑布模型很难修改任务,因为应用程序开发越深入到另一个阶段,就越难返回并更改其概念基础或文档。(二)瀑布模型的优缺点2、迭代增量模型在迭代增量模型中,开发是从几个小需求的实现开始,然后通过多次迭代(增量)来增强产品。增强过程是递增(迭代)完成的,直到应用程序在功能上完成并准备好部署。只开发软件的一小部分是一种明智的方法,因为很容易看到已经完成的工作,快速确定进一步的需求,并在继续下一步之前继续实施或对应用程序进行一些更改。无论哪种方式,组织都会从这些解决方案中受益,因为每次新迭代都会带来新的、更好的软件版本。与瀑布模型不同,迭代模型允许一次执行多个迭代并同时接收产品输出。此模型提供的成功关键是验证软件版本并根据需求对其进行测试。这样可以更好地了解团队在项目中的位置、产品的功能验证以及对产品成功的信心。(1)迭代模型在软件开发中应用在哪里?系统要求已明确定义且易于理解。随着时间的推移可能会出现额外的要求。当一个团队学习新技术并同时从事一个项目时。仅当合同规定的特定迭代需要时才使用特定资源。由于高风险性质,未来的业务目标可能会发生变化。迭代模型的最大优点是它允许在软件开发之初就发现功能和设计缺陷。在迭代中工作并验证每个开发周期都会产生无风险的产品,能够添加或删除功能,并改变最终产品的成本和进度。除了这些优点之外,还有一些应该讨论的缺点。(二)迭代模型的优缺点3、螺旋模型螺旋模型是迭代模型和瀑布模型的结合。从迭代的方式来看,它采用了循环开发的方式;而从瀑布方法中,它借鉴了系统方法和控制过程的能力。螺旋模型侧重于风险分析。此外,它以迭代方式交付项目,围绕其中心盘旋。螺旋模型设计为4个阶段。正在开发的产品在其迭代中经历这些阶段,在这种方法中也称为螺旋。这些阶段包括:识别设计构建评估(风险分析)识别是收集业务需求的最佳阶段。这是在一个基本的螺旋中完成的。螺旋模型确定系统、子系统和单元需求。除了收集需求之外,此阶段还涉及客户与系统分析师之间的沟通,以了解部署所需的内容。设计也从概念设计的基本螺旋开始,包括建筑设计、模块化逻辑设计、物理产品设计和最终设计的后续螺旋。构建阶段是在每个螺旋中开发实际软件产品的阶段。在基本螺旋中,当一个概念需要根据其可行性进行评估时,组织应该开发一个POC(概念验证)并尝试获得有价值的客户反馈。一旦了解了所有需求和设计细节,就可以生成软件的编号工作模型(构建)版本。客户审查所有构建并提供反馈。评估(风险分析)是识别、估计和监测技术可行性和管理风险的过程。例如,计划逾期和成本超支。在客户评估构建后,下一个迭代出现。这将遵循线性方法以确保客户提供的反馈得到实施。软件开发生命周期(SDLC)实际上由这些螺旋迭代组成,直到最终确定。(1)什么时候使用螺旋模型?当你需要随着产品的成熟度学习时:有预算限制,你需要预见风险。有一个中等或高风险的项目要执行。有一个长期的项目可能会改变。对于客户,要求不明确。由于其复杂性,要??求需要更加明确。主要产品版本必须分几个阶段发布,以获得有价值的客户反馈。期望在软件开发生命周期(SDLC)期间对您的产品进行重大更改。基于螺旋模型的适用性,我们来了解一下它的优缺点。该模型的主要优点是可以将元素添加到产品中,以防它们可用或已知。此外,螺旋模型在产品开发的早期阶段就让用户参与进来,这样可以收到建设性的反馈。(2)螺旋模型的优缺点4.V型模型V型模型允许项目以V型顺序执行。该模型的另一个名称是验证和验证模型,因为它基于瀑布模型。然而,在软件开发生命周期(SDLC)中,每个开发阶段还包括测试。因此,执行一个阶段,完成后,在进入下一阶段之前对其进行测试,下一阶段的结构与前一阶段相同。在V模型中,开发阶段对应测试阶段,它们并行进行。这意味着可以在图像的一侧看到验证阶段,在另一侧看到确认阶段。这些方面正在与编码阶段相结合。根据上图,有4个验证阶段,分别是:需求分析系统设计架构设计模块设计验证阶段还包括4个阶段:单元测试集成测试系统测试验收测试如上图所示,编码阶段结合了其他两个阶段一起,形成一个V字形。V型模型与瀑布模型具有相同的适用性。必须从软件开发生命周期(SDLC)的一开始就明确定义需求,因为返回并进行更改会增加产品开发成本。这种模式最适合医疗保健行业。(1)何时使用V模型?有明确定义、记录和稳定的要求。使用的技术也很稳定,项目组也很了解。所有的要求都非常明确。该项目是短期的,并不复杂。V模型的最大优点是在软件开发生命周期(SDLC)中易于理解、应用和管理。相反,当变化迫在眉睫时,这种模型缺乏灵活性,而且客户实施这些变化的成本非常高,因为它们会产生额外的开发成本。(2)V模型的优点和缺点5.原型模型原型模型是软件应用程序原型的创建,它显示了一个不完整产品的最小功能的可视化表示。这有助于在开发阶段的早期了解客户需求并获得有价值的反馈。该模型包括:基本需求的确定初始原型开发原型审查原型修改和增强当今有不同类型的软件原型,它们是:快速原型制作——基于对需求的理解构建系统,对用户需求有更清晰的理解。增量原型制作——根据理解的需求开发功能有限的功能原型,并在此过程中添加额外的需求。增量原型制作——构建大量功能原型以形成一个系统并将它们组合在一起。增量原型-这是一个Web开发领域,分为三个阶段:HTML中的基本原型、原型服务层、最终原型中的实现和集成。(1)原型模型适用于何时何地?原型适用于具有高水平用户交互的在线软件系统开发。例如:要求用户填写表格的系统。需要大量数据处理的软件。原型模型也有其优点和缺点。当然,它们取决于组织的需要,在选择此模型之前应加以考虑。(2)原型模型的优缺点6.敏捷模型敏捷模型基于迭代和增量模型,但适应性更强,能够以更快的速度交付可工作的软件。敏捷模型可以提高客户满意度,因为它可以满足客户的需求并且非常灵活。敏捷项目倾向于将生产过程分解为增量构建,或所谓的迭代。每次迭代都有1到3周的时间线,包括同时在不同项目领域工作的不同团队。这减少了生产时间并降低了生产成本。每次迭代都包含相同的过程:规划需求分析设计编码单元测试验收测试在每次迭代结束时,您将产品交付给客户以了解应用程序是否根据客户的要求构建,并收到反馈关于正在进行的工作。敏捷模型分为几种方法,每种方法都有自己的原则。例如,软件统一过程(RUP)Scrum看板(Kanban)ScrumBan极限编程(XP)ScrumXP迭代开发精益软件开发(1)什么时候使用敏捷模型?在中小型软件项目中。根据需要制造尽可能多的产品。当开发过程需要分解成更小的部分时。当需要软件交付加速时。当团队需要灵活地更改优先级时。当您需要提高软件质量、生产力和交付可预测性时。有利于降低项目风险,实现成本降低的可能性。有效管理项目的分布式团队。与其他模型一样,敏捷模型有利也有弊。例如下图。(2)敏捷模型的优缺点7.DevOps模型DevOps模型具有促进自动化和团队合作的独特原则。因此,该模型的主要重点是增强由顺序反馈驱动的团队之间的协作。DevOps模型类似于Agile模型,但由于DevOps团队成员和管理层之间协作的重点不同,而Agile模型侧重于客户参与。(1)DevOps模型执行哪些任务?持续集成和交付微服务基础架构即代码监控和日志记录沟通和协作(2)何时使用DevOps模型?在复杂的项目中。需要质量保证和测试的项目。包括来自多个部门的大型团队的项目。DevOps模型也有一些优点和缺点。这取决于组织计划在哪些项目中采用该模型,以及它是否已准备好应对艰难的采用曲线。(3)DevOps模型的优缺点最常用的软件开发模型比较由于全球最常用的软件开发模型是DevOps模型、敏捷模型(Scrum和Kanban)和Waterfall模型,下面是比较研究这些软件开发模型。此表显示了交付的各种型号的所有显着特征。2020年,62%的团队正在采用DevOps模型进行开发以满足组织需求。但是,采用敏捷模式配合DevOps模式也可以降低生产成本,采用敏捷模式的组织数量与DevOps模式不相上下。至于瀑布模型,它的成功率为26%。所以如果你比较瀑布模型和敏捷模型哪个更好,显然敏捷模型在比较中获胜。如何为组织选择最佳的软件开发生命周期(SDLC)模型?组织可以通过几个重要的步骤来选择正确的软件开发模型:(1)第1步:审查所有现有的软件开发模型,看看哪个更接近组织的信念和原则以及业务需求。(2)第2步:是否首先听取了利益相关者的任何需求?组织需要听取每个利益相关者的意见,因为它会对最终决策产生影响。(3)第3步:考虑验收标准并尝试回答以下问题:模型是否适合团队规模及其技能?该模型是否适合项目中使用的技术?该模型是否适合客户和利益相关者?该模型是否适合项目的规模及其复杂性?如果选择这种模式,是否存在项目风险?产品开发过程中会有什么变化吗?这些要求是固定的还是灵活的,并且可能在生产过程中出现?(4)第四步:确定哪个Thismodel符合意图。(5)第五步:根据项目优化模型。现在了解了所有软件开发模型的细微差别,相信组织可以找到提高性能并推进产品开发的模型。结语软件工程模型是一个很好的实践,因为它确保了产品开发的最佳质量。软件工程模型比较是最有用的工具之一,它允许根据组织的需要选择模型。项目活动取决于精心策划的方案,团队根据该计划工作得越好,软件处理得越好。对于基于其内部软件开发生命周期(SDLC)选择软件模型的组织,它需要了解每个模型代表什么,然后定义最合适的模型。如今,大多数开发人员管理和使用DevOps模型、敏捷模型(Scrum和看板)和瀑布模型。所有这些模型根据其过程而有所不同,但它们的共同点是产品开发的战略方法,从而在产出方面取得成功。原标题:7种软件开发模型:如何选择合适的?,作者:NazarKvartalnyi
