UML很强大,表达和记录软件的设计的时候常常会用。但某些方面可能也没有其他描述工具方便。
比如在设计状态机的时候,有时候我也会适用SDL(Specification and Description Language)来做。
UML做出来的状态机的图,可以让你挺容易看出有哪几个状态,会有哪些状态之间的转化。但其实对于状态机,状态转化间可能会做很多事情,比如有N多状态机之间的消息交互时,用UML整出来的图就比较难表达状态转化之间做的这许多事情。而用SDL的话,这许多事情则可以有序的表示出来,消息来自哪个状态机,发往哪个状态机,都一目了然。
随便从网上抓2图,可以比较一下:
UML状态机例子(来自http://commons.wikimedia.org/wiki/Image:UML_state_diagram.png):
SDL状态机例子(来自Q.704):
其实UML和SDL可以结合使用。想快速让别人知道你设计的状态机有哪几个状态,那么用UML;如果状态转化间要做很多事情,那么可以用SDL来表示可以大大方便后面代码的准确实现。
- 千里