第二章 统一建模语言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概述的更多相关文章

  1. 统一建模语言UML

    目录 1. UML定义 2. UML结构 2.1 视图(View) 2.2 图(Diagram) 2.3 模型元素(Model element) 2.4 通用机制(General mechanism) ...

  2. 设计模式——统一建模语言UML

    目录 一.UML的结构 1.1视图 1.2图 1.3模型元素 二.类图 2.1类与类图 2.2类之间的关系 三.序列图 3.1序列图定义 3.2序列图组成元素与绘制 四.状态图 4.1状态图定义 4. ...

  3. 014.统一建模语言UML

    1.UML 的设计目的 UML是为了简化和强化现有的大量面向对象开发方法这一目的而开发的. UML 适用于各种软件开发方法.软件生命周期的各个阶段.各种应用领域以及各种开发工具,是一种总结了以往建模技 ...

  4. 技术人应该学习的行话--UML统一建模语言

    新生代码农如何在硝烟弥漫的商业丛林中生存和崛起? 洞见,让一部分先遇见未来. 最近公司技术部在组织架构师培训,有幸参与.导师老刘特别推荐了UML语言的学习.回想多年来,自己习惯做一些流程图,框图或者所 ...

  5. 统一建模语言UML---类图

    什么是统一建模语言,来看看百科中的介绍统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模 ...

  6. 建模语言UML

    建模语言UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持, ...

  7. 设计模式学习总结(一)——设计原则与UML统一建模语言

    一.概要 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计 ...

  8. UML2.0统一建模语言

      Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规 ...

  9. 【UML】统一建模语言

    如果是准备学习设计模式的同学,可以只了解类图相关的知识 而如果是在准备软件设计师考试的同学,或许会对你有点帮助 正在施工...... 参考博客:https://blog.csdn.net/unique ...

随机推荐

  1. 洛谷P1098 字符串的展开

    P1098 字符串的展开 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输 ...

  2. 2014-11-3 NOIP模拟赛3

    字符串 string.pas/c/cpp 1S/256MB [题目描述] 现在给一个字符串,你要做的就是当这个字符串中存在两个挨着的字符是相同的时就将这两个字符消除.需要注意的是,当把这两个字符消除后 ...

  3. WebAPI学习及Swagger使用

    本文用来保存自己学习WebAPI和Swagger使用过程中参考的文章,以及对WebAPI的初步了解. 1.RESTful风格 WebAPI只支持Http协议: 1.1.WebAPI与MVC的区别 Va ...

  4. Java——利用集合类实现简单斗地主发牌

    import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util ...

  5. day04 ---Linux安装Python3

    如何linux上安装python3 1.下载源代码,方式有2个, 1.在windows上下载,下载完成后,通过lrzsz工具,或者xftp工具,传输到linux服务器中 2.在linux中直接下载 c ...

  6. bitnami-redmine Apache服务启动不起来

    方法一: 通过 netstat -a -o 查看端口占用情况,关闭调用相关端口的进程.  c:\> netstat -a -o  Active Connections  Proto  Local ...

  7. Java安装JDBC驱动教程(SQL Server系列)

    端口一般开放都没问题,默认设置就行,第一步下载JDBC,我自己在使用微软新的JDBC6.0的包的时候出错,后来就退回到JDBC4.0引用,完美使用. SQLJDBC4.0下载地址:点击下载 下载之后, ...

  8. SharePoint 2010开发方面的课堂中整理有关问题

    SharePoint 2010开发方面的课堂中整理有关问题 这是我这几天在做一个SharePoint开发的课程的时候,大家提出的一些问题,及我的解答,分享给更多的朋友参考一下 这个文档,也可以在这里下 ...

  9. Docker | 第二章:第一个Docker应用

    前言 上一章节,已经简单讲解了Docker相关方面的知识,相信大家已经有个概念了.这章节开始,开始进行实践操作.和学习任何一门语言一样,我们今天也开始从Hello,World开始~ 对Docker不了 ...

  10. Django之model基础(查询补充)

    学习完简单的单表查询外,是远远不够的,今天我们对查询表记录做一个补充,接下来来看看基于对象的跨表查询.基于双下划线的跨表查询,聚合查询和分组查询,F查询与Q查询. 比如我们有如下一张表,在model中 ...