构成面向对象模型的基本元素有类,对象,类与类之间的关系等。

类图是用类和他们之间的关系描述系统的一种图示,是从静态角度表示系统的,因此类图属于一种静态模型。类图是构建其它图的基础。

当类图中存在多个类时,类与类之间的关系可以用表示某种关系的连线,把他们连接起来。

二,定义类

定义类,也就是将系统要处理的数据抽象成类的属性,将处理数据的方法抽象为操作,对于建模者所定义的类通常要有这样二个特点:1,使用来自问题域的概念;2,类的名字用该类实际代表的含义命名

定义类的问题:

1,有没有一定要存储或分析的信息?如果存在需要存储,分析或处理的信息,那么该信息有可能就是一个类,这里讲的信息可以是概念或事件或事务。

2,有没有外部系统?如果有,外部系统可以看作类,该类可以是本系统所包含的类,也可以是本系统与之交互的类。

3,有没有模板,类库,组件等?如果手头上有这些东西,它们通常应作为类,模板,类库,组件可以来自原来的工程,或别人赠送或从厂家购买的。

4,系统中有被控制的设备吗?凡是与系统相连的任何设备都要有对应的类,通过这些类控制设备。

5,有无需要表示的组织机构?在计算机系统中表示组织机构通常用类,特别是构建商务模型时用的更多。

5,系统中有哪些角色?这些角色也可以看成类,比如,用户,系统操作员,客户。

在系统建模时,我们只抽取哪些系统中需要使用的特征作为类的属性。属性有类型,也有不同的可见性,在类图中,共有类型表示加号(+),私有类型表示为减号(-),它们标识在属性名称的左侧,如果属性名称旁没有标识任何符号,标识该属性的可见性尚未定义。注意这里不存在缺省的可见性,类属性的缺省值可以标识在类图中,类的属性中还可以有一种能被该类的所有对象共享的属性,称之为类的作用域属性,也称作类变量,类变量在类图中表示为带下划线,最后一个用花括号括起来的性质串,列出该属性所有可能的取值,枚举类型的属性经常使用性质串,性质串中的每个枚举值之间用逗号分隔。

操作的语法格式:
可见性  操作名(参数表):返回值类型{性质串}
其中可见性和操作名是不可缺少的。
操作名,参数表和返回值类型合在一起称为操作的标记,操作标记描述了使用该操作的方式,操作标记必须是唯一的,操作只能应用于该类的对象。操作的可见性分为共有(加号)和私有(减号)
参数表由多个参数(用逗号分开)构成,参数的语法为:
参数名:类型名=缺省值
操作的具体实现称作方法,它与实现该操作的算法有关,若算法设计得好,可以减少操作的时空开销,除了算法以外,一个操作能否执行还与前提条件和输入参数有关系,所谓前提条件是指操作可以执行的基础。在执行操作时,对象属性状态的改变情况也要记录下来。

类作用域操作只能存取本类总的类作用域属性。
有一种特别的类,叫做持久类,在类图中,如果某个类需要定义为持久的类,那么需要在类的名字旁边附加上{persistent}标志。
三,关系
类图由类和它们之间的关系组成,类与类之间通常有关联,通用化,依赖,和精化等四种关系。
(1)关联关系
关联用于描述类与类之间的连接,由于对象是类的实例,因此,类与类之间的关联也就是其对象之间的关联。
类与类之间有多种连接方式,每种连接的含义各不相同,但外部表示形式相似,故统称为关联。关联关系一般都是双向的。
关联分为:普通关联,递归关联,限定关联,或关联,有序关联,三元关联或聚合等七种
a,普通关联
只要类与类之间存在连接关系就可以用普通关联表示,普通关联的图示是连接二个类之间的直线。
由于关联是双向的,可以在关联的一个方向上为关联起一个名字,而在另一个方向上起另一个名字(也可不起名字),名字通常紧挨着直线书写。为了避免混淆,在名字的前面或后面带一个表示关联方向的黑三角,黑三角的尖角指明这个关联只能用在尖角所指的类上。给关联起的名字最好使用能够反映类之间关系的动词。
如果类与类之间的关联是单向的,则称为导航关联,导航关联采用实线箭头连接两个类,只有箭头所指向的方向上才有这种关联关系。

