作为一名不及格法式员的你和我,是不是总是听说软件开发方法/软件开发模型?而且总是搞不清,什么是什么工具?上一文中,我们分享了软件开发方法:《系统架构师之——软件开发方法》,许多时候你会把软件开发方法和开发模型搞混淆并不是你的错,而是不通的人不通的习惯导致的差异明白,其实可以联合。源于“开发”与“设计”的明白。
软件开发方法更多的是讲求如何举行软件的设计的方法,例如接纳结构化分析设计方法/面向工具设计方法/面向服务的设计方法;软件开发模型更多的是讲求整个项目生命周期的开发的全历程/运动/任务/结构架构的模型。简朴说,软件开发(设计)方法是软件开发模型内里的一个子集,软件开发模型贯串了整个项目的需求-设计-编码-测试-运维阶段。
所以,软件开发模型,更多时候称之为软件历程模型。软件开发方法好比衡宇的设计制作方式,软件开发模型好比衡宇项目的项目历程治理模型。软件开发历程模型主要有:-瀑布模型-增量模型-演化模型-喷泉模型-基于架构的开发模型-形式化方法模型目的:每一种模型都是为了更好的解决详细的需求而保障项目如期交付可靠高质量产物/结果一 软件生命周期在进入相识学习详细的软件开发模型之前,我们有须要清楚一个软件的生命周期。
因为软件开发模型就是凭据自身业务需求,从而构建出差别的软件生命周期模型。万物都有一个生命周期,从孕育-降生-发展-成熟-衰弱-消亡等等多阶段多形态,形成自身的生命周期。软件的生命周期阶段如下:-业务需求提出-可行性分析与项目计划-需求分析-提要设计-详细设计-编码实现-测试调试-系统维护每一个阶段做什么事情,顾名思义很是直观。不管你是做Web网站,还是Android/IOS移动端,或者是新兴的小法式平台,还是古老的PC应用法式,还是硬件嵌入式,Linux/Windows等什么平台什么系统什么业务,基本都是安装今生命周期举行,虽许阶段名称有所差异,可是本质如此。
万物都逃离不了周期的降生与泯灭,叹息造物主的神奇。二 瀑布模型 Waterfall Model 凭据软件生命周期,所有阶段都是顺序毗连举行,如瀑布般一泻千里。此般开发模型模式,就是瀑布模型。
生命周期每一个阶段排布如下:1-优点特点:-凭据计划,可有效控制成本预算-以文档为驱动,适合需求很明确的软件项目2-缺点缺陷:-阶段固化,发生大量文档,事情量大-线性模型,到尾阶段才气看到结果,风险大-早期错误,后期严重-客户需清楚完整表述出业务需求三 V模型 (增强型瀑布模型)V-model其实是针对瀑布模型的严重缺陷问题举行革新增强的模型,增加了每一个阶段的验证校验,形状如V字,故称之为V模型。1-优点特点:-为早期阶段提供了验证确认方法-缩短开发周期,提高效率-适用于传统信息化系统,模块化系统2-缺点缺陷:-把测试阶段放于编码阶段之后作为系统验证,需求分析阶段的问题难于发现验证-需求分析阶段的问题不能很好测试验证发现-客户需清楚完整表述出业务需求四 增量模型 Increment Model基于瀑布模型的缺点,集成瀑布模型的优点举行迭代举行,获得增量模型。也就是多个瀑布模型流水线(迭代)举行,将项目拆分成多个业务模块,基于基础版举行逐个增量开发。
模型结构如下:1-优点特点:-第一个可交付的版本时间成本少,错误发现早,风险降低-增量版本公布后,可淘汰用户需求变换-运行增量投资化,成本随着增量添加,可控制,量化操作2-缺点缺陷:-没有对用户变换举行计划控制,会导致增量不稳定-早期系统架构设计没思量周期稳定完整可扩展伸缩,导致后续增量添加难题-治理版本成本/进度/设置/庞大情况可能超出预算和组织能力五 演化模型 Evolutionary Model源化模型指的是软件生命周期凭据时间的推移而演化,凭据业务/商业/产物的需求变化而变化。本质上是一种迭代演化的历程模型,为了是可以让我们那些苦逼的法式员能够快速应对万恶的产物司理的“突然莫名其妙不行思议”的新需求已及变化,使得开发人员能逐步开发出完整的软件版本。基本切合这种思想的都是演化模型。1-经典的演化模型种类:-原型模型 Prototype Model-螺旋模型 Spiral Model2-原型模型 Prototype Model 模型结构图a-优点特点:-适用于初期需求不明确业务不庞大的项目,需要原型设计举行业务确认-初期能快速/低成本构建原型,迭代更新确认,最终演化成最终版本目的系统b-缺点缺陷:-大规模系统不适合,业务需求不明确,开发历程中会发生新需求,规模难于权衡-不能支持风险分析3-螺旋模型 Spiral Model模型结构图a-优点特点:-强调风险分析,具有高风险把控-支持用户需求动态变化,利便关键决议,提高适应能力,降低风险b-缺点缺陷:-对开发人员的风险意识/治理能力知识有要求-螺旋迭代次数增加会使成本增加,成本时间治理存在风险,延期交付六 喷泉模型 Water Fountain Model以用户需求为动力,工具驱动,适合面向工具设计方法的项目。
开发运动之间无间隙,无需要显着划分阶段,交织迭代举行,分析设计编码无界限同步举行。即在同一阶段举行项目全生命周期的事情,同时交织举行,如一个喷泉。1-优点特点:-阶段无显着划分,开发可同阶段举行,提高开发效率,节约时间-迭代式完善系统,2-缺点缺陷:-各个开发阶段重叠,需要大量开发人员,倒霉于项目治理-对文档/版本管控严格,新增修改文档资料,审核难度加大七 基于构建的开发模型 Component-based。
本文来源:开云客户端app下载-www.scpaez.com
地址:浙江省温州市青铜峡市国国大楼7197号电话:0898-88889999传真:0898-66669999
手机:11293570858邮箱:admin@scpaez.com
Copyright © 2000-2023 www.scpaez.com. 开云客户端app下载科技 版权所有备案号:ICP备26882639号-8