在与uml进行了第一次的接触后,就被uml的博学多才给迷住了,uml居然可以做这么多的东西。才思敏捷的uml是设计软件的好帮手。

你还在为自己的类图不会设计而感到无助吗?你还在为你的对象不好确定而感到苦恼吗?你还在为软件各个对象之间的交互屡不清而睡不着觉吗?你还在为软件的部署而感到上愁吗?——去使用uml吧,帮你快速的搞清楚所有软件设计的困扰,你还在等什么!!

据说这是有人为uml专门设计的广告词,我看可能性不大——uml的便捷几乎让所有设计人员倾倒,哪里还需要什么广告呢?

好的,书归正传,我们来说一下uml的概述。

老规矩,先来张图:

概述主要为我们介绍了什么是uml;uml的构成;uml与面向对象的关系以及uml的各种图的应用。

先来看一下uml是啥:

uml全称unified modeling language 统一建模语言。uml并不是方法,也不是一堆图片,而是一个建模语言。

它是面向对象的程序设计催生的,他的历史就像是中国的历史上的文化一样,先是诸子百家,百花齐放的时代,那时uml只是其中的一种,再往后就是儒家、法家、墨家等几位大家的出现,uml在这个时期还是booch和omt这两个分开的建模工具。再往后就是罢黜百家,独尊儒术。uml在这个时期正式形成。当真是一个分久必合的过程啊。

uml有一个作用,就是建模,那么问题就来了:啥是模型呢?为啥要建模?模型又怎么去建立?他需要遵循什么原则呢?

模型是什么呢?我们都叠过纸飞机,纸飞机就是飞机的模型。那么模型有啥用呢,为什么要去建立模型?模型可以用较少的成本,让我们对事物有个很好的了解。模型的建立遵循抽象、分解、形式化的原则。

uml有了大概的了解后,咱么就说说当下最火的面向对象。

说面向对象的第一步,就是要明了啥是对象?什么又是面向对象的概念?面向对象的设计涉及什么关系?它有什么特性?如何评测?

先说啥是对象?简单的说,我们生活中的名词差不多都是对象,比如:鸡、鸭、鱼、鸟等等。面向对象就是把现实生活中的东西用代码表示出来。如何描述呢?我们在描述一个人的时候,一般会这么说:这个人叫啥、有多高、住在哪、有啥特长等。面向对象的设计同样也是如此,只不过我们是描述给计算机听的。因为电脑不能自己去寻找信息,只能接收我们的输入信息,所以我们要说的比较详细一点:

首先,我们要告诉电脑,存在这样一个种类,我们称之为人类,他们都有名字、有身高、有住址、特长等。电脑就会把我们的输入记录下来。

然后,我们接着跟电脑说:现在我要说人类里面的一个具体的人了。电脑就会把我们之前告诉他的人类的记录调出来,人类都有名字、身高、住址、特长等属性。然后就会给你个提示:你之前告诉我说人类都有名字、身高、住址、特长。那么你说的这个人的名字、身高、住址、特长分别是啥啊?

我们就像填空题一样告诉电脑他的名字叫张三、身高一米七三、住在第三大街、特长是睡觉。前面所说的人类就是类,而后面的具体的那个叫做张三的人就是实例化的对象。涉及到面向对象的概念还有很多,比如:消息、封装、继承、多态、聚合等。

那么它们之间涉及的关系呢?都有啥?

面向对象中的关系有:依赖、继承、关联、实现。

面向对象有啥特征吗?有的。他的特征就是:封装、继承和多态。这三个特征的含义如下:

封装:张三有身高、体重、年龄、配偶、住址、等等属性。平时也用不到所有的,所以就把这些属性都写好后,放起来,大家不必知道这个类都有啥属性,只是在使用的时候可以通过接口去调用。这就是封装。

继承:我们刚才说的人类,人类都有身高。人类又可以分为男人类和女人类,那么男人类和女人类也都会有身高这个属性。这就是继承。

多态:张三走在路上,被人打了一下,张三就哭了;李四走在路上,被人打了一下,李四就把打他的人揍哭了。同样都是被人打了一下,张三的回应是哭,李四的回应是把打他的人揍哭。这种在相同的条件下的不同反应就是多态。

面向对象的发展,催生了uml。uml又是如何构成的呢?

先来看着张图:

uml的组成分为:构造块、规则和机制。

构造块分为事物,关系,和图。

具体的内容,还要在学习各种图的时候才能详细的了解。

规则就简单了,就是人定的一些约定。便于统一的开发应用。uml的机制有:1.修饰2.注释3.规格说明4.扩展机制。修饰就是下划线啊、斜体啊等。注释和规格说明都是比较常见的就不在赘述了。扩展机制是允许uml使用人员自定义一些构成造型、标记值和约束。为元素添加新的定义。