0...1表示0到1个对象
0...*表示0到多个对象
5...17表示5到17个对象
2表示2个对象
如果图中没有明确表示关联的重数,那就意味着是1,类图中,重数标识在表示关联关系的某一方向上直线的末端。
对象图
类图表示类与类之间的关系,对象图则表示在某一时刻这些类的具体实例和这些实例之间的具体连接关系。
对象图与类图几乎是一样的,主要差别在于对象的名字下面要加下划线。

(b)递归关联
如果一个类与它本身有关联关系,那么这种关联关系称为递归关联。递归关联指的是同类对象之间语义上的连接。
任何关联关系中都涉及到与此关联有关的角色,也就是与此关联相连的类中的对象所扮演的角色。
关联中的角色通常用字符串命名,在类图中,把角色的名字放置在与此角色有关的关联关系的末端,并且紧挨着使用该角色的类,角色名是关联的一个组成部分,建模者可根据需要选用。引入角色的好处是:指明了类和类的对象之间的联系。角色名不是类的组成部分,一个类可以在不同的关联中扮演不同的角色
(c)限定关联
限定关联用于一对多或多对多的关联关系中,在限定关联中,使用限定词将关联中多的那一端的具体对象分成对象集,限定词可以理解为一种关键词,用关键词把所有的对象分开。利用限定关联可以把模型中的重数从一对多变成一对一。类图中,限定词放置在关联关系末端的一个小方框内,紧挨着开始导航的类。
(d)或关联
或关联的图示方法是,具有“或关系”的关联之间用虚线连接起来,虚线上方标注规格说明{或}
(e)有序关联
对象与对象之间的连接可以具有一定的次序,一般情况下,对象之间的关联都是无序的,如果要明确表示关联中的次序关系,一定要将规格说明{排序}放在表示关联的直线旁,且紧挨着对象被排序的类。将对象排序的具体方法可以写在关联的性质中,也可以标识在有序关联的花括号内,比如:{按时间递增顺序排序}
关联类
与一个关联关系相连的类,称作关联类,关联类并不位于表示关联关系的直线两端,而是对应一个实际的关联,用关联类表示该实际关联的一些附加信息。关联中的每个连接与关联类中的对象相联系。
(f)三元关联
类与类之间的关联关系,不仅限于两个类之间,多个类之间也可以有关联关系,如果三个类之间有关联关系,则称之为三元关联,三元关联图示Wie一个大的菱形,菱形的角与关联的类之间用直线相连,三元关联中可以出现角色和重数,但不能出现限定词和聚合
聚合
聚合是关联的特例,如果类与类之间的关系具有“整体与部分”的特点,则把这一的关联称为聚合。
聚合的图示方式为,在表示关联关系的直线末端加一个空心的小菱形,空心菱形紧挨着具有整体性质的类。聚合关系中可以出现重数,角色和限定词,也可以给聚合关系命名。
如果聚合关系中的处于部分方的对象同时参与了多个处于整体方对象的构成,则该聚合称为共享聚合。

如果构成整体类的部分类,完全隶属于整体类,则这样的聚合称为符合聚合。

带角色的复合聚合示例,
a,是带角色名的复合聚合图示;b,是带角色的复合聚合标准语法形式;c,采用将属性名变成角色名,将属性的类型变成类的方法的形式图示复合聚合。
复合聚合的实现方式一般是将部分类中的对象作为整体类的成员对象,将部分类封装在整体类中。

