欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

五款常见的软件开发流程:瀑布、V型、原型、螺旋和迭代法

最编程 2024-08-06 09:27:53
...
1. 瀑布模型 瀑布模型是一个特别经典的,老套的周期模型。工序简化,将功能实现和设计分开。便于分工协作。 一般情况下将软件开发周期分为计划、需求分析、概要设计、详细设计、编码以及单元测试、测试、运行维护等几个阶段。 瀑布模型的周期是环环相扣的。每个周期中交互点都是一个里程碑,上一个周期的结束需要输出本次活动的工作结果,本次的活动的工作结果将会作为下一个周期的输入。这样,当某一个阶段出现了不可控的问题的时候,就会导致返工,返回到上一个阶段,甚至会延迟下一个阶段。自上而下、相互衔接的固定次序 优点: (1)为项目提供了按阶段划分的检查点。 (2)当前一阶段完成后,您只需要去关注后续阶段。 (3)可在迭代模型中应用瀑布模型。 增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。 缺点: (1)在项目各个阶段之间极少有反馈。 (2)只有在项目生命周期的后期才能看到结果。 (3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。 (4)瀑布模型的突出缺点是不适应用户需求的变化。 2. V模型 V模型从整体上看起来,就是一个V字型的结构,由左右两边组成。 左边的下划线分别代表了需求分析、概要设计、详细设计、编码。 右边的上划线代表了单元测试、集成测试、系统测试与验收测试。 看起来V模型就是一个对称的结构,它的重要意义在于,非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。 3. 原型化模型 过程: 第一步就是创建一个快速原型,能够满足项目干系人与未来的用户可以与原型进行交互 再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求 进行了充分的了解之后,在原型的基础上开发出用户满意的产品 在实际的项目过程中,借助于组织过程资产以及快速模型软件,一般在需求分析的时候,就可以建立一些简单的原型,例如在第一家YH公司中,因为是“行业软件提供商”,所以拥有各个地域的行业解决软件方案,惯用的伎俩就是将其他地市的项目拿到本次项目实施地,作为原型化模型。原型化模型是极具意义的项目实践。 4. 螺旋模型 尤其重视风险分析阶段,特别适用于庞大并且复杂,非常高风险的项目。 通常螺旋模型由四个阶段组成:制定计划、风险分析、实施工程和客户评估。螺旋模型中,发布的第一个模型甚至可能是没有任何产出的,可能仅仅是纸上谈兵的一个目标,但是随着一次次的交付,每一个版本都会朝着固定的目标迈进,最终得到一个更加完善的版本。百度百科详解 5. 迭代模型 迭代模型,摒弃了传统的需求分析,设计,编码,测试的流程,而是将整个生命周期变成若干个冲刺(Sprint)阶段,而每一个阶段都是由以上若干或者全部传统的流程组成,在每一个阶段中,都会包含下面四个阶段:初始阶段,细化阶段,构建阶段,交付阶段。 在初始阶段中,确认本次冲刺的范围,边界,系统选择的架构,计划,以及所需要的资源等信息。 在细化阶段中,对问题进行建域,创建开发案例,创建模板以及准备工具等。 在构建阶段的主要任务就是完成构建的开发并且进行测试,将完成的构建集成为产品,并且测试所有的功能(CI)。 在交付阶段,主要是完成本次冲刺,将软件产品交付给相关的干系人。 使用条件: 在项目开发早期需求可能有所变化。 分析设计人员对应用领域很熟悉。 高风险项目。 用户可不同程度地参与整个项目的开发过程。 使用面向对象的语言或统一建模语言(Unified Modeling Language,UML)。 使用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,如Rose(Rose是非常受欢迎的物件软体开发工具。)。 具有高素质的项目管理者和软件研发团队。 优点: 与传统的瀑布模型相比较 (1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。 (2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。 (3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。 (4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。 参考资料