﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-XZC.Log-随笔分类-UML</title><link>http://www.blogjava.net/xzclog/category/31843.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 28 May 2011 21:20:47 GMT</lastBuildDate><pubDate>Sat, 28 May 2011 21:20:47 GMT</pubDate><ttl>60</ttl><item><title>画Web流程图的一点心得</title><link>http://www.blogjava.net/xzclog/archive/2011/05/27/351193.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Fri, 27 May 2011 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2011/05/27/351193.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/351193.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2011/05/27/351193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/351193.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/351193.html</trackback:ping><description><![CDATA[<p>转自:<a href="http://dingyu.me/blog/posts/view/flowchart-howtos">http://dingyu.me/blog/posts/view/flowchart-howtos</a><br /></p>
<p>一个哥们在MSN上告诉我，他们公司的交互设计师只产出流程图，并问我用什么标准评价流程图的好坏。他的说法把我彻底震了－这分工也太细了吧！也不知道该说他们那里这样是好还是不好。</p>
<p>不过仔细想来，我倒的确没有仔细考虑过流程图的好坏，正好借此机会自我总结一下。</p>
<h3>1、各司其职的形状</h3>
<p>在我的流程图中，适用于不同目的和功能的形状都有各自确定的规范。到目前为止，我一共定义了以下一些形状：</p>
<p><strong>（1）开始和结束</strong></p>
<p><img class="photo" alt="开始和结束" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-start-end-point.jpg" /></p>
<p>作为整张流程图的头和尾，必须标清楚到底具体指哪个页面，以免日后出现歧义。</p>
<p><strong>（2）网页</strong></p>
<p><img class="photo" alt="网页" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-webpage.jpg" /></p>
<p>如你所见，网页的形状是一个带有漂亮的淡蓝色过渡效果的长方形，它的边框为深蓝色，中间写明了这个网页的用途，括号中的数字代表这个形状所对应的demo文件的名称（比如这里是2.html），我有时会把流程图输出为网页的形式，并把每个网页形状和它所对应的demo文件链接起来，这样查看起来非常方便。对OmniGraffle来说这是小菜一碟，如果你被迫用Visio，嗯&#8230;&#8230;</p>
<p>另外，所有从形状出来的线条，都具有和此形状边框一样的颜色。这样的做法不仅看起来漂亮，在复杂的流程图中还能轻易地标明各形状的关系。我没有见过类似的做法，所以这是由我首创也说不定，呵。</p>
<p><strong>（3）后台判断</strong></p>
<p><img class="photo" alt="后台判断" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-condition.jpg" /></p>
<p>很常见的一个形状。我在用法上有一点和其他人的不同在于，我几乎总是让&#8216;是&#8217;的分支往下流动，让&#8216;否&#8217;的分支向右流动。因为流程图一般都是从上向下、从左到右绘制的，遵循上述规则一方面可以让绘制者不用为选择方向操心，另一方面也方便了读者阅读。</p>
<p><strong>（4）表单错误页</strong></p>
<p><img class="photo" alt="表单错误页" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-form-error-message.jpg" /></p>
<p>既然有表单，当然会有错误信息。其实这个信息很重要，用户出错时惶恐不安，就靠着错误提示来解决问题了。你不在流程图里说什么时候显示错误页、不在demo里提供错误页，有些程序员会直接在网页上写个&#8220;错误，请检查&#8221;，所以UI设计师一定要对这个东西重视起来。</p>
<p>但一般来说也没必要把每种错误都在流程图中表示出来，因为含有两个文本框的表单就有三种出错情况了，多了就更不用说了。所以我都是把错误页变为表单的附属页，比如表单页的编号为2，那么此表单错误页的编号就从2.1开始排下去，每种错误放到一个附属页中，这样程序员在拿到demo时也能搞清楚什么意思。</p>
<p>结合网页和表单的形状，一个表单验证的流程图就是这样的：</p>
<p><img class="photo" alt="表单验证的流程图" src="http://dingyu.me/blog/files/flowchart-howtos/example-form.jpg" /></p>
<p><strong>（5）后台动作</strong></p>
<p><img class="photo" alt="后台动作" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-server-action.jpg" /></p>
<p>并非所有后台动作都绘入流程图中（否则流程图就会变成庞然大物了），只有需要特别强调的后台动作（和用户体验直接相关的）才使用此形状。</p>
<p><strong>（6）多重分支</strong></p>
<p><img class="photo" alt="多重分支" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-mutil-branches.jpg" /></p>
<p>多重分支指的是几种并列的情况，每种情况都有发生的可能，发生哪种取决于分支起始处的判断结果。</p>
<p><strong>（7）对话框</strong></p>
<p><img class="photo" alt="对话框" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-dialog.jpg" /></p>
<p>有时候一些操作可以利用对话框来完成， 这些对话框由js生成，显示在父界面之上。</p>
<p><strong>（8）注释</strong></p>
<p><img class="photo" alt="注释" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-note.jpg" /></p>
<p>这个形状（比如页面）详细的内容，或者需要解释的业务逻辑，甚至用户此处的情况等，我都会放到注释中，这样既降低沟通成本，又可作为备忘。</p>
<p><strong>（9）跳转点</strong></p>
<p><img class="photo" alt="跳转点" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-connector.jpg" /></p>
<p>在一个复杂的流程图中，往往出现跳转到另外一个远处结点的情况，此时如果直接用线连过去，未免使得流程图显得凌乱，用一个跳转点就解决问题了。在点内标明跳转到的形状的编号，画起来容易，看起来也清楚。</p>
<p>此外，也可以利用跳转点来分割篇幅巨大的流程图，Yahoo!就这么用。</p>
<p><strong>（10）子流程</strong></p>
<p><img class="photo" alt="子流程" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-subflow.jpg" /></p>
<p>分割篇幅巨大的流程图，更好的办法是用子流程。</p>
<p>要注意的是，如果你在流程图中使用了子流程这一形状，一定记得同时附上子流程图，以消除影响项目质量的不确定性因素。另外，在子流程图中也可以标明其所属关系。</p>
<p><strong>（11）流程块</strong></p>
<p><img class="photo" alt="流程块" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-block.jpg" /></p>
<p><img class="photo" alt="流程块使用示例" src="http://dingyu.me/blog/files/flowchart-howtos/example-block.jpg" /></p>
<p>可以用流程块将整张流程图分隔为几个部分，并为每个部分单独命名（比如&#8220;流程块1&#8221;等）。这样做的目的在于从视觉上使复杂的流程图变得更为清晰，在沟通时也方便。</p>
<h3>2、图例和流程图信息</h3>
<p><img class="photo" alt="图例和流程图信息" src="http://dingyu.me/blog/files/flowchart-howtos/stencil-legeng-meta.jpg" /></p>
<p>在团队合作中，图例是必须的，否则没人知道你画出来的东西到底是什么。即使流程图只给自己看，也最好养成标注图例的好习惯。其实这道理有点类似程序中的注释。</p>
<p>流程图信息也是必备的。其内容至少应包括作者、时间、流程图名称和版本（如下图）。这一方面可以让读者（其他同事）在有问题时能够方便地找到作者你，也起到了meta的作用。</p>
<h3>3、绘制流程图的工具</h3>
<p>Mac下首选<a href="http://dingyu.me/blog/posts/view/omnigraffle-the-best-wireframe-and-flow-design-tool" target="_blank">OmniGraffle</a>，Windows下除了Visio，似乎没有更好的选择（虽然Visio已经很难用了）。</p>
<h3>4、评价流程图的好坏</h3>
<p>我觉得一个好的流程图至少应做到以下几点：</p>
<ol><li>密切地迎合了用户的心理状态、如实的反映了用户的操作习惯。流程图是要指导UI设计的，是UI设计的参照物，如果流程图本身无法正确描绘出用户的情况的话，UI十有八九会出问题；</li><li>覆盖了各种可能的情况和细节。这非常重要。任何在先期不确定的因素，都会在项目中成为随时引爆的地雷，都会直接降低最终上线的UI质量。此种情况真是屡见不鲜。但同时这条又很难做到，因为它不仅要求设计师熟悉用户，也要设计师充分知晓产品的商业逻辑，还要了解系统的运作机制，落下以上任何一个方面，都会在流程图中留下死角。这个问题我不知道有没有更好的解决方案，不过与PD和系分反复沟通是个行之有效的方法；</li><li>考虑到系统的设计和承受能力。系统的运作机制和承受能力必须在绘制流程图过程中考虑进去，以免出现流程图被开发人员枪毙的情况。我的习惯是，在绘制流程图时和系统分析师频繁沟通和交流，确保每一个环节都是可行的；</li><li>确保别人看得懂你的流程图。别人现在看不懂，你自己以后也一样看不懂。为了降低沟通成本，把流程图画清楚吧。 </li></ol>
<h3>5、其它</h3>
<p>（1）想办法把流程图绘制得漂亮些。谁不喜欢漂亮的东西呢？</p>
<p>这是我做过的一些流程图，当然文字全部模糊掉了（放图之前犹豫了好长时间－这样做不知是否有损我的职业道德。我特意请教了<a href="http://www.dbanotes.net/" target="_blank">Fenng</a>，他觉得没事。如果谁觉得有问题请直言不讳地告诉我）。</p>
<p><img class="photo" alt="流程图示例1" src="http://dingyu.me/blog/files/flowchart-howtos/example-flowchart-1.jpg" /></p>
<p><img class="photo" alt="流程图示例2" src="http://dingyu.me/blog/files/flowchart-howtos/example-flowchart-2.jpg" /></p>
<p>（2）如果你在公司里不是一锤定音式的人物的话，你就需要对你的文档进行版本管理。流程图也不例外，什么时间发布的什么版本，都要清楚地标出来，&#8220; 最新&#8221;是个用不得的词。</p>
<p>&nbsp;</p>
<p>我就说这么多了，抛砖引玉而已，蓉儿等人看你们的了！</p>
<p>噢对了，问个事儿：大家有没有觉得我每次写的文章都太长了？</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/xzclog/aggbug/351193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2011-05-27 17:07 <a href="http://www.blogjava.net/xzclog/archive/2011/05/27/351193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UML学习笔记（一）：UML简介</title><link>http://www.blogjava.net/xzclog/archive/2008/05/30/204187.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Fri, 30 May 2008 13:03:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2008/05/30/204187.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/204187.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2008/05/30/204187.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/204187.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/204187.html</trackback:ping><description><![CDATA[<div>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">统一建模语言（</span><span style="font-size: 9pt">Unified Modeling Language</span><span style="font-size: 9pt; font-family: 宋体">，</span><span style="font-size: 9pt">UML</span><span style="font-size: 9pt; font-family: 宋体">）</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">一些术语：</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">系统（</span><span style="font-size: 9pt">system</span><span style="font-size: 9pt; font-family: 宋体">）指的是硬件和软件的结合体，它能提供业务问题的解决方案。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">系统开发（</span><span style="font-size: 9pt">system development</span><span style="font-size: 9pt; font-family: 宋体">）是为客户建立一个系统的过程。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">客户（</span><span style="font-size: 9pt">client</span><span style="font-size: 9pt; font-family: 宋体">）是需要解决问题的人。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">系统分析员（</span><span style="font-size: 9pt">analyst</span><span style="font-size: 9pt; font-family: 宋体">）将客户所要解决的问题编制成文档，并将该文档转交给开发人员。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">开发人员（</span><span style="font-size: 9pt">developer</span><span style="font-size: 9pt; font-family: 宋体">）是为了及决客户的问题而构造软件并在计算机硬件上实施该软件的程序员。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">UML</span><span style="font-size: 9pt; font-family: 宋体">的组成</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">UML</span><span style="font-size: 9pt; font-family: 宋体">包括了一些可以相互组合图表的图形元素。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">1</span><span style="font-size: 9pt; font-family: 宋体">．类图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">一个类（</span><span style="font-size: 9pt">class</span><span style="font-size: 9pt; font-family: 宋体">）是一类或一组具有类似属性和共同行为的事物。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">矩形方框代表类的图标，它被分成</span><span style="font-size: 9pt">3</span><span style="font-size: 9pt; font-family: 宋体">个区域。最上面的区域中是类名，中间区域是类的属性，最下面区域里列的是类的操作。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt" align="center"><span style="font-size: 9pt; font-family: 宋体">举一个例子，属于洗衣机（</span><span style="font-size: 9pt">washing machine</span><span style="font-size: 9pt; font-family: 宋体">）类的事物都具有诸如品牌（</span><span style="font-size: 9pt">brand name</span><span style="font-size: 9pt; font-family: 宋体">）、型号（</span><span style="font-size: 9pt">model name</span><span style="font-size: 9pt; font-family: 宋体">）、序列号（</span><span style="font-size: 9pt">serial number</span><span style="font-size: 9pt; font-family: 宋体">）和容量（</span><span style="font-size: 9pt">capacity</span><span style="font-size: 9pt; font-family: 宋体">）等属性。这类事物的行为包括&#8220;加衣物（</span><span style="font-size: 9pt">add clothes</span><span style="font-size: 9pt; font-family: 宋体">）&#8221;、&#8220;加洗涤剂（</span><span style="font-size: 9pt">add detergent</span><span style="font-size: 9pt; font-family: 宋体">）&#8221;、&#8220;开机（</span><span style="font-size: 9pt">turn on</span><span style="font-size: 9pt; font-family: 宋体">）&#8221;和&#8220;取出衣物（</span><span style="font-size: 9pt">remove clothes</span><span style="font-size: 9pt; font-family: 宋体">）&#8221;等操作。<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML001.JPG" border="0" /><br />
</p>
</span>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">2</span><span style="font-size: 9pt; font-family: 宋体">．对象图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">对象（</span><span style="font-size: 9pt">object</span><span style="font-size: 9pt; font-family: 宋体">）是一个类的实例，是具有具体属性值和行为的一个具体事物。例如，洗衣机的品牌可能是&#8220;</span><span style="font-size: 9pt">Laundatorium</span><span style="font-size: 9pt; font-family: 宋体">&#8221;，型号为&#8220;</span><span style="font-size: 9pt">Washmeister</span><span style="font-size: 9pt; font-family: 宋体">&#8221;，序列号为&#8220;</span><span style="font-size: 9pt">GL57774</span><span style="font-size: 9pt; font-family: 宋体">&#8221;，一次最多可以洗涤重量为</span><span style="font-size: 9pt">16</span><span style="font-size: 9pt; font-family: 宋体">磅</span><span style="font-size: 9pt; font-family: 宋体">的衣物。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt" align="center"><span style="font-size: 9pt; font-family: 宋体">对象的图标也是一个矩形，和类的图标一样，但是对象名下面要带下划线。具体实例的名字位于冒号的左边而该实例所属的类名位于冒号的右边。<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML002.JPG" border="0"  alt="" /><br />
</p>
</span>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">3</span><span style="font-size: 9pt; font-family: 宋体">．用例图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">用例（</span><span style="font-size: 9pt">use case</span><span style="font-size: 9pt; font-family: 宋体">）是从用户的观点对系统行为的一个描述。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">例，一个人使用一台洗衣机，显然是为了洗衣服（</span><span style="font-size: 9pt">wash clothes</span><span style="font-size: 9pt; font-family: 宋体">）。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">代表洗衣机用户的智力小人形被称为参与者（</span><span style="font-size: 9pt">actor</span><span style="font-size: 9pt; font-family: 宋体">）。椭圆形代表用例。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt" align="center"><span style="font-size: 9pt; font-family: 宋体">参与者（它是发起用例的实体）可以是一个人也可以是另一个系统。<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML003.JPG" border="0"  alt="" /><br />
</p>
</span>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">4</span><span style="font-size: 9pt; font-family: 宋体">．状态图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt" align="center"><span style="font-size: 9pt; font-family: 宋体">一台洗衣机可以处于浸泡（</span><span style="font-size: 9pt">soak</span><span style="font-size: 9pt; font-family: 宋体">）、洗涤（</span><span style="font-size: 9pt">Wash</span><span style="font-size: 9pt; font-family: 宋体">）、漂洗（</span><span style="font-size: 9pt">Rinse</span><span style="font-size: 9pt; font-family: 宋体">）、脱水（</span><span style="font-size: 9pt">Spin</span><span style="font-size: 9pt; font-family: 宋体">）或者关机（</span><span style="font-size: 9pt">off</span><span style="font-size: 9pt; font-family: 宋体">）状态。<br />
<img height="349" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML004.JPG" width="81" border="0"  alt="" /><br />
</p>
</span>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">最顶端的符号代表起始状态，最底端的符号表示终止状态。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">5</span><span style="font-size: 9pt; font-family: 宋体">．顺序图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">类图和对象图标大的实系统的静态结构。在一个运行的系统中，对象之间要发生交互，并且这些交互要经历一定的时间。</span><span style="font-size: 9pt">UML</span><span style="font-size: 9pt; font-family: 宋体">顺序图所表达的正式这种基于时间的动态交互。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">例，洗衣机的构件包括一个注水的进水管（</span><span style="font-size: 9pt">Water Pipe</span><span style="font-size: 9pt; font-family: 宋体">）、一个用来装衣物的洗涤缸（</span><span style="font-size: 9pt">Drum</span><span style="font-size: 9pt; font-family: 宋体">）以一个排水管（</span><span style="font-size: 9pt">Drain</span><span style="font-size: 9pt; font-family: 宋体">）。假设已经完成了&#8220;加衣物&#8221;、&#8220;加洗涤剂&#8221;和&#8220;开机&#8221;操作。洗衣服这个用例被执行时按照如下顺序进行：</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">1</span><span style="font-size: 9pt; font-family: 宋体">通过进水管想洗涤缸中注水。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">2</span><span style="font-size: 9pt; font-family: 宋体">洗涤缸保持</span><span style="font-size: 9pt">5</span><span style="font-size: 9pt; font-family: 宋体">分钟静止状态。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">3</span><span style="font-size: 9pt; font-family: 宋体">水注满，停止注水。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">4</span><span style="font-size: 9pt; font-family: 宋体">洗涤缸往返旋转</span><span style="font-size: 9pt">15</span><span style="font-size: 9pt; font-family: 宋体">分钟。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">5</span><span style="font-size: 9pt; font-family: 宋体">通过排水管排掉洗涤后的脏水。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">6</span><span style="font-size: 9pt; font-family: 宋体">重新开始注水。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">7</span><span style="font-size: 9pt; font-family: 宋体">洗涤缸继续往返旋转洗涤。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">8</span><span style="font-size: 9pt; font-family: 宋体">停止向洗衣机中注水。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">9</span><span style="font-size: 9pt; font-family: 宋体">通过排水管排掉漂洗衣物的水。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">10</span><span style="font-size: 9pt; font-family: 宋体">洗涤缸加快速度单方向旋转</span><span style="font-size: 9pt">5</span><span style="font-size: 9pt; font-family: 宋体">分钟。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">11</span><span style="font-size: 9pt; font-family: 宋体">洗涤缸停止旋转，洗衣过程结束。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt" align="center"><span style="font-size: 9pt; font-family: 宋体">图中，对象之间发送的消息有：注入新水（</span><span style="font-size: 9pt">Send fresh water</span><span style="font-size: 9pt; font-family: 宋体">）、保持静止（</span><span style="font-size: 9pt">Remain stationary</span><span style="font-size: 9pt; font-family: 宋体">）、停止注水（</span><span style="font-size: 9pt">Stop</span><span style="font-size: 9pt; font-family: 宋体">）、往返旋转（</span><span style="font-size: 9pt">Ratate back and forth</span><span style="font-size: 9pt; font-family: 宋体">）、排掉洗涤后的脏水（</span><span style="font-size: 9pt">Send soapy water</span><span style="font-size: 9pt; font-family: 宋体">）、排掉漂洗过的水（</span><span style="font-size: 9pt">Send rinse water</span><span style="font-size: 9pt; font-family: 宋体">）等。<br />
<img height="645" src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML005.JPG" width="506" border="0"  alt="" /><br />
</p>
</span>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">6</span><span style="font-size: 9pt; font-family: 宋体">．活动图<br />
</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt" align="left"><span style="font-size: 9pt; font-family: 宋体">用例和对象的行为中的各个活动之间通常具有时间顺序。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt" align="left"><span style="font-size: 9pt; font-family: 宋体"><img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML006.JPG" border="0"  alt="" /><br />
</p>
</span>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">7</span><span style="font-size: 9pt; font-family: 宋体">．协作图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">系统的工作目标是由系统中各组成元素相互协作完成的。例子中洗衣机构件的类集中又增加了一个内部计时器（</span><span style="font-size: 9pt">Internal Timer</span><span style="font-size: 9pt; font-family: 宋体">）。在经过一段时间后，定时器停止注水，然后启动洗涤缸往返旋转。图中的序号代表命令消息的发送顺序。<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML007.JPG" border="0"  alt="" /><br />
</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">8</span><span style="font-size: 9pt; font-family: 宋体">．构件图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">构件图和部署图和整个计算机系统密切相关。<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML008.JPG" border="0"  alt="" /><br />
</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">9</span><span style="font-size: 9pt; font-family: 宋体">．部署图</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt">UML</span><span style="font-size: 9pt; font-family: 宋体">部署图显示了基于计算机系统的物理体系结构。它可以描述计算机和设备，展示它们之间的连接，以及驻留在每台机器中的软件。每台计算机用一个立方体来表示，立方体之间的连线表示这些计算机之间的通信关系。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt"><img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML009.JPG" border="0"  alt="" />&nbsp;</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">如果需要将图中的组织元素分组，或者在图中说明一些类或构件是某个特定子系统的一部分，可以通过将这些元素组织成包（</span><span style="font-size: 9pt">package</span><span style="font-size: 9pt; font-family: 宋体">）来达到此目的。包用一边突起的公文夹形图标来表示。<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML010.JPG" border="0"  alt="" /><br />
</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">注释（</span><span style="font-size: 9pt">note</span><span style="font-size: 9pt; font-family: 宋体">）的图标是一个带折角的矩形，矩形框中是解释性文字。注释和被注释的图元素之间用一条虚线连接。<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML011.JPG" border="0"  alt="" /><br />
</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt; font-family: 宋体">构造型（</span><span style="font-size: 9pt">stereotype</span><span style="font-size: 9pt; font-family: 宋体">）能够使用现有的</span><span style="font-size: 9pt">UML</span><span style="font-size: 9pt; font-family: 宋体">元素来定制新的元素。构造型用尖对括号括起来的一个名称来表示，这个括号叫双尖括号（</span><span style="font-size: 9pt">guillemets</span><span style="font-size: 9pt; font-family: 宋体">）。</span></p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21pt"><span style="font-size: 9pt"><img src="http://www.cnblogs.com/images/cnblogs_com/bear-study-hard/UML/UML012.JPG" border="0"  alt="" />&nbsp;</span></p>
</div>
v
 <img src ="http://www.blogjava.net/xzclog/aggbug/204187.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2008-05-30 21:03 <a href="http://www.blogjava.net/xzclog/archive/2008/05/30/204187.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>