静态建模(类图和对象图)相关推荐

  1. UML建模——静态图(类图、对象图、包图)

    在完成系统的用例图后就可以根据用例图的参与者以及用例来进行UML的静态设计了.从静态设计的图就包括类图.对象图.包图,下面咱们一一叙述 类图 类图是描述类.接口.协作以及他们之间的关系的图,用来显示系 ...

  2. ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式...

    一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...

  3. UML模型中的图-静态图【类图、对象图】

    前言 前一篇博文为大家分享了UML模型中的用例图.在完成用例图后,就可以根据用例图的参与者/角色以及用例来进行UML模型的静态设计了,这将会使用UML模型模型中的静态图.本篇博文继续为大家分享UML模 ...

  4. (三) 类图和对象图

    1. 类图 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图.组件图和配置图等进 ...

  5. UML--静态图(类图、对象图、包图)

    一.概述 类图.对象图和包图归类为静态图(也属于结构行为图). 静态图显示了系统的静态结构,特别是存在事物的种类(例如类或者类型)的内部结构.相互之间的联系.尽管静态图可能包含具有或者描述暂时行为的事 ...

  6. java类关系图_类图和对象图

    类图的概念 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图.组件图和 ...

  7. 系统静态分析建模(类图)

    title: 系统静态分析建模(一) date: 2019-12-03 19:32:43 categories: 系统分析与设计 系统分析的概念 一种问题解决技术,将一个系统分解成各个组成部分,目的是 ...

  8. UML设计图(包含用例图,类图,对象图,包图,构件图,部署图)精华汇总,设计师必备

    UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言.下面将对UML的九种图+包图的基本概念进行介绍以及各 ...

  9. UML用例图、活动图、顺序图、类图、对象图、通信图(协作图)、状态机图特点

    UML– 用例图 用例图展现的是一组用例.参与者和扩展关系.包含关系等.该图的作用是描述系统的行为,即该系统在它的上下文环境中所提供的外部可见服务.注:参与者不一定是人,可以是其它除系统以外的事物. ...

  10. Java类的继承学生研究生类图_UML part3 类图、对象图

    UML part3 类图.对象图 四种关系 1. 依赖关系 ①定义:依赖描述了两个模型元素之间的关系,如果被依赖的模型元素发生变化就会影响到另一个模型元素 ②举例:动物有生命和水进行繁殖,动物和水,动 ...

最新文章

  1. 学python需要什么基础知识-学Python需要什么基础知识?零基础可以学Python吗?
  2. 怎么挪动_你真的懂iPhone上的小圆点怎么玩吗
  3. PL/SQL异常处理(原创)
  4. tmpfs 内存文件系统
  5. Forefront TMG2010中文版安装体验
  6. 阿里第三财季:下沉市场再立功 疫情之下祸福相依
  7. 【总结】C++逻辑与或
  8. 公司的高管,每天都在做什么?
  9. 社交柔道术 - 《影响力》读书笔记(一)
  10. 【抠图工具】图片、视频自动抠图(VideoMatting)
  11. PCL库——点云数据处理
  12. 中了勒索病毒如何自救?20220105
  13. html caption属性的值,如何设置caption属性
  14. 英语四六级资料/四六级真题
  15. crx文件怎么打开(谷歌crx文件怎么打开)
  16. 字符串str.format()方法的个人整理
  17. 计算机课件制作ppt,计算机应用基础_幻灯片制作ppt课件
  18. 工程伦理 清华慕课网答案
  19. 工兵扛军旗游戏新玩法
  20. 打开 CMD 的方式+常用的Dos命令

热门文章

  1. 17. GeoTrellis数据读取篇之读取本地文件系统COG格式数据
  2. ACPI电源管理中的S0 S1 S2 S3 S4 S5
  3. 从餐厅服务员到一线电商程序员(中)
  4. android如何实现打分功能,Android App中使用RatingBar实现星级打分功能的教程
  5. 使用Python操作MongoDB
  6. C++编写的简易宝可梦对战小游戏
  7. LeetCode 365水壶问题(python)
  8. 效率源希捷7200.10硬盘F级修复教程
  9. python爬取酷狗音乐排行榜
  10. wagon-maven-plugin插件详解