分享
 
 
 

绘制整洁的UML图 明晰才能被人采纳

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

不管您喜欢与否,诸如“统一建模语言 (UML)”类模型和用例模型这样的软件图往往是根据它们的外观来判定其好坏的。看上去“整洁”的图比看上去杂乱的图更轻易受到读者 -- 经常是您的用户或高级经理 -- 的青睐。本文源自 Building Object applications That Work 的第 3 章。

我很愿意描述几个重要的经验法则,这些法则将使您比其他建模同仁做得更好。这些虽然简单但很要害的建议主要集中在如何安排组成软件图(包括 UML 类模型、用例模型,甚至持久模型)的那些框和线条,并因此适用于所有种类的图。

要绘制一个外观整洁的图,您应该避免:

·大小不一的框

·对角线

·交叉线

·曲线

·混乱的图

·不必要的细节

让我们从一个示例开始。在图 1 和 2 中,您可以看到两个用两种不同风格绘制的图。第一个复杂,没有章法,而第二个简单,组织良好(虽然有些乏味)。您认为哪个设计更好呢?大多数人都会赞成第二个看上去更好一些,因为虽然这两种设计在功能上是相等的,但第二个的安排更整洁。

图 1. “杂乱”的图

图 2. “整洁”的图

避免大小不一的框

如何对图 1 加以改进呢?首先,确保所有框的大小都一样。大框看上去比小框更重要一些,假如这是您尝试表达的,那么这样做没错 -- 但假如让我选的话,我宁愿将所有框保持相同的大小。这种方法最适合于“UML 用例”图,因为其中的所有用例框和参与者符号可以很方便地统一成一样,此外还适用于“UML 协作图”、“UML 序列图”和“UML 用户界面流程图”。对于框中包含的信息量不同的图,例如“UML 类图”(其中个别类有数量不等的属性和操作),或者“UML 状态图表图”和“持久”(数据)模型,那就有一些困难了。

避免对角线

图 2 与图 1 的另一个不同之处在于它没有任何对角线。我是通过重新安排框来消除对角线的,就好象它们在一个网格上,使互连的框或者在垂直方向上分离,或者在水平方向上分离。从视觉上说,大多数人对直线更感爱好。

避免交叉线

在图 1 中,有两条线相互交叉,我的一个常规经验法则是应该尽量减少图中交叉线的数量。通过将一些框移到旁边,我在短时间内就可以避免使两条线交叉。可惜,不是总能这样幸运 -- 您无法总能避免交叉线。在图 3 中,我想将 5 个框全部连接起来,但假如不使至少两条线相交就无法做到这一点。您可以看到,我没有其它方法将框 3 和 5 连接起来。在不得不交叉线时,我会用适用于电路图的标准来标记:一条线“跳过”另一条,如图 4 所示。跳过的好处是它很清楚地表明线只是在图上交叉,而不以任何方式连接。

图 3. 如何在不交叉线的情况下连接 3 和 5?

图 4. 一条线“跳”过另一条

避免曲线

您可以在图 5 中看出,我对图 4 做了更进一步的改进:除去了曲线。人们喜欢看到垂直或水平的直线。这次我又假装是在网格上绘制图(实际上这是许多计算机辅助系统工程 (CASE) 工具的内置特性),然后只需要象在网格上那样绘制出框和线条。

图 5. 图 4 的更整洁版本

避免混乱或复杂的图

显示太多细节或者外观很混乱的图看上去不太好。最好能够有几张显示各种程度的细节的图,而非一张显示所有事物的复杂的图。这就是为什么 UML 拥有几种图的原因之一:一个软件是如此复杂,以至于我们无法在单一图上对其所有方面建模。而且,UML 答应将包添加到图中(下星期的技巧主题)。

另一个相关的注重事项是对屏幕或页面区域的使用。在我看来,一张占据几页的图比将所有内容蜷缩在一起,使它能在一页上打印出的图要好得多。您应该给图留出足够的空间,使它易于理解。

避免在图的美化上浪费太多时间

尽管这些经验法则非常有效,但无休止地调整图的外观总是会增加额外的建模时间。解决这个问题的一个方法是尝试使图的外观保持在大致良好的水平上 -- 您在使用图时,不需要它非常完美。一旦确信图按照您所需的方式对应用程序建模,就可以开始移动框以避免交叉线,增进其可理解性。

您的主要目标是对系统建模,而不是绘制漂亮的图。有必要指出这些重要的经验法则也可以被用来美化低劣的设计。例如,我可以从图 2 开始,将它重排成图 1,以使设计看上去比实际的更为复杂 -- 可能使得高级治理人员相信我需要更多时间或资源才能完成工作,或者引导他们避开我不是非凡喜欢的备选设计。假设您的动机随情形而改变,我希望您所处的情形是健康的,您所考虑的最重要的问题是使了不起的设计看上去更引人入胜,而不是在办公室权术中求生存。

参考资料

Building Object Applications That Work: Your Step-By-Step Handbook for Developing Robust Systems with Object Technology,由 Scott W. Ambler 著。New York: Cambridge University PRess, 1998。

Process Patterns -- Building Large-Scale Systems Using Object Technology ,由 Scott Ambler 著。New York: Cambridge University Press, 1998。

The Object Primer 2nd Edition,由 Scott W. Ambler 著。New York: Cambridge University Press, 2000。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有