项目中如何进行敏捷建模
http://tech.ddvip.com 2008年01月22日 社区交流
内容摘要:许多程序员对建模持怀疑态度,但事实上不必如此。我们特意采访了IBM的Scott Ambler,请他谈谈如何在项目中使用敏捷建模,以及为什么你可能已经使用敏捷建模,只是没有意识到而已。
另一个常见的问题是他们努力将建模与构建文档区分开来。如果我在一个白纸板上画草图,那么这是一个模型,但却不是一份非常整洁的文档。从某种意义上说,错在供应商,因为我们想出售CASE工具。我们试图让开发者确信,建模必须用这些复杂的工具来完成。
不,并不全是如此——我们只是观察到这样的事实:许多建模在白纸板上完成,许多建模在纸上完成,那样很好。如果你需要取得更加复杂的效果,就需要使用更加复杂的工具。
例如,我拥有熟练的建模技巧,因此在建模时,我使用RSA(Rational软件构建器,Rational Software Architect)或RSM(Rational软件建模器,Rational Software Modeller)这类工具比用手“涂鸦”更加有效,然后生成我的代码和数据库材料。
如果能够生成代码,却要去编写它,那样做就很愚蠢了。我认为在这方面,工具可以生成优良的代码。问题在于,使用工具需要掌握大量技巧——如果你不具备那种技巧,也没有花时间来掌握它,或是与某个掌握这种技巧的人合作,那么工作起来就相当艰难。许多开发者发现如果可以选择,他们愿意做更多建模工作,但他们并没有获得学习的机会。
我们肯定需要区分模型和文档,它们是完全不同的概念;虽然一些模型会进化成文档,但许多模型不会,那样也很好。
建模和构建文档之间的联系有多强?
传统上,它们的关系非常强,这也是我们为什么全都如此关注的原因,但实际上它们之间的联系不是那么强。90%的建模工作在白纸板上完成,我们最近的一项调查显示,建模是团队中第四有效的工作。书面建模不是那么流行,关于用户叙述(User Stories)和CRC卡等的所有故事,是我喜欢看到的。
绝大多数建模工作都是在这种一次性的模型上完成的。但你可以提出非常强有力的证据,说明在开始编写代码前进行测试实际上也是建模,你在开始编写代码前说明程序的用法。就因为我没有画UML图并不表示我没有建模。
责编:豆豆技术应用