前言

作为Java应用开发者,日益感觉到对象建模的重要性。系统的复杂性,对于不能全局掌握的我和编程时没有对象模型指导时,编写实现代码时,感觉甚是困难。处于这些原因,这里想借助学习UML建模,在分析需求,分析设计时,对系统,对组件实现进行对象建模,梳理清楚关系,再面向对象实现。

一.UML概述

UML全称Unified Modeling Language(统一建模语言),是一种用于对软件密集型系统的制品进行可视化、详述、构造和文档化的图形语言。UML给出了一种描绘系统的蓝图的标准方法,其中既包括概念性事物(如业务系统的功能和过程),也包括具体性事物(如特定语言的编程语言编写的类、数据库模式和可复用的软件构件)。

上面这段定义摘自《UML用户指南》一书,看着上面的抽象定义,对于刚学者还是比较生涩的。不过先大致了解记住UML是什么,随着后面的深入,应该会有个更直观、深入的了解至理解。

二.UML的发展历程

要回到上个世纪60年代爆发的软件危机开始谈起,随着60年代的高级编程语言的兴起,软件开发急剧增长,规模越来越大、复杂度越来越高,软件的可靠性问题突出,软件的设计不能满足需求,有待提高软件生产率。

随着问题的暴露,软件工程学诞生了,提出了 软件生命周期的概念。软件工程学中包含了诸多对于软件的分析和设计方法论。其中面向对象方法也是这段时间兴起,在编程领域崭露头角。早期面向对象方法在系统设计中的延伸而出现OOD(面向对象设计),随着发展又演变成OOA(面向对象分析),后来两者结合形成OOA&D,其中关于这两个领域出现了繁多的方法论,但是也引起各自差异化不全面的问题,正所谓各有所长。

在这种形式下UML统一建模语言诞生了。汲取各家之所长,演变成了规范。

从上图的演变过程中可以看出,主要经历了四个阶段:

  • 个人联合发起:在G.Booch、J.Rumbaugh和I.Jacobson联合将其各自的方法结合形成UML 0.9版本
  • 多家公司联合推动:演变出UML 1.0和UML 1.1版本
  • 对象管理组织OMG采纳:修订改进推出UML 1.2 1.3 1.4版本
  • 进行一次重大修订,推出UML2.0,并提交到ISO提案

UML是工业标准,应用在面向对象领域建模的语言,提供建模中的概念提供可视化的表达,将面向对象建模概念和表示法统一。

概述UML——UML系列篇一的更多相关文章

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

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

  2. [UML]UML系列——时序图(顺序图)sequence diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  3. [UML]UML系列——用例图中的各种关系(include、extend)

    用例图中的各种关系 一.参与者与用例间的关联关系 参与者与用例之间的通信,也成为关联或通信关系. 二.用例与用例之间的关系 包含关系(include) 扩展关系(extend) 包含关系 (1)  概 ...

  4. [UML]UML系列——类图Class

    相关文章       [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...

  5. [UML]UML系列——类图class的关联关系(聚合、组合)

    关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...

  6. [UML]UML系列——类图class的依赖关系

    相关文章          [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列—— ...

  7. [UML]UML系列——类图class的泛化关系

    系列文章       [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图C ...

  8. [UML]UML系列——类图class的实现关系Realization

    系列文章 [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图Class   ...

  9. [UML]UML系列——包图Package

    系列文章 [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图Class   ...

  10. [UML]UML系列——活动图activity diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

随机推荐

  1. 0,'0','\0',NULL的区别

    0,'0','\0',NULL的区别 1,0是一个值,可以是char ,int ,float,double等类型: 2,'0'是一个字符(char)类型,它的ASCII码值是48: 3,'\0'也是一 ...

  2. Python基础(三)--流程控制之if、while、for,break与continue

    一.流程控制之if……else…… if语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一 if 条件1: 缩进的代码块 elif 条件2: 缩进的代码 ...

  3. 解决Mac下SourceTree每次都让输入密码的问题

    在Mac上操作sourcetree当pull和push时每次都是让输入密码,非常烦人,虽然大概知道是因为SSH什么的问题,但搜索百度也没发现解决办法. 于是乎搜索谷歌,发现如下解决办法. Source ...

  4. 51nod 1594 Gcd and Phi(莫比乌斯反演)

    题目链接 传送门 思路 如果这题是这样的: \[ F(n)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\phi(gcd(i,j)) \] 那么我们可能会想到下 ...

  5. Makefile 中各种函数列举(进行 ing)

    1.wildcard : 扩展通配符    notdir : 去除路径    patsubst :替换通配符 举例:有文件  /a.c   /b.c   /home/a.c   /home/b.c  ...

  6. Linux-grep,awk,sed

    grep 参考1:https://www.cnblogs.com/ITtangtang/p/3950497.html sed 参考:https://www.cnblogs.com/wangqiguo/ ...

  7. 循环递减算法 [a,b,c] 求 ab,ac,bc

    有数组 lineList=[a,b,c] 求所有不同的两两组合 ,结果:ab,ac,bc lineList.forEach((lineA,lineIndex)=>{ ==len){ return ...

  8. Io 异常: Invalid number format for port number

    报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number    at oracle.jd ...

  9. browserslist详解

    https://www.jianshu.com/p/d45a31c50711 https://juejin.im/post/5b8cff326fb9a019fd1474d6 https://githu ...

  10. Python实现电子词典(图形界面)

    Python实现电子词典(图形界面) 终端电子词典:https://www.cnblogs.com/noonjuan/p/11341375.html 文件一览: .├── client.py├── d ...