UML有三种使用方式:用作草图绘制,用于蓝图绘制,用于程序编制。

  倾向于将UML用于草图绘制,绘制草图的实质是选择,重点是进行交流,常用的介质是白板。

  草图是故意不完备的,要突出重要的信息。草图是探究性的,蓝图是定义性的。草图用于正向工程(设计阶段),蓝图用于逆向工程(根据已有的代码导出)。详细文档应该根据代码生成。

  UML最重要的是类图和顺序图。

  瀑布风格和迭代风格

  瀑布风格是基于活动来分解项目的,迭代风格根据功能子集来分解项目。

  迭代的一种常用技术是时间框定法,迫使各次迭代的时间长度固定。通过定时搁置功能,使人们能够在搁置日期和搁置功能之间进行明智的选择。

  敏捷过程是强适应性的过程。敏捷方法强调项目成功最重要的因素是人的素质以及人之间的良好协同,敏捷方法倾向使用时间框定的短小迭代。每一次迭代结束时要进行一次迭代回顾。

  RUP本质上是一个迭代过程,分为四个阶段:初始,细化,构造,移交。

  需求分析最重要的是与用户及客户的交流。

  类图

  类图表述系统中各个对象的类型以及其间存在的各种静态关系。

  对不重要的事(如日期或布尔值,一般说,值类型)使用属性,对较为重要的类使用关联。

  非常反感那些除了一组域及其get/set方法没有行为的类。如果你在利用get方法重复调用数据,这预示着某一行为应该移往具有数据的对象。

  依赖应该单向,依赖越少越好,特别谨慎循环依赖,尤其反对包间的循环依赖。对类使用依赖最常见的情形是阐明瞬间关系,比如,把一个对象作为参数传递到另一个对象时。

  不要试图使用对你可用的所有图示法,保持图示简单,集中考虑关键方面。绘制类图时总以使用某种形式的行为技术为宜。

  顺序图

  尽量省去回送。

  单一职责,提倡分布式控制(把处理分散到多个对象里去)。

  减少过程式编程,如if/else,改用多态解决类似问题。

  把顺序图看作各个对象如何交互的形象化表示而不是一种对控制基理的建模方法。顺序图擅长示明对象间的协作,不擅长于示明行为的精确定义。

  CRC卡

  CRC的一个重要部分是认识职责。任意一个类都可以用少量职责对其概括。对具有三项以上职责的卡片提出质问,是否应该把类分解,或把职责合并成一个更高层次