在与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. HDU 5624 KK's Reconstruction

    这题目测是数据水了.我这种暴力写法显然是可以卡超时的. 假设有2000个点,15000条边,前面10000条不能构成树,后面5000条可以,这种数据显然可以卡超时. #include <stdi ...

  2. Pycharm之远程编程

    mac上似乎暂时不支持. File->New Project 然后Location里选择你存放项目的地址 然后在Interpreter后面的齿轮状(下图红色处)点击后选择Add Remote. ...

  3. IOS即时通讯XMPP搭建openfire服务器

    一.下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfir ...

  4. 2.4 easyui - panel的使用

    <div id="p" class="easyui-panel" title="My Panel"             style ...

  5. Struts加入拦截器后取不到页面参数

    在Struts2的demo项目中添加了一个简单的拦截器,突然发现,Action中取不到页面的参数了 这也是很蛋疼的事情,还好这个比较简单,稍微一查就发现问题: Struts2中很多的功能是用拦截器实现 ...

  6. MAC中使用Vim和GCC编译C程序

    1.打开终端 2.输入以下命令进入vim编辑器: vim a.c 3.进入编辑器后按i进入insert模式,然后键入以下代码: #include<stdio.h> int main(){ ...

  7. UVa 11242 - Tour de France

    题目大意:竞赛用自行车前轮有f个齿轮,后轮有r个齿轮,根据比率计算一个spread(传播率?). 很直接的题,排序然后找商的最大值就好了,uhunt上标明level 4,我都不敢相信会这么简单,还一直 ...

  8. poi 导出excel 异常处理方式--曲线救国法

    excel 导出不算什么新鲜的话题.目前各种生成excel的开源jar包,poi,jxtl等.但是下载过程中如果出现异常该如何处理呢. 翻了之前的几个项目中的excel导出,有的异常就直接抛了出去,有 ...

  9. App外包开发周期一般多长?

    很多人问我,开发一个app要用多长时间.事实上开发一款app没有固定周期的,得因产品而论,你软件的功能需求决定了app外包开发的周期.但是除了app本身以外,人为因素往往对开发周期也有一定的影响.例如 ...

  10. 五 Android Capabilities讲解

    1.Capabilities介绍 可以看下之前代码里面设置的capabilities DesiredCapabilities capabilities = new DesiredCapabilitie ...