2017.12.23 第二章 统一建模语言UML概述
第二章 统一建模语言UML概述
(1)为什么要建模
模型是某个事物的抽象,其目的是在构建这个事物之前先来理解它,因为模型忽略了那些非本质的细节,这样有利于更好的理解和表示事物;
在软件系统开发之前首先要有理解所要解决的问题。对问题理解的越透彻就越容易解决它,为了更好地理解问题人们通常使用建立问题模型的方法。
1.模型概念
·模型是为了理解事物而对事物做出的一种抽象,而对事物规范的、无歧义描述的一种工具。
·常见的模型分为三种:数学模型、描述模型、图形模型。
·含义如下:
数学模型
是描述系统技术方面的一系列公式,用来精确表示系统的某些特征
描述模型
是描述系统某些方面的叙述性的备忘录、报表或列表
图形模型
是由一组图形符号和组织符号的规则组成
2.模型的作用
5个方面的作用:
1.精确捕获和表达系统的需求与应用领域中的知识
2.便于和各个领域的专家审查
3.降低负责性
4.提高开发效率和质量
5.模型可以作为软件系统维护和升级时的文档
3.建模的目的
可以更好的理解问题
可以加强人员之间的交流
可以更早地发现错误或疏漏的地方
可以获得设计结果
模型为最后的代码生成提供依据
4.建模原则
1.准确原则
2.分层原则
3.分治原则
4.标准原则
(2)什么是UML
1.定义
统一建模语言(unified Modeling Language) UML是对软件密集型系统中的制品进行可视化、详述、构造和文档化的语言。
2.UML的特点
特点是:
1.统一的标准
2.面向对象
3.可视化
4.独立于过程
5.概念明确
3.UML的构成
UML的概念模型由3个要素构成:
1.UML基本构造快
2.支配这些构造快如何在一起的规则
3.一起运用于整个UML的公共机制
·基本构造块
··事物:(4种)
结构事物:是模型的静态部分,描述概念元素或物理元素。结构事物总称为类目。包括类、接口、协作、用例、主动类、组件、制品、结点
行为事物:是模型的动态部分,描述跨越时间和空间的行为。包括交互、状态机、活动。
分组事物:是模型的组织部分,由模型分解成的“盒子”。主要的分组事物是“包”
注释事物:是模型的注释部分,用来描述、说明、标注模型中的任何元素。
··关系:(4种关系)
依赖:是一种使用关系,说明一个事物使用另一个事物其中一个元素发生变化会影响另外一个事物。
关联:是一种结构关系,说明一个事物的实例
泛化:泛化关系是一般事物(称为父类或超类)和该事物的较为特殊的种类(称为子类)之间的关系
实现:是类目之间的关系,在两种地方会遇到实现关系:一种是在接口和实现他们的类或构件(为其提供操作或服务的类目)
··图:(10种类型)
用例图(use case diagram):描述的是外部用户看到的功能一组用例和参与者的之间的关系
顺序图(sequence diagram):描述对象之间的传递消息的时间顺序
协作图(collaboration diagram):再一次交互中有意义的对象和对象间的链连接。协作图展现了收发信息的对象的结构组织
类图(class diagram):类图描述静态结构,类图展现了一组类、接口、协作和他们之间的关系
对象图(object diagram):描述在某个时刻的静态结构
状态图(statechart diagram):描述一个类对象所经历的历程中的各个状态和连接这些状态的变迁。每个状态描述一个对象在其生命周期中满足某条件的一个时间段内的行为。状态图专注于对象的动态视图。
活动图(activity diagram):活动图专注于动态视图
组件图(component diagram):组件是系统设计的模块化部件,它的实现隐藏在一组外部接口之后。
部署图(deployment diagram):部署图专注于体系结构的静态部署图
包图(package diagram):表达系统的总体结构模型
·语义规则
··名字
任何一个UML成员都要有一个名字
··作用域
所定义的内容咋起作用的上下文语境
··可见性
UML成员可以被其他成员引用看见和使用
··完整性
UML成员之间相互连接的合法性和一致性
··执行
UML成员在运行时的特性,描述运行或模拟状态模型含义
·公共机制
··规格说明
··修饰
在矩形符号上面附加一定的语义
··公共划分
3种划分方式。
类和对象的划分:类是一种抽象,对象是类的具体表现
接口与实现的分离:接口声明了一个合约,实现表示了对该合约的具体实施,它负责如实地实现接口的完整含义
类型与角色的分离:类型声明了实体的种类,角色描述了实体在语境中的含义
··扩展机制
··构造型
构造型也称为版型
构造型基于已有的建模元素引入新的建模元素
··标记值
可以用来创建构造型的额规范说明的新信息,使得用户也可以从现有的构造块中派生 ,它是带有关键字的
··约束
可以用来增加新的规则或修改现有的规则
(3)UML中的视图
4种建模技术:
需求建模:用过用例图描述需求;
静态建模:通过类图和对象图描述软件系统的静态元素;
动态建模:通过协作图、顺序图、活动图、状态图描述静态元素的行为;
构架建模:通关过组件图和部署图,在多个层次上描述软件系统的构架.
UML中的视图包括:
用例视图(use case view)、逻辑视图(logical view )、进程视图(process view)、实现视图(implementation view )、部署视图(deployment view)。这五个视图一般称为“4+1”视图,其中用例试图是“4+1”视图的核心.
(3)一个UML的例子
1.需求分析
2.采用用例驱动的分析方法分析需求的额主要任务是识别出系统的参与者和用例,用例图是被称为参与者的外部用户所能观察道德系统功能的模型图;
3.活动图显示了系统的流程,可以是工作流也可以是事件流在系统分析阶段使用;
4.顺序图描述了对象之间传递消息的时间顺序。在顺序图中,每一个的对象用一条生命线来表示,即用垂直线代表整个交互过程中对象的生命周期。
5.协作图在一次交互中有意义的对象和对象之间的链建模.在协作图中直接相互通信的对象之间有一条直线,没有画线的对象之间不直接通信
6.类图描述系统的静态结构,展现了一组类、接口、协作和他们之间的关系,需要永久存储实体类之间的关系用关联关系表示。
7.状态图是一个类对象所经历的所有历程的模型图,它由对象的各个状态和连接这些状态的变迁组成
2017.12.23 第二章 统一建模语言UML概述的更多相关文章
- 统一建模语言UML
目录 1. UML定义 2. UML结构 2.1 视图(View) 2.2 图(Diagram) 2.3 模型元素(Model element) 2.4 通用机制(General mechanism) ...
- 设计模式——统一建模语言UML
目录 一.UML的结构 1.1视图 1.2图 1.3模型元素 二.类图 2.1类与类图 2.2类之间的关系 三.序列图 3.1序列图定义 3.2序列图组成元素与绘制 四.状态图 4.1状态图定义 4. ...
- 014.统一建模语言UML
1.UML 的设计目的 UML是为了简化和强化现有的大量面向对象开发方法这一目的而开发的. UML 适用于各种软件开发方法.软件生命周期的各个阶段.各种应用领域以及各种开发工具,是一种总结了以往建模技 ...
- 技术人应该学习的行话--UML统一建模语言
新生代码农如何在硝烟弥漫的商业丛林中生存和崛起? 洞见,让一部分先遇见未来. 最近公司技术部在组织架构师培训,有幸参与.导师老刘特别推荐了UML语言的学习.回想多年来,自己习惯做一些流程图,框图或者所 ...
- 统一建模语言UML---类图
什么是统一建模语言,来看看百科中的介绍统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模 ...
- 建模语言UML
建模语言UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持, ...
- 设计模式学习总结(一)——设计原则与UML统一建模语言
一.概要 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计 ...
- UML2.0统一建模语言
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规 ...
- 【UML】统一建模语言
如果是准备学习设计模式的同学,可以只了解类图相关的知识 而如果是在准备软件设计师考试的同学,或许会对你有点帮助 正在施工...... 参考博客:https://blog.csdn.net/unique ...
随机推荐
- JVM调试过程
一.查看系统情况 Linux查看CPU和内存使用情况 二.查看JVM启动参数 2.1 jcmd JVM诊断之查看运行参数
- 51nod1521(set.upper_bound())
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1521 题意:中文题诶- 思路: 我们先看一下set容器的三个 ...
- Gson本地和服务器环境不同遇到的Date转换问题 Failed to parse date []: Invalid time zone indicator
GoogleGson在处理Date格式时有个小陷阱,在不同环境中部署时可能会遇到问题. Gson默认处理Date对象的序列化/反序列化是通过一个SimpleDateFormat对象来实现的,通过下面的 ...
- ELK系列(4) - Elasticsearch cannot write xcontent for unknown value of type class java.math.BigDecimal
问题与分析 在使用Elasticsearch进行index数据时,发现报错如下: java.lang.IllegalArgumentException: cannot write xcontent f ...
- PAT甲级——1098 Insertion or Heap Sort (插入排序、堆排序)
本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90941941 1098 Insertion or Heap So ...
- 4、kvm相关网卡操作(添加、删除)
查看虚拟机的网卡信息 virsh domiflist privi-server 添加临时网卡 virsh attach-interface privi-server --type bridge --s ...
- avro-maven-plugin
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- shell命令学习
shell快速入门 http://www.jb51.net/article/28514.htm 1.http://www.cnblogs.com/zhutoujin/articles/4678743. ...
- 017 Letter Combinations of a Phone Number 电话号码的字母组合
给定一个数字字符串,返回数字所有可能表示的字母组合. 输入:数字字符串 "23"输出:["ad", "ae", "af" ...
- (转)认识 Linux 文件系统
7.1 认识 Linux 文件系统 原文:https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/59.html Linux 最传统 ...