是否有敏捷软件设计方法?

时间:2012-11-09 14:51:10

标签: architecture agile requirements

我一直在阅读有关敏捷的内容,它似乎是为了更容易地响应不断变化的需求,进化软件设计,使工作软件构建基础,能够随时交付,不断重构等。但我还没有找到任何关于如何实际采用需求并将其转换为软件设计的方法,除了遵循SOLID,使用设计模式和其他指南之外,还有助于促进敏捷开发的“目标”。

是否有任何方法可以帮助我从需求到考虑敏捷目标的软件?

4 个答案:

答案 0 :(得分:2)

据我了解,敏捷是关于工作方法,而不是技术解决方案 这完全取决于您如何管理您的工作,而不是您 的工作方式;
敏捷方法旨在解决管理问题,而不是技术问题 (理论上,您可以使用敏捷方法,不仅用于软件开发,而且用于几乎任何类型的工作。)

那说,有几种模式&已知适用于敏捷开发的方法;其中包括Test-Driven-DesignAcceptance-Test-Driven-Design,旨在帮助您快速提供工作代码。

答案 1 :(得分:0)

我拥有架构中心设计方法论(ACDM)的第一手经验。根据您的描述,我认为这与您可能正在寻找的内容非常接近。它本身并不是一种灵活的方法,但它很好地映射到敏捷方法,如Scrum,并且包含许多敏捷的价值观和原则(尽管新手团队可能会发现一些紧张或令人沮丧的紧张感)。此外,ACDM是一种真正的设计方法 - 它为理解需求和创建满足这些要求的设计提供了具体指导。在编写代码时,您需要使用开发方法来指导,例如XP。

ACDM由8个阶段组成。整个过程的目标是帮助团队快速有效地从作者所谓的不确定时期转变为有关系统架构设计的确定性时期。

  • 第1阶段:发现架构驱动因素 - >作者鼓励团队专注于4个驱动因素 - 技术限制,业务约束,高级功能需求和质量属性。没有讨论具体的启发技术,并且有各种各样的技术。
  • 第2阶段:建立项目范围 - >基本上,建立一个名义设计,并确保它与发现的司机一致。
  • 第3阶段:创建/优化架构 - >您可以在此处应用您在问题,SOLID,模式使用等中提到的许多原则。
  • 第4阶段:架构审核 - >基于场景的设计审查,由正式或半正式流程的审核人员组成。基于体系结构驱动程序,可以将其视为体系结构设计的TDD变体。
  • 第5阶段:生产Go / No-Go - >如果设计是Go,请跳到第7步。对于整个系统来说,go / no-go不是全部或全部,这意味着元素的子集可能会“生产”,而其他元素必须进一步细化
  • 第6阶段:实验 - >这确实是这个过程的核心。如果您不了解或不确定,您通常需要亲自动手并编写一些代码来了解设计中需要完成的工作。重复步骤3
  • 第7阶段:生产计划
  • 第8阶段:制作 - >代码构建开始,可以部分或全部发生

这本书概述了你需要知道的一切。作者也发表了几篇论文和演示文稿,这些文章和演示文稿都引导了本书及其后发布的过程。

Architecting Software Intensive Systems: A Practitioners Guide来自Anthony Lattanze。

答案 2 :(得分:0)

我知道你的意思。你正在寻找一条可以追随的道路,没关系。我会推荐你​​一本书,它会解决你所有的问题,好吗?它被命名为:敏捷开发的艺术。

这本书是你正在寻找的方法(靠近它)。从那里你将能够继续你的旅程。

除了一本书:极限编程比其他敏捷方法更具技术性和特异性。您还应该在http://www.extremeprogramming.org

处查看

点击那里的链接,阅读所有内容。

祝你好运。

答案 3 :(得分:0)

为了成为敏捷,你需要能够迅速改变。因此,您的软件必须是可更改的。实现这一点并不容易,实际上很难。我建议你阅读这本书:http://www.amazon.de/Software-Development-Principles-Patterns-Practices/dp/0135974445这真的很棒。

您还可以阅读我的博文:http://babdev.blogspot.co.at/2013/08/are-you-really-agile.html