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