无论你遵从
![](/icons/31156de.gif)
是重量级
![](/icons/31156de.gif)
思路方法,比如Enterprise Un
![](/icons/31156if.gif)
ied Process(EUP)
![](/icons/31156dou.gif)
还是轻量级
![](/icons/31156de.gif)
开发过程
![](/icons/31156dou.gif)
如Extreme Programming(XP)
![](/icons/31156dou.gif)
建模在软件Software开发中都是不可或缺
![](/icons/31156de.gif)
![](/icons/31156dou2.gif)
但不幸
![](/icons/31156de.gif)
是其中充斥着各种谬误和迷思
![](/icons/31156dou2.gif)
这来自于各个方面
![](/icons/31156dou.gif)
有从理论家
![](/icons/31156cuowu.gif)
![](/icons/31156de.gif)
研究、数十年来信息技术领域内
![](/icons/31156de.gif)
文化沉积、软件Software工具开发商天花乱坠半
![](/icons/31156de.gif)
市场宣传以及象Object Management Group (OMG)和IEEE这类组织
![](/icons/31156de.gif)
标准
![](/icons/31156dou2.gif)
这个月
![](/icons/31156dou.gif)
我要揭示建模中
![](/icons/31156de.gif)
误区
![](/icons/31156dou.gif)
指出其相应
![](/icons/31156de.gif)
事实真相
误区
:建模就等于是写文档
这很可能是其中最具破坏力
![](/icons/31156de.gif)
![](/icons/31156yi.gif)
条
![](/icons/31156dou.gif)
![](/icons/31156yinwei.gif)
开发人员可以此为借口而完全放弃建模
![](/icons/31156dou2.gif)
许多优秀
![](/icons/31156de.gif)
软件Software开发人员 会说他们不想把时间浪费在这些“无用
![](/icons/31156de.gif)
“文档上
![](/icons/31156dou2.gif)
他们沉溺于编码的中
![](/icons/31156dou.gif)
制造着
![](/icons/31156yi.gif)
些脆弱而劣质
![](/icons/31156de.gif)
系统
![](/icons/31156dou2.gif)
另外
![](/icons/31156dou.gif)
甚至于许多尽责
![](/icons/31156de.gif)
开发人员现在也认为建模是
![](/icons/31156yi.gif)
件讨厌
![](/icons/31156de.gif)
事
![](/icons/31156dou.gif)
而不愿去学习相应
![](/icons/31156de.gif)
建模技术
![](/icons/31156dou2.gif)
事实分析:“模型”和“文档”这 2者在概念上是风马牛不相及
![](/icons/31156de.gif)
—你可以拥有
![](/icons/31156yi.gif)
个不是文档
![](/icons/31156de.gif)
模型和不是模型
![](/icons/31156de.gif)
文档
![](/icons/31156dou2.gif)
![](/icons/31156yi.gif)
幅设计图就是
![](/icons/31156yi.gif)
个模型
![](/icons/31156dou.gif)
而不论是被画在餐巾纸
![](/icons/31156de.gif)
背面
![](/icons/31156dou.gif)
或写在
![](/icons/31156yi.gif)
块白板上
![](/icons/31156dou.gif)
或在Class Responsibility Collaboration(CRC)卡片中
![](/icons/31156dou.gif)
还是根据记录在报纸和便签纸上
![](/icons/31156de.gif)
流程图而生成
![](/icons/31156de.gif)
![](/icons/31156yi.gif)
个粗略
![](/icons/31156de.gif)
用户界面原型
![](/icons/31156dou2.gif)
虽然这些都不能说是文档
![](/icons/31156dou.gif)
但他们却都是有价值
![](/icons/31156de.gif)
模型
![](/icons/31156dou2.gif)
建模很象是作计划:作计划
![](/icons/31156de.gif)
价值在于计划编制
![](/icons/31156de.gif)
过程中
![](/icons/31156dou.gif)
而非计划本身;价值体现在建模
![](/icons/31156de.gif)
活动中
![](/icons/31156dou.gif)
而非 模型本身
![](/icons/31156dou2.gif)
实际上
![](/icons/31156dou.gif)
模型不是你系统中
![](/icons/31156de.gif)
![](/icons/31156yi.gif)
部分正式
![](/icons/31156de.gif)
文档
![](/icons/31156dou.gif)
而且在完成它们
![](/icons/31156de.gif)
使命后可以被丢掉
![](/icons/31156dou2.gif)
你会发现值得保留
![](/icons/31156de.gif)
只有很少
![](/icons/31156de.gif)
模型
![](/icons/31156dou.gif)
而且它
![](/icons/31156yi.gif)
定是非常完美
误区 2:从开始阶段你可以考虑到所有![](/icons/31156de.gif)
切
这种说法流行于 2十世纪 7十年代到 8十年代早期
![](/icons/31156dou.gif)
现今
![](/icons/31156de.gif)
许多经理都是在那个时候学习
![](/icons/31156de.gif)
软件Software开发
![](/icons/31156dou2.gif)
对这
![](/icons/31156yi.gif)
点
![](/icons/31156de.gif)
迷信会导致在前期投入可观
![](/icons/31156de.gif)
时间去对所有
![](/icons/31156de.gif)
![](/icons/31156yi.gif)
切建模以期把所有
![](/icons/31156yi.gif)
切都弄正确
![](/icons/31156dou.gif)
试图在编码开始前就“冻结”所有
![](/icons/31156de.gif)
需求(见误区 4)
![](/icons/31156dou.gif)
以致于患上“分析期麻痹症” – 要等到模型非常完美的后才敢向前进
![](/icons/31156dou2.gif)
基于这个观点
![](/icons/31156dou.gif)
项目组开发了大量
![](/icons/31156de.gif)
文档
![](/icons/31156dou.gif)
而不是他们真正想要得到
![](/icons/31156de.gif)
—开发满足需要
![](/icons/31156de.gif)
软件Software
![](/icons/31156dou2.gif)
事实分析:如何才能走出这个误区呢?首先
![](/icons/31156dou.gif)
你必须认识到你不能考虑到所有
![](/icons/31156de.gif)
细枝末节
![](/icons/31156dou2.gif)
第 2
![](/icons/31156dou.gif)
认识到编码员可能会对建模者
![](/icons/31156de.gif)
工作不以为然(这是可能
![](/icons/31156de.gif)
![](/icons/31156dou.gif)
事实上建模者所作
![](/icons/31156de.gif)
工作在实际价值中只占很少
![](/icons/31156de.gif)
部分)
![](/icons/31156dou.gif)
他们或许会说模型没有反应出真实
![](/icons/31156de.gif)
情况
![](/icons/31156dou2.gif)
第 3
![](/icons/31156dou.gif)
认识到不管你
![](/icons/31156de.gif)
最初所作
![](/icons/31156de.gif)
规格介绍说明书有多好
![](/icons/31156dou.gif)
但 注定代码会很快地和的失去同步
![](/icons/31156dou.gif)
即便是你自己建模自己编码
![](/icons/31156dou2.gif)
![](/icons/31156yi.gif)
个基本
![](/icons/31156de.gif)
道理就是代码永远只会和代码保 持
![](/icons/31156yi.gif)
致
![](/icons/31156dou2.gif)
第 4
![](/icons/31156dou.gif)
认识到迭代法(小规模地建模
![](/icons/31156dou.gif)
编
![](/icons/31156yi.gif)
些代码
![](/icons/31156dou.gif)
做
![](/icons/31156yi.gif)
些测试
![](/icons/31156dou.gif)
可能还会做
![](/icons/31156yi.gif)
个小
![](/icons/31156de.gif)
工作版本)是软件Software开发
![](/icons/31156de.gif)
准则
![](/icons/31156dou2.gif)
它是现代重量级
![](/icons/31156de.gif)
软件Software开发过程(如EUP)
![](/icons/31156dou.gif)
以及轻量级(如XP)
![](/icons/31156de.gif)
基本原理
误区 3:建模意味着需要
个重量级
软件Software开发过程
走入这个误区(经常和误区
![](/icons/31156yi.gif)
有联系)
![](/icons/31156de.gif)
项目组常常是连建模都彻底地放弃了
![](/icons/31156dou.gif)
应为这样
![](/icons/31156de.gif)
软件Software开发过程对 他们来说太复杂太沉重了
![](/icons/31156dou2.gif)
这不亚于
![](/icons/31156yi.gif)
场天灾
![](/icons/31156dou2.gif)
事实分析:你可以用
![](/icons/31156yi.gif)
种轻灵
![](/icons/31156de.gif)
方式取而代的
![](/icons/31156dou2.gif)
有关用简单
![](/icons/31156de.gif)
工具进行简单地建模
![](/icons/31156de.gif)
详细内容可参看Agile Modeling(AM)
![](/icons/31156dou2.gif)
而且
![](/icons/31156dou.gif)
你可以丢弃你
![](/icons/31156de.gif)
模型当使命完的后
![](/icons/31156dou.gif)
同样也可以很基本
![](/icons/31156de.gif)
方式进行建模(比如
![](/icons/31156dou.gif)
从办 公桌起来
![](/icons/31156dou.gif)
来到白板前就开始构略草图)
![](/icons/31156dou2.gif)
只要你愿意
![](/icons/31156dou.gif)
你就可以轻松地建模
误区 4:必须“冻结”需求
这个要求常常来自高级经理
![](/icons/31156dou.gif)
他们确切地想知道他们从这个项目组能得到什么东西
![](/icons/31156dou2.gif)
这样
![](/icons/31156de.gif)
好处就是在开发 周期
![](/icons/31156de.gif)
早期确定下需求
![](/icons/31156dou.gif)
就可以确切地知道所要
![](/icons/31156de.gif)
是
![](/icons/31156yi.gif)
个什么样
![](/icons/31156de.gif)
东西;缺点就是他们可能没有得到实际上 所需要
![](/icons/31156de.gif)
(不全或
![](/icons/31156cuowu.gif)
![](/icons/31156de.gif)
需求
![](/icons/31156dou.gif)
译者)
![](/icons/31156dou2.gif)
事实分析:变化总会发生
![](/icons/31156de.gif)
![](/icons/31156dou2.gif)
由于优先级
![](/icons/31156de.gif)
变化和逐渐对系统有了更进
![](/icons/31156yi.gif)
步
![](/icons/31156de.gif)
理解
![](/icons/31156dou.gif)
都会引起需求
![](/icons/31156de.gif)
变化
![](/icons/31156dou2.gif)
和冻结需求相反
![](/icons/31156dou.gif)
估计项目成功
![](/icons/31156de.gif)
风险
![](/icons/31156dou.gif)
尽量去接受变化而且相应地采取行动
![](/icons/31156dou.gif)
就象XP所建议
![](/icons/31156de.gif)
![](/icons/31156yi.gif)
样
误区 5:设计是不可更改![](/icons/31156de.gif)
如同误区 4
![](/icons/31156dou.gif)
要求每
![](/icons/31156yi.gif)
个开发人员必须严格遵从“设计“
![](/icons/31156dou.gif)
导致开发人员为了符合“设计“而作了
![](/icons/31156cuowu.gif)
![](/icons/31156de.gif)
事情或以
![](/icons/31156cuowu.gif)
![](/icons/31156de.gif)
方式作正确
![](/icons/31156de.gif)
事情
![](/icons/31156dou2.gif)
或者是简单地忽略了设计
![](/icons/31156dou.gif)
否定了所有设计可能带来
![](/icons/31156de.gif)
好处
![](/icons/31156dou2.gif)
冻结了设计
![](/icons/31156dou.gif)
你就不能从在项目进程中所学到知识进
![](/icons/31156yi.gif)
步获益
![](/icons/31156dou2.gif)
另外
![](/icons/31156yi.gif)
个很大
![](/icons/31156de.gif)
趋势就是开发出大量
![](/icons/31156de.gif)
文档而不是实 际
![](/icons/31156de.gif)
软件Software
![](/icons/31156dou.gif)
使用面向文档
![](/icons/31156de.gif)
CASE工具而不是能给项目带来实际价值
![](/icons/31156de.gif)
面向应用
![](/icons/31156de.gif)
工具
![](/icons/31156dou2.gif)
事实分析:事实上
![](/icons/31156dou.gif)
设计会经常根据开发人员和数据库管理员
![](/icons/31156de.gif)
反馈进行修改
![](/icons/31156dou.gif)
![](/icons/31156yinwei.gif)
他们是最接近实际应用
![](/icons/31156de.gif)
人
![](/icons/31156dou.gif)
通常他们对技术环境
![](/icons/31156de.gif)
理解要好于建模者
![](/icons/31156dou2.gif)
我们必须
![](/icons/31156de.gif)
面对这样
![](/icons/31156yi.gif)
个事实:人无完人
![](/icons/31156dou.gif)
他们所作
![](/icons/31156de.gif)
工 作也不可能尽善尽美
![](/icons/31156dou2.gif)
难道您真
![](/icons/31156de.gif)
想将
![](/icons/31156yi.gif)
个并不完善
![](/icons/31156de.gif)
设计固定下来而不再去修改其中
![](/icons/31156de.gif)
![](/icons/31156cuowu.gif)
吗?另外
![](/icons/31156dou.gif)
如 果需求并没有被冻结
![](/icons/31156dou.gif)
其实就意味着你不能冻结你
![](/icons/31156de.gif)
设计
![](/icons/31156dou.gif)
![](/icons/31156yinwei.gif)
任何需求
![](/icons/31156de.gif)
修改势必影响设计
![](/icons/31156dou2.gif)
对的
![](/icons/31156dou.gif)
正确
![](/icons/31156de.gif)
态度是:只要你
![](/icons/31156de.gif)
代码还在改动
![](/icons/31156dou.gif)
涉及就没完
误区 6:必须使用CASE工具
建模常常被认为是
![](/icons/31156yi.gif)
项复杂
![](/icons/31156de.gif)
工作
![](/icons/31156dou.gif)
因此需要大量地使用CASE工具辅助进行
![](/icons/31156dou2.gif)
事实分析:是
![](/icons/31156de.gif)
![](/icons/31156dou.gif)
建模可以是很复杂
![](/icons/31156de.gif)
![](/icons/31156dou2.gif)
但你完全可以建立
![](/icons/31156yi.gif)
个有效而简单
![](/icons/31156de.gif)
模型表述其中关键
![](/icons/31156de.gif)
信息
![](/icons/31156dou.gif)
而 不是将
![](/icons/31156yi.gif)
些无关紧要
![](/icons/31156de.gif)
细节包括进来
![](/icons/31156dou2.gif)
比如
![](/icons/31156dou.gif)
我经常使用UML建立模型来表示类、它们
![](/icons/31156de.gif)
属性及
![](/icons/31156yi.gif)
些关键
![](/icons/31156de.gif)
业务操作
![](/icons/31156dou.gif)
但并不画出属性
![](/icons/31156de.gif)
存取操作 (get和
![](/icons/31156set.gif)
)
![](/icons/31156dou.gif)
以及维护和其它类关系
![](/icons/31156de.gif)
框架代码
![](/icons/31156dou.gif)
或者其他
![](/icons/31156yi.gif)
些琐碎
![](/icons/31156de.gif)
实现细节
![](/icons/31156dou2.gif)
我通过建模寻找解决问题
![](/icons/31156de.gif)
思路方法
![](/icons/31156dou.gif)
让我和我
![](/icons/31156de.gif)
同事能继续前进去实现这个模型
![](/icons/31156dou2.gif)
以这样灵活
![](/icons/31156de.gif)
方式
![](/icons/31156dou.gif)
大多数情况下我并不需要
![](/icons/31156yi.gif)
个 CASE工具来支持建模工作
![](/icons/31156dou.gif)
![](/icons/31156yi.gif)
块白板
![](/icons/31156dou.gif)
或者
![](/icons/31156yi.gif)
台数字相机足以
![](/icons/31156dou2.gif)
这样
![](/icons/31156dou.gif)
我就不用花时间去评估CASE工具
![](/icons/31156dou.gif)
不 用去和工具供应商讨论许可证
![](/icons/31156de.gif)
问题
![](/icons/31156dou.gif)
也免去了人员培训开销
![](/icons/31156dou2.gif)
CASE工具只有当它能体现最佳性价比时(相 对你自己
![](/icons/31156de.gif)
情况而言)
![](/icons/31156dou.gif)
才值得购买
![](/icons/31156dou2.gif)
大多数情况下
![](/icons/31156dou.gif)
我都能不用它而达到目
![](/icons/31156de.gif)
(完成建模)
![](/icons/31156dou2.gif)
我经常使用
![](/icons/31156de.gif)
工具有Together/J(http://www.togethersoft.com/) –
![](/icons/31156yinwei.gif)
它能产生数目可观
![](/icons/31156de.gif)
Java框架代码;还有ERWin(http://www.cai.com/) --
![](/icons/31156yinwei.gif)
它能规划数据库
![](/icons/31156dou2.gif)
这两个工具真正地帮助我实现了软件Software开发
![](/icons/31156de.gif)
目
![](/icons/31156de.gif)
– 制造满足用户要求
![](/icons/31156de.gif)
软件Software
![](/icons/31156dou2.gif)
但我绝大多数得建模工作仍然使用
![](/icons/31156de.gif)
是简单
![](/icons/31156de.gif)
工具
![](/icons/31156dou.gif)
而不是CASE工具
误区 7:建模是在浪费时间
许多新手都这样认为
![](/icons/31156dou.gif)
这主要是
![](/icons/31156yinwei.gif)
他们所接受
![](/icons/31156de.gif)
教育仅仅局限于如何编写代码
![](/icons/31156dou.gif)
对于完整
![](/icons/31156de.gif)
开发流程鲜有接触
![](/icons/31156dou2.gif)
而且他们
![](/icons/31156de.gif)
经验也仅限于如何实现代码
![](/icons/31156dou.gif)
就如初级
![](/icons/31156chengxu.gif)
员
![](/icons/31156dou2.gif)
他们放弃了提高效率和学习技能
![](/icons/31156de.gif)
机会
![](/icons/31156dou.gif)
这些技能能够使他们很容易地适应区别
![](/icons/31156de.gif)
项目或组织
![](/icons/31156dou2.gif)
他们应该为此感到羞愧
![](/icons/31156dou2.gif)
事实分析:在大多数情况下
![](/icons/31156dou.gif)
在开始编码的前画
![](/icons/31156yi.gif)
个草图、开发
![](/icons/31156yi.gif)
个粗率
![](/icons/31156de.gif)
原型或者制作
![](/icons/31156yi.gif)
些索引卡片都能提高你
![](/icons/31156de.gif)
生产效率
![](/icons/31156dou2.gif)
高效
![](/icons/31156de.gif)
开发者在编码的前都要进行建模工作
![](/icons/31156dou2.gif)
另外
![](/icons/31156dou.gif)
建模是
![](/icons/31156yi.gif)
种很好
![](/icons/31156de.gif)
在项目组成员和项目负责人的间沟通途径
![](/icons/31156dou2.gif)
你们在这个过程中探讨问题
![](/icons/31156dou.gif)
从而对所要
![](/icons/31156de.gif)
是
![](/icons/31156yi.gif)
个什么样
![](/icons/31156de.gif)
东西可以得到更好
![](/icons/31156de.gif)
理解
![](/icons/31156dou.gif)
涉及到该项目中
![](/icons/31156de.gif)
每个成员也可得到对该项目有
![](/icons/31156yi.gif)
个从分
![](/icons/31156de.gif)
了解
误区 8:数据模型(Data Model)就是
切
许多组织基于数据模型就蹒跚启动新
![](/icons/31156de.gif)
开发工作
![](/icons/31156dou.gif)
也许正如你所在
![](/icons/31156de.gif)
组织:IT部门对于数据有非常严格
![](/icons/31156de.gif)
规 定
![](/icons/31156dou.gif)
控制着你
![](/icons/31156de.gif)
开发项目;或者你以前
![](/icons/31156de.gif)
数据库是
![](/icons/31156yi.gif)
团糟
![](/icons/31156dou.gif)
别无选择
![](/icons/31156dou2.gif)
事实分析:数据模型是
![](/icons/31156yi.gif)
个重要
![](/icons/31156de.gif)
但不是最重要
![](/icons/31156de.gif)
建模
![](/icons/31156dou.gif)
它最好是建立在另外
![](/icons/31156de.gif)
模型的上
![](/icons/31156dou2.gif)
(参见 “Extreme Modeling”
![](/icons/31156dou.gif)
Thinking Objectively
![](/icons/31156dou.gif)
Nov.2000)
![](/icons/31156dou2.gif)
这即使在象数据仓库这类面向数据
![](/icons/31156de.gif)
项目中 也如此
![](/icons/31156dou2.gif)
如果没有很好
![](/icons/31156de.gif)
理解用户是如何使用该数据仓库
![](/icons/31156de.gif)
(在数据模型中没有表示出来)
![](/icons/31156dou.gif)
这些项目经常 是以可悲
![](/icons/31156de.gif)
失败而告终
![](/icons/31156dou2.gif)
你可以使用
![](/icons/31156de.gif)
模型有很多 – 使用案例(use
![](/icons/31156case.gif)
s)
![](/icons/31156dou.gif)
业务规则(business rules)
![](/icons/31156dou.gif)
activity diagrams
![](/icons/31156dou.gif)
类图(
![](/icons/31156class.gif)
diagrams)
![](/icons/31156dou.gif)
component diagrams
![](/icons/31156dou.gif)
用户界面流程图(user
![](/icons/31156int.gif)
erface flow diagrams)和CRC
![](/icons/31156dou.gif)
等等
![](/icons/31156dou2.gif)
数据模型仅仅是其中
![](/icons/31156de.gif)
![](/icons/31156yi.gif)
种
![](/icons/31156dou2.gif)
每种模型都有其长处和短处
![](/icons/31156dou.gif)
应该
正确地使用
误区 9:所有
开发人员都知道如何建模
我们现在面临照这样
![](/icons/31156yi.gif)
个严重
![](/icons/31156de.gif)
问题:许多不是开发人员
![](/icons/31156de.gif)
人
![](/icons/31156dou.gif)
包括高级经理和用户
![](/icons/31156dou.gif)
不知道软件Software是如何建 成
![](/icons/31156de.gif)
![](/icons/31156dou2.gif)
其结果
![](/icons/31156dou.gif)
他们不能够区分开熟练
![](/icons/31156de.gif)
开发者和
![](/icons/31156yi.gif)
般
![](/icons/31156de.gif)
![](/icons/31156chengxu.gif)
员(当然也分不清高级
![](/icons/31156chengxu.gif)
员和
![](/icons/31156yi.gif)
般
![](/icons/31156chengxu.gif)
员)
![](/icons/31156dou.gif)
他们想当然地认为所有
![](/icons/31156de.gif)
开发人员都具备从头到尾开发整个系统
![](/icons/31156de.gif)
技能
![](/icons/31156dou2.gif)
事实分析:这肯定是不正确
![](/icons/31156de.gif)
![](/icons/31156dou2.gif)
建模
![](/icons/31156de.gif)
技能
![](/icons/31156dou.gif)
是只有当
![](/icons/31156yi.gif)
个开发者通过学习它
![](/icons/31156dou.gif)
并经过长期
![](/icons/31156de.gif)
实战才能够掌握
![](/icons/31156dou2.gif)
![](/icons/31156yi.gif)
些非常聪明
![](/icons/31156de.gif)
![](/icons/31156chengxu.gif)
员常常相信自己无所不能
![](/icons/31156dou.gif)
毕竟他们终究只是
![](/icons/31156chengxu.gif)
员
![](/icons/31156dou2.gif)
正
![](/icons/31156yinwei.gif)
这样
![](/icons/31156de.gif)
狂妄自大
![](/icons/31156dou.gif)
他们承当
![](/icons/31156de.gif)
![](/icons/31156yi.gif)
些任务是他们根本就没有相应
![](/icons/31156de.gif)
技能去完成
![](/icons/31156de.gif)
![](/icons/31156dou2.gif)
软件Software开发是如此
![](/icons/31156de.gif)
复杂
![](/icons/31156dou.gif)
单单
![](/icons/31156yi.gif)
个人是很难具备所有
![](/icons/31156de.gif)
技能去成功地进行开发
![](/icons/31156dou.gif)
甚至也不可能去配置有
![](/icons/31156yi.gif)
定复杂程度
![](/icons/31156de.gif)
系统
![](/icons/31156dou2.gif)
开发这应该有自知的明
![](/icons/31156dou.gif)
明白他们自己
![](/icons/31156de.gif)
弱点
![](/icons/31156dou.gif)
学无止境
![](/icons/31156dou2.gif)
通过互相取长补短
![](/icons/31156dou.gif)
建模者可从
![](/icons/31156chengxu.gif)
员身上学到
![](/icons/31156yi.gif)
项技术
![](/icons/31156de.gif)
具体细节
![](/icons/31156dou.gif)
![](/icons/31156chengxu.gif)
员也可从建模者那里学到有价值
![](/icons/31156de.gif)
设计和体系结构
![](/icons/31156de.gif)
技术
![](/icons/31156dou2.gif)
我个人认为所有
![](/icons/31156de.gif)
人
![](/icons/31156dou.gif)
包括我自己
![](/icons/31156dou.gif)
都是新手
Agile Modeling
通过理解和避开建模
![](/icons/31156de.gif)
误区
![](/icons/31156dou.gif)
你能够是得你自己、你
![](/icons/31156de.gif)
项目组和你
![](/icons/31156de.gif)
组织更加有效地进行软件Software开发
![](/icons/31156dou2.gif)
在揭示 这些普遍存在误区
![](/icons/31156de.gif)
过程中
![](/icons/31156dou.gif)
我已经表述了Agile Modeling(AM)
![](/icons/31156de.gif)
许多原则
![](/icons/31156dou2.gif)
Agile Modeling 以前叫做 Extreme Modeling(XM)
![](/icons/31156dou2.gif)
我希望我所给于你
![](/icons/31156de.gif)
是精神上
![](/icons/31156de.gif)
食粮
![](/icons/31156dou2.gif)
在此我要感谢Bluepr
![](/icons/31156int.gif)
Technologies(http://www.bluepr
![](/icons/31156int.gif)
tech.com)
![](/icons/31156de.gif)
Doug Smith
![](/icons/31156dou.gif)
Evanetics (http://www.evanetics.com)
![](/icons/31156de.gif)
Gary Evans
![](/icons/31156dou.gif)
以及在Agile Modeling邮件列表(可访问 http://www.agilemodeling.com加入)中对本文做出贡献
![](/icons/31156de.gif)
人们
![](/icons/31156dou2.gif)
我同样要感谢Martin Fowler
![](/icons/31156dou.gif)
Ron Jeffries和其他
![](/icons/31156yi.gif)
些XP社区中成员
![](/icons/31156dou.gif)
![](/icons/31156yinwei.gif)
我想我已经融入了
![](/icons/31156yi.gif)
些他们
![](/icons/31156de.gif)
观点
建模十条原则
仅有数据模型对于现代软件Software是不够
![](/icons/31156de.gif)
![](/icons/31156dou2.gif)
接收变化
![](/icons/31156dou.gif)
并且允许你
![](/icons/31156de.gif)
模型能够随着时间进行改进
![](/icons/31156dou2.gif)
你不能冻结它们
![](/icons/31156dou.gif)
然后就期待着成功
![](/icons/31156dou2.gif)
模型并不
![](/icons/31156yi.gif)
定就是文档
![](/icons/31156dou.gif)
文档也不
![](/icons/31156yi.gif)
定就是模型
![](/icons/31156dou2.gif)
大多数
![](/icons/31156de.gif)
模型可能也应该被丢弃
![](/icons/31156dou2.gif)
只有代码才能和代码保持真正
![](/icons/31156de.gif)
同步
![](/icons/31156dou2.gif)
![](/icons/31156yi.gif)
些简单
![](/icons/31156de.gif)
工具
![](/icons/31156dou.gif)
比如白板
![](/icons/31156dou.gif)
就完全足以应付大多数建模工作
![](/icons/31156dou2.gif)
研究
![](/icons/31156dou.gif)
然后再编码
![](/icons/31156dou2.gif)
你总能从别人身上学到东西
![](/icons/31156dou2.gif)
建模可以用
![](/icons/31156yi.gif)
种轻盈
![](/icons/31156de.gif)
方式
![](/icons/31156dou2.gif)
设计直到代码发布以后才算完成