??xml version="1.0" encoding="utf-8" standalone="yes"?>
一个哥们在MSN上告诉我Q他们公司的交互设计师只产出程图,q我用什么标准评hE图的好坏。他的说法把我彻底震?jin)-q分工也太细?jin)吧Q也不知道该说他们那里这h好还是不好?/p>
不过仔细x(chng)Q我倒的没有仔l考虑q流E图的好坏,正好借此Z(x)自我ȝ一下?/p>
在我的流E图中,适用于不同目的和功能的Ş犉有各自确定的规范。到目前为止Q我一共定义了(jin)以下一些ŞӞ(x)
Q?Q开始和l束
作ؓ(f)整张程囄头和,必须标清楚到底具体指哪个面Q以免日后出现歧义?/p>
Q?Q网?/strong>
如你所见,|页的Ş状是一个带有漂亮的淡蓝色过渡效果的长方形,它的Ҏ(gu)为深蓝色Q中间写明了(jin)q个|页的用途,括号中的数字代表q个形状所对应的demo文g的名Uͼ比如q里?.htmlQ,我有时会(x)把流E图输出为网늚形式Qƈ把每个网Ş状和它所对应的demo文g链接hQ这h看v来非常方ѝ对OmniGraffle来说q是菜一,如果你被q用VisioQ嗯……
另外Q所有从形状出来的线条,都具有和此Ş状边框一L(fng)颜色。这L(fng)做法不仅看v来漂亮,在复杂的程图中q能L地标明各形状的关pR我没有见过cM的做法,所以这是由我首创也说不定,c(din)?/p>
Q?Q后台判?/strong>
很常见的一个Ş状。我在用法上有一点和其他人的不同在于Q我几乎L?#8216;?#8217;的分支往下流动,?#8216;?#8217;的分支向x(chng)动。因为流E图一般都是从上向下、从左到右绘制的Q遵循上q规则一斚w可以让绘制者不用ؓ(f)选择方向操心(j)Q另一斚w也方便了(jin)读者阅诅R?/p>
Q?Q表单错误页
既然有表单,当然?x)有错误信息。其实这个信息很重要Q用户出错时惶恐不安Q就靠着错误提示来解决问题(sh)(jin)。你不在程N说什么时候显C错误页、不在demo里提供错误页Q有些程序员?sh)(x)直接在|页上写?#8220;错误Q请(g)?#8221;Q所以UI设计师一定要对这个东襉K视v来?/p>
但一般来说也没必要把每种错误都在程图中表示出来Q因为含有两个文本框的表单就有三U出错情况了(jin)Q多?jin)就更不用说了(jin)。所以我都是把错误页变(sh)ؓ(f)表单的附属页Q比如表单页的编号ؓ(f)2Q那么此表单错误늚~号׃2.1开始排下去Q每U错误放C个附属页中,q样E序员在拿到demo时也能搞清楚什么意思?/p>
l合|页和表单的形状Q一个表单验证的程囑ְ是这L(fng)Q?/p>
Q?Q后台动?/strong>
q所有后台动作都l入程图中Q否则流E图׃(x)变成庞然大物?jin)?j)Q只有需要特别强调的后台动作Q和用户体验直接相关的)(j)才用此形状?/p>
Q?Q多重分?/strong>
多重分支指的是几Uƈ列的情况Q每U情况都有发生的可能Q发生哪U取决于分支起始处的判断l果?/p>
Q?Q对话框
有时候一些操作可以利用对话框来完成, q些对话框由js生成Q显C在父界面之上?/p>
Q?Q注?/strong>
q个形状Q比如页面)(j)详细的内容,或者需要解释的业务逻辑Q甚至用h处的情况{,我都?x)放到注释中Q这h降低沟通成本,又可作ؓ(f)备忘?/p>
Q?Q蟩转点
在一个复杂的程图中Q往往出现跌{到另外一个远处结点的情况Q此时如果直接用U连q去Q未免得流E图昑־凌ؕQ用一个蟩转点p决问题(sh)(jin)。在点内标明跌{到的形状的编P画v来容易,看v来也清楚?/p>
此外Q也可以利用跌{Ҏ(gu)分割幅巨大的流E图QYahoo!p么用?/p>
Q?0Q子程
分割幅巨大的流E图Q更好的办法是用子流E?/p>
要注意的是,如果你在程图中使用?jin)子程q一形状Q一定记得同旉上子程图,以消除媄(jing)响项目质量的不确定性因素。另外,在子程图中也可以标明其所属关pR?/p>
Q?1Q流E块
可以用流E块整张流E图分隔为几个部分,qؓ(f)每个部分单独命名Q比?#8220;程?”{)(j)。这样做的目的在于从视觉上复杂的流E图变得更ؓ(f)清晰Q在沟通时也方ѝ?/p>
在团队合作中Q图例是必须的,否则没h知道你画出来的东西到底是什么。即使流E图只给自己看,也最好养成标注图例的好习(fn)惯。其实这道理有点cME序中的注释?/p>
程图信息也是必备的。其内容臛_应包括作者、时间、流E图名称和版本(如下图)(j)。这一斚w可以让读者(其他同事Q在有问题时能够方便地找C者你Q也起到?jin)meta的作用?/p>
Mac下首?a target="_blank">OmniGraffleQW(xu)indows下除?jin)VisioQ似乎没有更好的选择Q虽然Visio已经很难用了(jin)Q?/p>
我觉得一个好的流E图臛_应做C下几点:(x)
Q?Q想办法把流E图l制得漂亮些。谁不喜Ƣ漂亮的东西呢?
q是我做q的一些流E图Q当然文字全部模p掉?jin)(攑֛之前犹U?jin)好长时_(d)q样做不知是否有损我的职业道得我Ҏ(gu)h?a target="_blank">FenngQ他觉得没事。如果谁觉得有问题请直言不讳地告诉我Q?/p>
Q?Q如果你在公叔R不是一锤定韛_的h物的话,你就需要对你的文档q行版本理。流E图也不例外Q什么时间发布的什么版本,都要清楚地标出来Q?#8220; 最?#8221;是个用不得的词?/p>
我就说这么多?jin),抛砖引玉而已Q蓉儿等人看你们的了(jin)Q?/p>
噢对?jin),问个事儿Q大家有没有觉得我每ơ写的文章都太长?jin)?/p>
Unified Modeling LanguageUMLsystemsystem developmentclientanalystdeveloperUMLUML1class3washing machinebrand namemodel nameserial numbercapacityadd clothesadd detergentturn onremove clothes
2objectLaundatoriumWashmeisterGL5777416的衣物?/span>
3use casewash clothesactor
4soakWashRinseSpinoff
5UMLWater PipeDrumDrain12534155678910511Send fresh waterRemain stationaryStopRatate back and forthSend soapy waterSend rinse water
6
7Internal Timer
8
9UML
package
note
stereotypeUMLguillemets