敏捷开发的面向对象建模和UML



UML已经进入了许多面向对象编程的项目,并在大学中广泛教授。然而,如今许多软件项目或多或少都使用了敏捷的方法,避免了预先深入分析,并导致了许多更改("欢迎更改"(。相比之下,创建正确可读的UML(类(图仍然很耗时;因此,记录模型的价值在实践中经常被认为是浪费时间,因为它经常发生变化。

即使是自动生成的(源代码生成的(图也不能解决问题,因为它们不能正确地解决类关系,通常具有不足的图布局和分散注意力的扩展。

UML是否可以在敏捷环境中使用,从而避免频繁手动更新的开销?或者UML的其他较轻的替代方案在这种情况下更合适吗?

UML可以在敏捷环境中以一种轻松的方式使用。关键是要清楚它的目的以及你对项目建模的期望。

类图和序列图被证明是帮助团队讨论关注点的好候选者。它可以清楚地表达代码中不明显的想法(或者分散在许多源文件中(
Scott Ambler写了很多关于基于UML的敏捷建模的文章。当然,您不会使用它来生成一个包含所有类和所有属性的穷举模型。但你会用一些相关的类来绘制核心,并且只有一些在讨论中很重要的属性(Ambler说">建模几乎不够"(。

然而,对于体系结构建模(部署图等(,UML需要一定程度的精度,这在早期阶段并不总是可能的。C4车型已成为一种方便灵活的替代车型。但是C4依赖于UML来进行面向对象的设计讨论。没有任何替代方案可以轻松地显示类和它们之间的交互,这将是众所周知的。

结论:在敏捷环境中,不要错误地认为UML需要一个详尽的预先设计。也不要把它用于可视化编程,盲目地复制代码的细节。但使用它作为沟通工具来突出关键思想,让每个人都能掌握设计并做出富有成效的贡献。

最新更新