频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

项目中如何进行敏捷建模(1)

作者: 佚名 出处:至顶网 2007-07-04 09:41    砖    好    评论   进入论坛
阅读提示:许多程序员对建模持怀疑态度,但事实上不必如此。我们特意采访了IBM的Scott Ambler,请他谈谈如何在项目中使用敏捷建模,以及为什么你可能已经使用敏捷建模,只是没有意识到而已。

敏捷建模对于Web 2.0领域内的开发者有什么意义?

Scott Ambler:敏捷建模的目的是为建模和文档构建描述一组原则和实践,最好是用于敏捷项目中。但如果它们不是那么敏捷也没有问题。

我们已经看到,它的主要用途在于XP(极限编程)方面,目的是使现代文档构建过程更加明晰;或是与RUP(Rational统一过程)结合,降低一些官僚作风,并使它尽可能精简。

它只是通过你正在做的一些事情,不必死啃不必要的文件,为你描述有效思考的方法。从敏捷的角度看,它提出一些直接的策略,帮助你避开希望你做过多文案工作的官僚主义者,并就如何管理工作提供一些建议。

敏捷社区的一些更加极端的交流激发一些人去做错误的事情,我不是在嘲笑敏捷爱好者,只是他们的做事方式可能是错误的。

你认为程序员对于建模持什么观点?

我认为,许多程序员出于一些原因,对建模嗤之以鼻。

首先,他们没有受到过良好的培训。我想学校根本就没有建模课程,就我所知,从来就没有过,但他们现在在这方面的表面确实不如人意。

许多时候,开发者接受第一份工作,第一次做建模时,他们几乎总是会面临以下两种不良状况之一。他们要么加入一个项目团队,这个团队首先为你提供所有建模条件,然后你会慢慢忽略它。于是他们发现在建模文档方面浪费了许多精力,然后他们会说:“嗨,我做了所有这些建模工作,但它对产品没有任何影响,这真是浪费!”因此他们开始讨厌建模。

或者,更糟糕的是,他们会做他们的工作,他们成功部署项目进入生产,然后有人会指出:“嗯,现在我们需要用接下来的两个月时间构建所有的文档,我们应当让人们觉得我们遵循了工作流程。”这完全是浪费精力,只是有人为了给工作找到合理的理由,与交付价值根本无关。许多开发者厌恶这种事情。

另一个常见的问题是他们努力将建模与构建文档区分开来。如果我在一个白纸板上画草图,那么这是一个模型,但却不是一份非常整洁的文档。从某种意义上说,错在供应商,因为我们想出售CASE工具。我们试图让开发者确信,建模必须用这些复杂的工具来完成。

不,并不全是如此——我们只是观察到这样的事实:许多建模在白纸板上完成,许多建模在纸上完成,那样很好。如果你需要取得更加复杂的效果,就需要使用更加复杂的工具。

例如,我拥有熟练的建模技巧,因此在建模时,我使用RSA(Rational软件构建器,Rational Software Architect)或RSM(Rational软件建模器,Rational Software Modeller)这类工具比用手“涂鸦”更加有效,然后生成我的代码和数据库材料。

如果能够生成代码,却要去编写它,那样做就很愚蠢了。我认为在这方面,工具可以生成优良的代码。问题在于,使用工具需要掌握大量技巧——如果你不具备那种技巧,也没有花时间来掌握它,或是与某个掌握这种技巧的人合作,那么工作起来就相当艰难。许多开发者发现如果可以选择,他们愿意做更多建模工作,但他们并没有获得学习的机会。

我们肯定需要区分模型和文档,它们是完全不同的概念;虽然一些模型会进化成文档,但许多模型不会,那样也很好。

建模和构建文档之间的联系有多强?

传统上,它们的关系非常强,这也是我们为什么全都如此关注的原因,但实际上它们之间的联系不是那么强。90%的建模工作在白纸板上完成,我们最近的一项调查显示,建模是团队中第四有效的工作。书面建模不是那么流行,关于用户叙述(User Stories)和CRC卡等的所有故事,是我喜欢看到的。

绝大多数建模工作都是在这种一次性的模型上完成的。但你可以提出非常强有力的证据,说明在开始编写代码前进行测试实际上也是建模,你在开始编写代码前说明程序的用法。就因为我没有画UML图并不表示我没有建模。

许多模型不会进化为文档,一些模型会,但在一个敏捷团队,你常常会随处看到白纸板,人们在上面画模型或别的什么,随着时间的推移,你会看到它们进化。当你开始考虑编写文档时,你会发现,那些仍然留在纸板上、你放进工具的、你夸耀并进行修饰的模型才是有用的模型。

你认为教育部门需要采取哪些措施来解决这个问题?

我认为大学应该解决几个问题:首先,他们没有必要的资金,他们的资金总是不够,事实就是这样。而且,由于某种原因,他们往往避开团队工作。建模是一个团体行为,你需要许多人参与进来,你们需要协同工作。

如果你在分配任务,你让人们绘制草图,那样很好,但他们可能只是粗略的编写出代码。他们还把教学内容划分成不同的课程,有Java课程、数据库课程、算术理论课程,那么学习的重点只是在数字编程或别的什么内容上面,他们从没有传授完整的生命周期。

另一个问题是他们并不安排项目。他们搞题海战术,或者给你一个任务让你去完成,但他们不会说:“接下来的两个时间,我们研究这个系统”,因此两年里,他们传授不同的内容。你得不到任何实际经验。

我不是说做到这些很容易,但是他们应该着手解决这些问题。几年前我在多伦多大学工作,我们做了一件艰难的工作:在团队工作课程中,我们告诉学生他们会全程开发一个系统,然后在中途,我们撤走他们的所有材料,用前些年的材料进行替代,并且告诉他们:“好了,现在你们要维护一个遗留系统,现在你们该怎么办呢?”

他们十分震惊,我们听到的全都是说我们如何坏的牢骚和抱怨,但这就是现实。在现实世界中,你必须去维护其他人编写的代码。后来我遇到他们,他们告诉我说,这是他们学到的唯一确实有用的课程,因为那是真实发生的事情。你需要模拟那种情况,这确实很难做到。

我想知道,为什么一个为期三年的计算机课程不学习开源项目,为什么他们的任务不是让这三个人完成他们想要的项目;他们必须提供证据,表明他们具备某人确实感兴趣的素质——他们设计、执行、测试并交付该项目。那就是整个工作。那很容易做到,也更加有用。


共3页: 1 [2] [3] 下一页
【内容导航】
关于 敏捷  建模  Web  项目
专题
初探敏捷开发
企业Web安全威胁在线评估系统
CRM项目实施指导
Web 2.0基础知识大全
Websphere入门
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看81024次)
·UML类图详解 (查看72498次)
·C++是垃圾语言?! (查看42631次)
·C#技术开发指南 (查看40232次)
·UML统一建模语言 (查看39205次)
·Java编程开发手册 (1198个砖)
·Java基础教程 (431个砖)
·C#技术开发指南 (311个砖)
·.NET开发手册 (254个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (658个好)
·Java基础教程 (578个好)
·.NET开发手册 (282个好)
·PB开发教程 (213个好)
·Delphi开发技术手册 (200个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。