第二章 统一建模语言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. ASP.NET控件之CompareValidator控件

    作用:对Textbox或者其他输入框进行比较验证: 属性:ControlToValidate:要验证的控件: ErrorMessage:错误提示信息: ControlToCompare:与此相比的控件 ...

  2. java 调用SAP RFC函数错误信息

    RFC接口调用SAP如果有异常会通过com.sap.mw.jco.JCO$Exception: 抛出异常 在开发中遇到的异常有如下 用户名密码可能是错误或者用户无权限,确认用户,必要时联系SAP负责人 ...

  3. 帝都Day3——各种dp

    备注:Day1 Day2记得笔记太233,所以就不发了 备注2:Day4~Day7发不发看心情qaq (7.17持续更新中...) 动态规划A 记忆化搜索 & 动态规划初步 8点15: 杨姓d ...

  4. shell学习(14)- who

    Linux who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID.使用的终端机.从哪边连上来的.上线时间.呆滞时间.CPU 使用量.动作等等. 使用权限:所有使用者都可使用. 语 ...

  5. C语言中malloc函数的使用方法

    C语言中malloc是动态内存分配函数.函数原型:void *malloc(unsigned int num_bytes);参数:num_bytes 是无符号整型,用于表示分配的字节数.返回值:如果分 ...

  6. JMETER CSS JQUERY EXTRACTOR

    我想如果你在这里,你可能已经访问了我们关于变量提取的JMeter系列: XPath Extractor:使用XPath Expressions从XML响应中提取内容, Regexp Extractor ...

  7. jdb应用

    场景: 外网可以登录远程主机,但是因为安全限制,不能在外网直接访问docker应用的端口,因此不能远程调试.远程主机shell内部可以连接docker应用,也没有图形界面,没有log,考虑使用原始的j ...

  8. linux 向文本指定位置写入内容

    sed -i "37 r a.txt" test.txt ====== 向test.txt 的第37行后,也就是38行后写入a.txt的内容 sed -i "38i aa ...

  9. vbox和宿主机共享文件夹

    首先,查看vbox安装的ubuntu是否支持vboxsf模块 sudo modprobe vboxsf dmesg | grep vboxsf 如果没有安装,需要安装vboxsf模块:(如果安装了请跳 ...

  10. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...