类:
类描述了拥有相同特性(属性)、行为(操作)、关系种别以及语义的一组对象
内容:
属性:
属性是对象特征,属性同时表明了对象的唯一性。属性名称是一个名词,描述与对象有关的属性的角色。
方法:
原则上,访问对象或影响其他对象的属性或关系的唯一途径就是方法,直接访问和修改对象的属性是不提倡的。对象的方法由它的类进行定义。
可见性:
共有:除了类本身以外,属性和方法对其他模型元素也是可视的。
保护:属性和方法只对类本身、它的子类或友元是可视的。
私有:属性和方法只对类本身、它的子类和友元是可视的。
实施:属性和方法只在类本身的内部是可视的。
分类:
边界类:
用于描述外部参与者与系统之间的交互。识别边界类可以帮助开发人员识别出用户对界面的需求。
边界类对系统中依赖于环境的那些部分进行建模。实体类和控制类对独立于系统外部环境的那部分进行建模。因此,如果更改 GUI 或通信协议,将只会更改边界类,对实体类和控制类则毫无影响。
实体类:
是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。
控制类:
用于对一个或几个用例所特有的控制行为进行建模。控制对象(控制类的实例)通常控制其他对象,因此它们的行为具有协调性质。控制类将用例的特有行为进行封装。
因为控制类能够表示系统的动态行为,处理主要的任务和控制流,所以它们可以帮助理解系统。
当系统执行用例的时候,就产生了一个控制对象。控制对象经常在其对应用例执行完毕后消亡。
类图:
类图展现了一组类、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。
对象图:
对象图展现了一组对象以及它们之间的关系。对象图描述了在类图中所建立的事物的实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。
对象图就是某一个时刻系统的状态,而上图展示的就是李老师给小明注册信息用于将来上网和小红去上网,王老师记录相关信息,同时赵主任在检查李老师和王老师的工作情况。
类图 VS 对象图 :
类图 | 对象图 |
在类中包含三部分,分别是类名、类的属性和类的操作 | 对象包含两个部分:对象的名称和对象的属性 |
类的名称栏只包含类名 | 对象的名称栏包含“对象名:类名” |
类的属性栏定义了所有属性的特征 | 对象的属性栏定义了属性的当前值 |
类中列出了操作 | 对象图中不包含操作内容,因为对属于同一个类的对象,其操作是相同的 |
类中使用了关联连接,关联中使用名称、角色以及约束等特征定义 | 对象使用链进行连接,链中包含名称、角色 |
类代表的是对对象的分类所以必须说明可以参与关联的对象的数目 | 对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。 |