在与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. Java中的Runtime类

    Runtime类描述了虚拟机一些信息.该类采用了单例设计模式,可以通过静态方法 getRuntime()获取Runtime类实例.下面演示了获取虚拟机的内存信息: package Main; publ ...

  2. 可用于Windows Server 2008 R2的Xbox One手柄、接收器驱动

    让客厅里的Gen8可以玩FC和PS1游戏,折腾了半天,终于将Xbox One手柄驱动弄好: http://www.drvsky.com/Microsoft/Xbox_One.htm http://ww ...

  3. VS2013 opencv2.4.8

    [转]http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html vs2010+opencv2.4.0:http://www ...

  4. 今天学习了下,如何破解wifi

    破解了隔壁的wif,得罪了,哥哥要蹭网一段时间. 主要思路:安装linux环境.这里我选择了虚拟机加cdlinux .运行里面的min抓得握手包,然后淘宝花10元跑下包,因为自己的电脑不行,跑费时间太 ...

  5. java系列--HTTP协议

    一.HTTP请求信息 请求行 请求头 空行 消息体 1.防盗链: 枚举类型: 二.中文乱码问题 1.Get提交 String username = request.getParameter(" ...

  6. 使用命令创建github代码仓库,push本地仓库到github远程代码仓库

    1.利用命令创建github远程代码仓库 在将本地代码push到github远程代码仓库之前,总是需要新建github代码仓库,在将本地仓库关联到github远程仓库.其中最为繁琐的操作是建立gith ...

  7. Leetcode 175. Combine Two Tables

    Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId ...

  8. Voilin 之 握弓

    握弓要像拿杯子,手要圆:整个手型是左倾.

  9. windows apache 开启 GZIP

    从服务端优化来说,通过对服务端做压缩配置可以大大减小文本文件的体积,从而使加载文本的速度成倍的加快.目前比较通用的压缩方法是启用gzip压缩.它 会把浏览器请求的页面,以及页面中引用的静态资源以压缩包 ...

  10. HDU-1879-继续畅通工程(并查集)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1879 这题做的我好尴尬,虽然自己做出来了,感觉也不难,不过怎觉得, 对这个最小生成树的理解,好像总隔了 ...