UML--类建模

一 三种模型

三种模型是分别独立,但有相互交叉连接的。不同的模型有着有限而清晰的连接;好的设计会隔离系统的不同层面,限制它们的耦合。典型的软件合并了三种模型:它使用数据结构(类模型),按时间设定操作顺序(状态模型),并在对象间传递数据和控制(交互模型)。每种模型包含了对其他模型中的实体的引用。
类模型描述了系统内部对象及其关系的静态结构(属性,操作,关系,标识)。类模型界定了软件开发的上下文——论域。类模型包含类图。
类图的结点是类,弧表示类间的关系。
状态模型描述了对象随着时间发生变化的方面。状态模型使用状态图确定并实现控制。状态模型使用状态图确定并实现控制。
状态图的节点是状态,弧是由事件引发的状态间的转移。
交互模型描述了系统中的对象如何协作以完成更为宽泛的任务。交互模型自用例开始,用例随后会有顺序和活动图详细描述。 用例描述系统和外部参与这之间的交互的主要内容;顺序图显示交互对象以及发生的时间顺序;活动图描述重要的处理步骤。

二 类建模

在类图中,类名描述了拥有相同特性(属性),行为(操作),关系种别以及予以的一组对象。话不多说,一图胜千言。
类和对象
属性和值
操作
类图模型

三 链接和关联

链接(对象概念上的)是对象之间物理上或者概念上的连接。其表示方法是对象间的一条直线(直线可以由几条线段组成)。
关联(类概念上的)描述了有着共同的结构和语义的一组链接。这里说一组连接可能是因为类的对象可以有多个,但他们的关联是相同的,但链接是独立的。

多对多关联
一对一关联
零或一多重性

关联终端名可以统一对同一个类的多重引用。在创建类图是应该正确使用关联端名,不应该为每个引用引入一个独立的类。关联终端名可以区分对象,所以附在一个类上的关联远端的所有名称都必须是唯一的。名字可以消除对类的多次引用可能产生的歧义并促进导航。对于同一个类的两个对象之间的关联来说,关联名是必须的。
关联端名
关联端名--区分多重关联
关联端名--多重引用

排序是关联固有部分,可以通过在适当的关联终端旁边标上“{ordered}”来表示一个有序的对象集合。
对关联端的对象排序

是允许重复值的元素,序列是允许重复值的有序元素集合。这个标注是针对对象而言,对对象图进行约束。
序列示例

关联类是一种关联,也是一个类,可以使用属性来描述关联的链接。理解起来就像把一组关联相关属性的合并组织成一个类,使用一个关联来连接类。通过虚线连接依附与关联的一个方框。
关联类1
关联类2
关联类的关联类

限定关联中被称为限定符的属性会消除关联多端的对象的歧义,可以将关联的有效多重性降为一对一
限定关联
限定关联

四 泛化和继承

泛化是指类(父类)与其一个或多个变体(子类)之间的关系。利用类的相似性和差异来组织类,同时描述对象的结构。父类拥有公共属性,操作和关联。子类增加了特定的属性,操作和关联。每个子类继承了父类的特征,并且可以有多层继承。泛化有时被成为”is-a”的关系。泛化集名称是一个枚举属性,标明了某一特性的泛化抽象了对象的某个方面。


集合图像继承

五 枚举

枚举类型是对值的一种描述。数据类型包括数字,字符串,枚举。枚举是由有限取值合集组成的一种数据类型。

建模枚举
多重性为属性的每个实例确定可能取值的数目。最常用的规范是强制单值[1],可选单值[0..1]以及多值[*]。多重性确定属性是强制的还是可选择的。多重性也可以指明属性是单个值还是集合。
属性多重性
作用域是表示一个特征是否可用于对象或类。下划线用于区分类作用域(静态)和对象作用于的特征。约定分别在属性和操作方框的顶部列出类作用域的属性和操作。
作用域

可见性是指方法引用其他类的特征能力,取值包括public,protected,private,package(在同一个包中作为目标类定义的类的方法可以访问包)。
可见性的表示: public在特性前面“+”,protected在特性前面“#”,private在特性前面“-”,package在特性前面“~”。如果没有前缀,就表明没有可见信息。
聚合是一种强类型的关联(特殊的关联),其中一个聚类对象由多个部件构成。聚合可以定义成装配件类与某个部件类相关联的一种关系。带有多种装配件,对应于许多个聚合。聚合最重要的特性是传递性,同时聚合也是反对称的。
聚合
组合是某种形式的聚合,有两个额外的约束。一个部件至多隶属于一个装配件。而且,一个部件一旦被指定给一个装配件,它就会与装配件有着相同的生存期。因此,组合意味着整体拥有其各个部分。
组合

传播

约束
对象上约束
关联之间的子集约束


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 我们在进行项目的时候,通过使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序...
    充满活力的早晨阅读 4,905评论 2 34
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,934评论 6 13
  • 一直不知道想要什么,得到什么,但还是久久的凝望着,盼望着。 一些事,早已有了答案,可就是不想去碰...
    小二随笔阅读 118评论 0 0
  • 今天放学回家你和往常一样,很自觉的去写作业,吃过晚饭,爸爸陪着弟弟,我陪着你一起读书和你一起感受国学经典,这已经成...
    赵晗睿阅读 214评论 0 4
  • 这是一个温暖而又悲伤的故事。很久以前,一场暴风雨过后,慈母龙妈妈在树林里发现了一个小小的蛋。她温柔地抚摸着捡来的蛋...
    钟军燕阅读 749评论 0 3