1997年,OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。2003年,UML已经获得了业界的认同。
UML的主要创始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他们最初都有自己的建模方法(OMT、OOSE和Booch),彼此之间存在着竞争。最终,他们联合起来创造了一种开放的标准。
UML成为"标准"建模语言的原因之一在于,它与程序设计语言无关。UML提供了多种类型的模型描述图(diagram)。
最常用的UML图包括:
- 用例图 (Use Case Diagram):从用户角度描述系统功能。
- 类图 (Class Diagram)
- 时序图 (Sequence Diagram) 和协作图 (Coorperation Diagram),描述对象间的交互关系。时序图显示对象间的动态协作关系,强调对象之间消息发送的时间顺序,同时显示对象之间的交互;协作图能直观低显示对象间的协作关系。这两种图和称为交互图。
- 状态转换图 (State Transition Diagram)
- 组件图 (Component Diagram)
- 部署图 (Deployment diagram)
用例图
用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。
类图
类图包含三部分,类名、属性、方法。
- 类名书写规范: 正体字说明类是可被实例化的,斜体字说明类为抽象类。
- 属性和方法书写规范:修饰符 [ 描述信息 ] 属性、方法名称 [ 参数 ] [ :返回类型 | 类型 ] ,
- 属性和方法之前可附加的可见性修饰符: 加号( + )表示 public ;减号( - )表示 private ; # 号表示 protected ;省略这些修饰符表示具有 package (包)级别的可见性。
- 如果属性或方法具有下划线,则说明它是静态的。
- 描述信息使用 << 开头和使用 >> 结尾。
类之间的关系
- 关联:类A与类B的实例之间存在特定的对应关系。 用代箭头的实线表示。
- 依赖:类A访问类B提供的服务。用代虚线的箭头表示。
- 聚集:类A为整体类,类B为局部类,类A的对象有类B的对象组合而成。 用带实线的菱形箭头表示。
- 泛化:类A继承类B。用带实线三角箭头表示。
- 实现:类A实现了B接口。用带虚线的三角箭头表示。
示例图:
UML websites
http://www.uml.org/ Object Management Group™ (OMG™), publisher of MUL
http://www.soyatec.cn/main.php provide an UML tool in the way eclipse plugin
http://www.visual-paradigm.com/ provide an excellent UML tool.
http://www.uml.org.cn/ a website about UML in China.
http://www.ibm.com/developerworks/cn/rational/ IBM Rational, many resources about UML
http://www-306.ibm.com/software/rational/uml/
http://www.itisedu.com/phrase/200602271429302.html an article about UML, and you can find many other relevant resources about UML and software.
http://en.wikipedia.org/wiki/Unified_Modeling_Language
http://www.5iuml.com/ an forum about UML.
http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/index.htm Unified Modeling Language (UML) Tutorial
http://www.chinaitpower.com/Dev/Softproject/UML/index.html