MBA智库百科:边做边改模型(Build-and-FixModel)
发表时间:2023-09-09 07:00:38
文章来源:炫佑科技
浏览次数:185
菏泽炫佑科技
MBA智库百科:边做边改模型(Build-and-FixModel)
摘自MBA智库百科()
软件开发模型(Model)
目录
[编辑]
什么是软件开发模型
软件开发模型是指软件开发的整个过程、活动和任务的结构框架。 软件开发包括需求、设计、编码、测试,有时还包括维护等阶段。
软件开发模型能够清晰、直观地表达整个软件开发过程,明确规定要完成的主要活动和任务,并作为软件项目工作的基础。
[编辑]
软件开发模型简介
*早的软件开发模型是 Royce于1970年提出的瀑布模型。该模型给出了一个固定的顺序,将生命周期活动从前一阶段一步步过渡到下一阶段,就像水流下来一样,*后开发出开发的产品。软件产品获得并投入使用。 然而,当计算扩展到统计分析、商业事务等领域时,大多数程序都是用高级语言(例如COBOL等)编写的。 瀑布模型也存在缺乏灵活性、无法通过并发活动明确不够精确的需求等缺点。
典型的开发模型包括:瀑布模型(模型)、增量模型/进化/迭代(模型)、原型模型(模型)、螺旋模型(模型)、喷泉模型(模型)、智能模型(模型)、混合模型(模型)
1. 构建和修复模型
不幸的是,许多产品都是使用“按需修改”模型开发的。 在这个模型中,既没有规范,也没有设计,软件根据客户的需要一遍又一遍地修改。
在这种模式下,开发人员拿到项目后立即根据需求编写程序,并在调试通过后生成软件的**个版本。 提供给用户后,如果程序出现错误或者用户提出新的需求,开发者会重新修改代码,直到用户满意为止。
这是一种类似的开发方式,对于编写几百行的小程序来说还好,但是对于任何规模的开发来说,这种方式都不能令人满意。 其主要问题是:
1)缺乏规划设计环节,软件的结构随着不断的修改而越来越糟糕,无法继续修改;
2)忽视需求环节给软件开发带来很大风险;
3)没有考虑测试和程序的可维护性,也没有文档,因此软件的维护非常困难。
2.瀑布模型(模型)
1970年, Royce提出了著名的“瀑布模型”,这是直到20世纪80年代初唯一广泛采用的软件开发模型。
瀑布模型将软件生命周期划分为规划、需求分析、软件设计、程序编写、软件测试和运维等六个基本活动,并规定了它们自上而下、固定的互连顺序,就像瀑布一样。 逐级。
在瀑布模型中,软件开发的各种活动严格地以线性方式进行。 当前活动接受前一个活动的工作结果软件开发,并实施所需的工作内容。 当前活动的工作结果需要验证。 如果验证通过,则将结果作为下一个活动的输入,继续下一个活动。 否则将退回修改。
瀑布模型强调文档的作用,每个阶段都需要仔细验证。 然而,该模型的线性过程过于理想,不再适合现代软件开发模型。 几乎已经被业界抛弃。 其主要问题是:
1)各个阶段的划分完全固定,阶段之间会生成大量文档,大大增加了工作量;
2)由于开发模型是线性的,用户直到整个流程结束才能看到开发结果,从而增加了开发风险;
3)早期的错误可能要到开发后期的测试阶段才被发现,这可能会产生严重的后果。
我们应该认识到,“线性”是人们*容易掌握和熟练运用的思维方法。 当人们遇到复杂的“非线性”问题时MBA智库百科:边做边改模型(Build-and-FixModel),总是想方设法将其分解或转化为一系列简单的线性问题,然后一一解决。 一个软件系统整体可能很复杂,但单个子程序总是简单的,可以用线性的方式实现,否则工作就太累了。 线性是一种简单,简单就是美。 当我们理解了线性的精神之后,我们就不应该再拘泥于线性模型的表象,而应该利用它。 例如,增量模型本质上是分段线性模型,而螺旋模型是连续曲线线性模型。 线性模型的影子也可以在其他模型中找到。
3. 快速模型
快速原型模型的**步是构建快速原型,使客户或未来的用户能够与系统进行交互。 用户或客户评估原型并进一步细化要开发的软件的要求。 通过逐步调整原型以满足客户的要求,开发人员可以确定客户的真正需求是什么; 第二步建立在**步的基础上,开发出令客户满意的软件产品。
显然,快速原型方法可以克服瀑布模型的缺点,降低因软件需求不明确而带来的开发风险,效果显着。
快速原型设计的关键是尽快构建软件原型,然后在确定客户的真正需求后丢弃原型。 因此,原型系统的内部结构并不重要。 重要的是原型必须快速构建,然后快速修改以反映客户的需求。
4.增量模型(Model)
就像建造一座大楼一样,软件是一步一步建造起来的。 在增量模型中,软件作为一系列增量组件进行设计、实现、集成和测试。 每个组件都由代码片段组成,这些代码片段提供由多个交互模块形成的特定功能。
增量模型并不是在每个阶段交付完整的可运行产品,而是交付满足客户需求的可运行产品的子集。 整个产品被分解为多个组件,开发人员逐个组件地交付产品。 这样做的好处是软件开发可以更好地适应变化,客户可以不断地看到开发出来的软件,从而降低开发风险。 但增量模型也存在以下缺点:
1)由于各个组件是逐步融入到现有的软件架构中的,所以添加组件一定不能破坏已经构建好的系统部分,这就要求软件具有开放的架构。
2)在开发过程中,需求的变化是不可避免的。 增量模型的灵活性可以使其适应这种变化的能力比瀑布模型和快速原型模型好得多,但它也很容易退化为边做边修改的模型,从而无法控制软件过程失去诚信。
当使用增量模型时,**个增量通常是满足基本需求的核心产品。 核心产品交付给用户后,经过评估形成下一步的增量开发计划,包括对核心产品的修改以及一些新功能的发布。 每次增量发布后都会重复此过程,直到生产出*终的抛光产品。
例如,使用增量模型开发文字处理软件。 可以认为,**个增量发布了基本的文件管理、编辑和文档生成功能,第二个增量发布了更完整的编辑和文档生成功能,第三个增量实现了拼写和语法检查功能,第四个增量实现了拼写和语法检查功能。功能。 逐步完善高级页面布局功能。
5. 螺旋模型(模型)
1988年,Barry Boehm正式发表了软件系统开发的“螺旋模型”,该模型结合了瀑布模型和快速原型模型,强调了其他模型所忽视的风险分析,特别适合大型复杂系统。 。
螺旋模型沿着螺旋经过多次迭代,图中的四个象限代表以下活动:
1)制定计划:确定软件目标,选择实施方案,明确项目开发的约束;
2)风险分析:对所选方案进行分析和评估,考虑如何识别和消除风险;
3)实施工程:实施软件开发和验证;
4)客户评价:对开发工作进行评价,提出整改建议,制定下一步计划。
螺旋模型是风险驱动的,强调支持软件重用的替代方案和约束,并有助于将软件质量作为特殊目标整合到产品开发中。 但螺旋模型也有一定的限制,如下:
1)螺旋模型强调风险分析,但让很多客户接受和相信这种分析并做出相关应对并不容易。 因此,这种模式往往适应于内部大型软件开发。
2)如果对项目利润影响较大,那么进行风险分析就没有意义。 因此,螺旋模型只适合大型软件项目。
3)软件开发者要善于发现可能存在的风险并准确分析风险,否则会带来更大的风险
一个阶段首先确定该阶段的目标、完成这些目标的选项及其约束条件,然后从风险的角度分析程序的开发策略,试图消除各种潜在的风险,有时甚至通过构建原型来实现。 如果某些风险无法消除,则立即终止该计划,否则启动下一步开发。 *后,评估本阶段的结果并设计下一阶段。
6. 进化模型(model)
主要针对无法提前完全定义需求的软件开发。 用户可以给出要开发的系统的核心需求,看到核心需求实现后,可以有效地提供反馈,支持系统的*终设计和实现。 软件开发商首先根据用户需求开发核心系统。 核心系统投入运行后,用户试用、完成工作,并提出完善系统、增强系统能力的要求。 软件开发人员根据用户反馈实施迭代开发过程。 **次迭代过程由需求、设计、编码、测试、集成等阶段组成,为整个系统添加一个可定义、可管理的子集。
开发模式采用批量、循环开发方式,每个循环开发一部分功能,成为该产品原型的新功能。 因此,设计不断演变为新的系统。 实际上,该模型可以看作是重复执行的多个“瀑布”。
“进化模型”要求开发人员具备将项目的产品需求分解为不同组进行批量、循环开发的能力。 这种分组并不是严格任意的,而是根据功能的重要性及其对整体设计的基础设施的影响来判断的。 经验表明,每个开发周期六到八周是合适的长度。
7.喷泉模型(模型,(面向对象生命周期模型,面向对象(,OO)模型))
与传统的结构化生命周期相比,喷泉模型更具增量性和迭代性。 生命周期的每个阶段可以重叠并重复多次,子生命周期也可以嵌入到项目的整个生命周期中。 就像水可以上下喷洒一样,可以落在中间,也可以落在底部。
8.智能模型(第四代技术(4GL))
智能模型具有一组工具(例如数据查询、报告生成、数据处理、屏幕定义、代码生成、高级图形函数、电子表格等),每个工具都使开发人员能够定义软件的某些特征在较高的层次上,并自动生成开发人员定义的软件源代码。 这种方法需要四代语言(4GL)的支持。 4GL不同于第三代语言。 它的主要特点是用户界面极其友好,即使是未经培训的非专业程序员也可以用它来编写程序; 它是一种声明式、交互式和非过程式编程语言。 4GL还具有高效的程序代码、智能的默认假设、全面的数据库和应用程序生成器。 目前市场上流行的4GL(如等)都不同程度地具有上述特点。 但4GL目前主要局限于交易信息系统中小型应用程序的开发。
9. 混合模型(model)
流程开发模型也称为混合模型(模型)或元模型,将几种不同的模型组合成一个混合模型,使项目沿着*有效的路径进行开发。 这就是流程开发模型(或混合模型)。 事实上,一些软件开发组织使用几种不同的开发方法来形成自己的混合模型。
[编辑]
软件开发模型比较
每个软件开发组织都应选择适合本组织的软件开发模式,并应随着当前正在开发的具体产品功能而变化,以减少所选模式的缺点,充分发挥其优点。 下表列出了几种常见型号的优缺点。
模型的优点和缺点
瀑布模型
文档驱动
系统可能无法满足客户的需求
快速原型模型
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等