uml的概述可以让我们对uml有一个大概的了解,便于后面的学习。

uml视频系列(二)——uml的概述的更多相关文章

  1. sql server 备份与恢复系列二 事务日志概述

    1.1  日志文件与数据文件一致性 在上一章备份与恢复里了解到事务日志的重要性,这篇重点来了解事务日志. 事务日志记录了数据库所有的改变,能恢复该数据库到改变之前的任意状态.在sql server实例 ...

  2. [时序图笔记] 步步为营UML建模系列五、时序图(Squence diagram)【转】

    概述 顺序图是一种详细表示对象之间以及对象与参与者实例之间交互的图,它由一组协作的对象(或参与者实例)以及它们之间可发送的消息组成,它强调消息之间的顺序. 顺序图是一种详细表示对象之间以及对象与系统外 ...

  3. UML学习(二)-----类图

    UML学习(二)-----类图 http://www.cnblogs.com/silent2012/archive/2011/09/07/2169946.html http://www.cnblogs ...

  4. 【UML】NO.53.EBook.6.UML.2.001-【Thinking In UML 大象 第二版】- 概述

    1.0.0 Summary Tittle:[UML]NO.53.EBook.6.UML.2.001-[Thinking In UML 大象 第二版]- 概述 Style:DesignPattern S ...

  5. UML视频

    https://www.bilibili.com/video/av34973179/?p=1 北京 圣思园 UML视频

  6. [知识库分享系列] 二、.NET(ASP.NET)

    最近时间又有了新的想法,当我用新的眼光在整理一些很老的知识库时,发现很多东西都已经过时,或者是很基础很零碎的知识点.如果分享出去大家不看倒好,更担心的是会误人子弟,但为了保证此系列的完整,还是选择分享 ...

  7. 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)

    项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...

  8. Netty4.x中文教程系列(一) 目录及概述

    Netty4.x中文教程系列(一)目录及概述 Netty 提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. Netty是一个NIO客户端 服务端框架 ...

  9. [知识库分享系列] 二、Web(高性能Web站点建设)

    知识库分享系列: [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍 此知识库之所以为 Web 系列,因为和 .NET 没有完全的关系,其中的技术和实践实用于各 ...

随机推荐

  1. JQuery实现超链接鼠标提示效果

    一.第一种方法用Jquery<p><a href="http://www.nowamagic.net/" class="tooltip" ti ...

  2. hadoop重新启动之后Datanode无法启动的问题

    每次将hadoop重新启动之后我们查看进程就会发现,namenode成功启动,然而datanode却不能重新启动,格式化以后也不行,百思不得其解,最后在终于在厦门大学的一篇博客里面找到了解决的方法,我 ...

  3. linux学习小记:如何查看linux服务器的cpu数量,内核数,和cpu线程数

    查看物理cpu个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 查看每个cpu核心数量 grep 'core id' /proc/cpuinf ...

  4. _foreach

    从JDK1.5之后增加的foreach循环取消索引 for(类型 变量 : 数组 | 集合){ 每一次循环会自动将数组内容设置给变量 } 范例: ,,,} ; for(int x : i){ Syst ...

  5. UVa 10132 - File Fragmentation

    题目大意:有n个相同的文件,每个文件从中间分为两半,现在给你这2n个文件碎片,求原来完整的文件. 找出文件碎片长度的最大值和最小值,二者相加可得到原来文件的长度len.然后逐个进行拼接,将拼接后长度等 ...

  6. drag file upload xhr 拖拽异步上传文件

    <div id="droptarget" style="width: 500px; height: 200px; background: silver"& ...

  7. shell 远程备份日志

    #!/bin/bash #Function:自动备份给定列表中的目录或文件,并且可以保留N天备份的档案. #可备份至远程主机指定的目录下,但需本机能免密码登录到远程主机,用到ssh-keygen #该 ...

  8. freemarker配置,使用

    最近在项目中用到freemarker,总是报一些莫名其妙的错误. 调查得知是由于在配置文件中属性[tag_syntax]的设置问题,我们的环境下该属性(auto_detect)默认设置了自动检测,也就 ...

  9. JDBC oracle 错误总结

    ORA-28040: No matching authentication protocol jdk:1.8 oracle:12c 使用ojdbc14.jar 报错:ORA-28040: No mat ...

  10. 搭建自己的BT下载平台服务器

    [原理基础] BT(Bit Torren比特流)是由国外的一名叫Bram Cohen的程序员开发的下载软件,可以说它是目前网络是非常流行的一个多点下载的P2P软件,它最显著的特点就是:下载的人越多,速 ...