我今年正在学习软件工程,我对标题中的问题有点困惑。
我的教授和参考文献(“软件工程从业者方法”)都将这三个标题区分为不同的模型。然而,我看不到明显的区别,因为他们的方法在我看来是相同的,只是使用不同的语句来定义它们。我觉得它们实际上都代表了相同的过程模型。
有人能更好地解释不同的模型吗?
发布于 2010-10-10 05:57:21
Craig Larman在这个主题上写了大量的文章,我推荐他著名的论文Iterative and Incremental Development: A Brief History和他的书Agile and Iterative Development: A Manager's Guide。
下面是我总结事情的方式:
增量开发
增量开发是一种将系统功能分成增量(小部分)的实践。在每个增量中,通过经历软件开发过程的所有活动,从需求到部署,交付了垂直的功能切片。
在软件开发中,增量开发(adding)经常与迭代开发(redo)一起使用。这被称为迭代和增量开发(IID)。
进化方法
术语进化和进化是由Tom Gilb在他于1976年出版的书中引入的,在书中他写了关于EVO的文章,他的IID实践(可能是最古老的)。渐进式开发的重点是尽早向利益相关者交付高价值,以及从利益相关者那里获得和利用反馈。
在Software Development: Iterative & Evolutionary中,Craig Larman是这样说的:
渐进式迭代开发意味着需求、计划、评估和解决方案 evolve ,或者在iterations的过程中被改进,而不是在开发迭代开始之前在主要的预先规范工作中完全定义和“冻结”。进化方法与新产品开发中不可预测的发现和变化的模式是一致的。
然后讨论了进一步的进化需求,进化和适应性规划,进化交付。检查链接。
螺旋模型
螺旋模型是Barry Boehm在20世纪80年代中期正式提出的另一种IID方法,它是瀑布的扩展,以更好地支持迭代开发,并特别强调风险管理(通过迭代风险分析)。
引用Iterative and Incremental Development: A Brief History
在1985年IID出版物中的一个里程碑是Barry Boehm的“软件开发和增强的螺旋模型”(尽管更频繁的引用日期是1986)。螺旋模型可以说不是团队根据风险对开发周期进行优先级排序的first案例:例如,Gilb和IBM以前就应用或倡导过这种想法的变体。然而,螺旋模型确实形式化并突出了风险驱动迭代的概念,以及在每次迭代中使用风险评估的离散步骤的需要。
现在怎么办?
敏捷方法是IID和进化方法的子集,是当今的首选方法。
参考文献
T.Gilb,软件度量,利特尔,布朗和公司,1976 (绝版)。
发布于 2010-10-10 02:32:29
这些概念通常没有得到很好的解释。
Incremental是工作产品(文档、模型、源代码等)的一个属性,它意味着它们是一点一点地创建的,而不是一次完成。例如,您可以在需求分析期间创建类模型的第一个版本,然后在UI建模之后对其进行扩充,然后在详细设计期间对其进行更多扩展。
渐进式是可交付内容的属性,即交付给用户的工作产品,在这方面,它是一种特殊的“增量”。这意味着,无论交付什么,都会尽可能早地以初始形式交付,而不是完全功能,然后每隔一段时间重新交付一次,每次都具有越来越多的功能。这通常意味着一个迭代的生命周期。
[ iterative生命周期,但方式,是指您执行的任务(而不是“增量”,后者指的是产品;这是SEMAT采用的视图),它意味着您一遍又一遍地执行相同类型的任务。例如,在一个迭代的生命周期中,你会发现自己一遍又一遍地做设计,然后编码,然后单元测试,然后发布,然后再做同样的事情。请注意,迭代和增量并不相互暗示;两者的任何组合都是可能的。]
生命周期的螺旋模型是由Barry Boehm提出的一个模型,它将瀑布的各个方面与创新的进步相结合,例如迭代方法和内置的质量控制。
“工作产品”、“任务”、“生命周期”等概念请参考ISO/IEC 24744。
希望这能有所帮助。
发布于 2017-03-01 02:53:06
这是ISO 24748-1:2016 (系统和软件工程生命周期管理)中的ipsis垃圾定义:
有许多不同的开发策略可以应用于系统和软件项目。这些策略中的三个总结如下:
a)一次通过。“一次通过”策略,也被称为“瀑布”,包括一次执行开发过程。简单地说:确定用户需求,定义需求,设计系统,实现系统,测试,修复和交付。
b)增量。“增量”策略确定用户需求并定义系统需求,然后在一系列构建中执行其余的开发。第一个构建合并了部分计划的功能,下一个构建添加了更多功能,依此类推,直到系统完成。
c)进化。“进化”策略也在构建中开发了一个系统,但与增量策略的不同之处在于,它承认用户的需求没有得到充分的理解,所有的需求都不能预先定义。在这个策略中,用户需求和系统需求是预先部分定义的,然后在每个成功的构建中进行细化。
希望这能有所帮助。塔蒂
https://stackoverflow.com/questions/3897335
复制相似问题