在介绍UML之前先介绍一下面向对象技术
面向对象软件开发的核心思想:高内聚(封装)、低耦合(消息驱动),使用简洁的接口拼合简单的部件。
什么是UML?
Unified Modeling Language
UML是一种可视化的面向对象建模语言。
UML描述了一个系统的静态结构和动态行为。
UML用图形方式表现典型的面向对象系统的整个结构。
UML从不同的角度为系统建模,并形成系统的不同视图。
UML的构成
UML基本构造块的关系:
事物是对模型中最具有代表的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。
UML中的事物:
1.类(Class)
是一组具有相同属性 、相同操作、相同关系和相同语义的对象的抽象,类是一个集合。一个类实现一个或多个接口。
2.对象(Object)
对象是类的一个实例
3.接口(Interface)
接口是描述某个类或构建的一个服务操作集,接口是类或构建提供的功能、操作、行为
4.主动类(Active Class)
是指其对象至少拥有一个进程或线程,能够启动控制活动的类。
5.用例(UseCase)
对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值且可观察的结果。 用例名通常是动宾结构的词语
6.协作(Collaboration)
定义了一个交互,他是有一组共同工作以提供某协作行为的角色和其他元素构成的一个群体。
对于某个用例的实现可以表示为一个协作。
7.构件(Component)
是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由的替换。
构件可以是源程序、运行时动态链接库、可执行程序。
8.节点(Node)
是运行时存在的物理元素,它表示了一种可计算的资源,它通常至少有一些记忆能力处理能力,一个构件集可以驻留在一个节点内,也可以从一个节点迁移到另一个节点。
9.交互(Interaction)
是在特定语境中共同完成某个任务的一组对象之间交互的信息集合。
10.状态机(Sate Machine)
是一个对象或交互在生命周期内响应事件所经历的状态序列
11.包(Package)
12.注解(Note)
UML中的关系构造块
一.关联
关联中两个特殊的关系
聚合(Aggregation):表示类之间的关系是整体与部分的关系
组合(Composition):部分类的存在完全依赖于整体类的,共存亡。
左边的为聚合,右边的为组合。
二:泛化
继承关系是泛化关系的反关系,子类是从父类中继承的,而父类则是子类的泛化。
子类应与父类完全一致,父类所具有的关联、属性和操作,子类都应具有。
子类中除了与父类一致的信息外,也可以使用子类实例。
三:依赖
四:实现
UML 中的规则
命名(Name),范围(Scope),可见性(Visibility)
可见性 | 规则 | 标准表示法 |
Public | 公有 | + |
Private | 私有 | - |
Protected | 受保护 | # |