UML

统一建模语言是面向对象软件的标准化建模语言。

事务

结构事务

UML模型中的名称,它们通常是模型的静态部分,描述概念或物理元素

图形表示:

行为事务

UML模型中的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为

图形表示:

分组事务

UML模型的组织部分,是一些模型分解成的“盒子”。最主要的分组事务是

图形表示:

注释事务

UML模型的解释部分。这些注释事务用阿里描述、说明和标注模型的任何元素。

图形表示:

关系

依赖

两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义

图形表示:

关联

一种结构关系,它描述了一组链,链是对象之间的链接。

图形表示:

聚集

一种特殊类型的关联,它描述了整体和部分简的结构关系

图形表示:

泛化

泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为

图形表示:

补充:

泛化是继承的反关系,即:子类继承父类,父类是之类的泛化!

实现

类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。

图形表示:

类图

展现了一组对象、接口、协作和它们之间的关系

例图:

对象图

展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照

例图:

用例图

展现了一组用例、参与者以及它们之间的关系。

例图:

交互图

用户对系统的动态方面进行建模。一张交互图表现的是一个交互,由一组对象和它们之间的关系组成,包含它们之间可能传递的消息。表现为序列图、通信图、交互概览图和计时图,每种针对不同的目的,能适用于不同情况。

  1. 序列图

    是场景的图形化表示,描述以时间顺序组织的对象之间的交互活动。

    例图:

  1. 通信图

    强调收发消息的对象的结构组织,也被称作协作图,强调参加交互的对象的组织。

    例图:

  2. 交互概览图

    活动图的变体,描述业务过程中的控制流概览,软件过程中的详细逻辑概览,以及将多个图进行链接,抽象掉了消息和生命线。

    例图:

  1. 计时图

    是一种新增的、特别适合实时和嵌入式系统建模的交互图,关注沿着线性时间轴、生命线内部的和生命线之间的条件改变。它描述对象状态随着时间改变的情况,很像示波器,适合分析周期和非周期性任务。

    例图:

状态图

展现了一个状态机,它有状态、转换、时间和活动组成。状态图关注系统的动态视图,对于接口、类和协作的行为建模尤为重要,强调对象行为的事件顺序。

例图:

活动图

一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。它专注于系统的动态视图,它对于系统的功能建模特别重要,并强调对象间的控制流程。

例图:

构件(组件)图

展现了一组构件之间的组织和依赖。它专注于系统的静态实现视图。它与类图相关,通常把构件映射到一个或多个类、接口或协作。

组合结构图

用于描述一个分类器(如类、构件或用例)的内部结构,分类器与系统中其他组件部分之间的交互端口,展现一组相互协作的实例如何完成特定的任务,描述设计、架构模式或策略。

例图:

内部结构组合结构图:

协作使用组合结构图:

部署图

用来对面向对象系统的物理方面建模的方法。展现了运行时处理结点以及其中构建(制品)的配置。

例图:

包图

用于把模型本身组织成层次结构的通用机制,不能执行,展现由模型本身分解而成的组织单元以及其间的依赖关系。

例图:

