Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture 有敏捷软件设计方法吗? 我一直在阅读敏捷技术,它似乎是为了更容易地响应不断变化的需求、进化的软件设计、通过建立软件来建立基础、能够随时交付、不断重构。但是,除了遵循可靠的、使用的设计模式和其他准则外,我还没有找到任何与如何实际获取需求并将其转化为软件设计相关的东西,以帮助实现上述敏捷开发的“目标”_Architecture_Agile_Requirements - Fatal编程技术网

Architecture 有敏捷软件设计方法吗? 我一直在阅读敏捷技术,它似乎是为了更容易地响应不断变化的需求、进化的软件设计、通过建立软件来建立基础、能够随时交付、不断重构。但是,除了遵循可靠的、使用的设计模式和其他准则外,我还没有找到任何与如何实际获取需求并将其转化为软件设计相关的东西,以帮助实现上述敏捷开发的“目标”

Architecture 有敏捷软件设计方法吗? 我一直在阅读敏捷技术,它似乎是为了更容易地响应不断变化的需求、进化的软件设计、通过建立软件来建立基础、能够随时交付、不断重构。但是,除了遵循可靠的、使用的设计模式和其他准则外,我还没有找到任何与如何实际获取需求并将其转化为软件设计相关的东西,以帮助实现上述敏捷开发的“目标”,architecture,agile,requirements,Architecture,Agile,Requirements,有没有什么方法可以帮助我从需求到软件,并牢记敏捷目标?据我所知,敏捷是关于工作方法,而不是技术解决方案。 这都是关于你如何管理你的工作,而不是你如何做你的工作 敏捷方法论旨在解决管理问题,而不是技术问题。 (从理论上讲,您不仅可以将敏捷方法用于软件开发,还可以用于几乎任何类型的工作。) 也就是说,有几种模式和方法可以很好地配合敏捷开发;其中包括和,旨在帮助您快速提供工作代码。我对以体系结构为中心的设计方法(ACDM)有第一手经验。根据你的描述,我认为这是接近你可能要找的。它本身不是一种敏捷方法论

有没有什么方法可以帮助我从需求到软件,并牢记敏捷目标?

据我所知,敏捷是关于工作方法,而不是技术解决方案。
这都是关于你如何管理你的工作,而不是你如何做你的工作
敏捷方法论旨在解决管理问题,而不是技术问题。
(从理论上讲,您不仅可以将敏捷方法用于软件开发,还可以用于几乎任何类型的工作。)


也就是说,有几种模式和方法可以很好地配合敏捷开发;其中包括和,旨在帮助您快速提供工作代码。

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

ACDM由8个阶段组成。该过程的总体目标是帮助团队快速有效地从作者所说的不确定期过渡到待构建系统架构设计的确定期

  • 第1阶段:发现体系结构驱动因素-->作者鼓励团队关注4个驱动因素——技术约束、业务约束、高级功能需求和质量属性。具体的启发技术没有被讨论,有各种各样的技术
  • 第2阶段:确定项目范围-->基本上,确定概念设计并确保其与发现的驱动因素一致
  • 第3阶段:创建/优化体系结构-->在这里,您可以应用问题中提到的许多原则,如实体、模式使用等
  • 第4阶段:体系结构评审-->在正式或半正式流程中,与评审团队一起对设计进行基于场景的评审。基于体系结构驱动因素,这可以被认为是体系结构设计中TDD的一种变体
  • 第5阶段:生产开始/停止-->如果设计开始,则跳至第7步。对于整个系统,go/no-go不是all或none,这意味着一部分元素可能用于生产,而其他元素必须进一步细化
  • 第6阶段:实验-->这是整个过程的核心。如果您不理解某些内容或不确定,通常需要动手编写一些代码来理解设计中需要做什么。重复步骤3
  • 第7阶段:生产计划
  • 第8阶段:生产-->代码构建开始,可以部分或全部进行
这本书概述了你需要知道的一切。此外,作者还发表了几篇论文和演讲,这两篇论文和演讲都是在本书发布之前和之后发表的


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

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

除了一本书之外:极限编程比其他敏捷方法更具技术性和具体性。您还应查看以下内容:

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


祝你好运。

为了敏捷,你需要能够快速地改变。因此,您的软件必须是可变的。实现这一目标并不容易,事实上很难。我建议你读这本书:它真的很好


你也可以阅读我的博客:

你看过scrum/RUP/极限编程吗?这个问题似乎离题了——更适合于程序员。也就是说,某些实现方法在敏捷中比其他方法更有效;我提到了TDD和ATDD;欢迎您添加更多内容