软件设计师考试备考之UML的更多相关文章

  1. 软件设计师考试计算机系统知识——CPU

    第一章: 计算机系统知识 1.1.1计算机系统硬件的基本组成 运算器.控制器.存储器.输入设备.输出设备 1.1.2 中央处理器 ①CPU的功能: a.程序控制:CPU通过执行指令来控制程序执行的顺序 ...

  2. 职位-IT:软件设计师

    ylbtech-职位-IT:软件设计师 软件设计师是指能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档的实用性人才.还能够组织和指导程 ...

  3. 软件设计师.NET认证考试测试卷(试题及答案)

    软件设计师.NET认证考试测试卷 注意事项:用蓝.黑色钢笔答题.保持卷面整洁. 得分 阅卷人 一.单项选择(40分,每小题1分) 1.以下标识符中不全是关键字的是(D  ) A.case for in ...

  4. 2、软件设计师要阅读的书籍 - IT软件人员书籍系列文章

    软件设计师在项目组中的地位比软件工程师相对要高一些.但是他们所要阅读的书籍差别还是比较大的.同样的,软件设计师也要阅读比较多的书籍,以能够完成项目的任务为目的,同时还要提高自身在项目组中的竞争地位,而 ...

  5. 软件设计师真题试题&&答案

    软件设计师2013上半年上午试题及答案详解 下午试题 2013下半年上午答案 试题 下午答案 试题 2014上半年上午答案 2015上半年上午答案 2016上半年上午试题

  6. 《软件设计师》——UML

    包含和扩展的区别,在于是否“必须”,如果是必须则是包含,如果不是必须则是扩展. 粗横线表示产生多个并行的任务.

  7. 软件设计师【UML】

    一.概述 二.核心概念 1.用例图 1.包含关系 当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示他们.其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例. ...

  8. 软件开发学习笔记 <一> UML

    UML http://www.uml-diagrams.org http://www.umlchina.com/index.htm 统一建模语言(UML)始于1997年的一个OMG(对象管理组织)标准 ...

  9. 编程学习笔记(第三篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(3)软件开发的现状、UML扩展

    一.软件开发的现状 软件领域正在发生一个巨变,特别是近几年来,软件领域正在发生翻天覆地的变化. 这一变化主要以这个云 + 端大数据, 这些是随着目前最先进的一些技术的产生而产生的. 随着这些新的技术以 ...

  10. 《软件建模与分析》——UML基本概念

    UML-基本概念 UML本质上是一种语言,语言的学习离不开基本的单词(元素)和语法(视图.模型)的学习,今天我们就从它们开始. 元素 类图中的关系 控制权限 继承 实现 依赖:一个类A使用到了另一个类 ...

随机推荐

  1. java (String)强制转换与toString()方法

    1. Object.toString()介绍 Object中是自带有toString()方法的,也就是说java中的所有类的对象都是可以转换为字符串的. 首先,先看看Object.toString() ...

  2. 介绍一款高性能分布式MQTT Broker(带web)

    SMQTTX介绍 SMQTTX是基于SMQTT的一次重大技术升级,基于Java开发的分布式MQTT集群,是一款高性能,高吞吐量,并且可以完成二次开发的优秀的开源MQTT broker,主要采用技术栈: ...

  3. 巧如范金,精比琢玉,一分钟高效打造精美详实的Go语言技术简历(Golang1.18)

    研发少闲月,九月人倍忙.又到了一年一度的"金九银十"秋招季,又到了写简历的时节,如果你还在用传统的Word文档寻找模板,然后默默耕耘,显然就有些落后于时代了,本次我们尝试使用云平台 ...

  4. redis(二)

    Redis简单使用 一. Redis的安装 Redis作为一款目前这个星球上性能最高的非关系型数据库之一. 拥有每秒近十万次的读写能力. 其实力只能用恐怖来形容. mac版本, brew: https ...

  5. NSSCTF_HUBUCTF的web部分题解

    checkin 题目: 主要是php弱比较和序列化知识点考察 <?php $username = "this_is_secret"; $password = "th ...

  6. 【转载】EXCEL VBA 选取非连续的单元格区域——Areas集合

    出处:http://www.360doc.com/content/21/1113/17/77710807_1004011085.shtml 前面我们讲的大多是**并操作单个的单元格,或者是连续的单元格 ...

  7. 基于MongoDb的事件订阅实现hook监听

    详情请参考原文:-- 基于MongoDb的事件订阅实现hook监听(insert,update,remove,find等事件开始,事件成功等)

  8. bbs项目(部分讲解)

    文章评论业务完善 提交评论 评论框里面的内容会清空 然后页面会有一个临时评论样式出现 页面刷新才会出现评论楼样式 研究子评论特性 每个评论右侧都应该有回复按钮 点击就可以填写子评论 点击回复按钮具体动 ...

  9. 软件安装——idea的安装和使用

    Idea的安装和使用 一.下载和安装 下载步骤 官网下载地址:Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBr ...

  10. P4711 「化学」相对分子质量 代码

    #include <bits/stdc++.h> using namespace std; double ret=0; namespace StringUtils { pair<st ...