前言

作为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. 剑指:链表中倒数第k个节点

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 解法 pre 指针走 k-1 步.之后 cur 指针指向 phead,然后两个指针同时走,直至 pre 指针到达尾结点. 即cur与pre始终相距 ...

  2. eclipse activiti 不能自动生成png图片解决方案

    1. Windows-->Preferences 2. Activiti-->Save Actions-->勾选 Create process definition ... --&g ...

  3. MySQL视图及索引

    视图 视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据. 视图的作用.优点: 限制对数据的访问 让复杂查询变得简单 提供数据的独立性 可以完成对相同数据的不同显示 //创建.修 ...

  4. 使用Qemu运行Ubuntu文件系统 —— 搭建SVE学习环境(2)

    开发环境 PC:ubuntu18.04 Qemu:4.1 Kernel:Linux-5.2 概述 由于要学习ARM的SVE技术,但是目前还没有支持SVE指令的板子,所以只能用Qemu来模拟,但是发现Q ...

  5. CodeForces 150E: Freezing with Style

    题目传送门:CF150E. 据说这个傻逼题还有一个 \(\log\) 的做法,但是我还不会. 题意简述: 给定一棵 \(n\)(\(2\le n\le 10^5\))个点的树,边有边权. 定义一条路径 ...

  6. Python面试题(4)

    1.Python下多线程的限制以及多进程中传递参数的方式 Python多线程有个全局解释器锁,这个锁的意思是任一时间只能有一个线程运用解释器.并发不是并行. 多进程间同享数据,能够运用multipro ...

  7. Linux应急响应

    1.识别现象 top / ps -aux 监控与目标IP通信的进程 while true; do netstat -antp | grep [ip]; done 若恶意IP变化,恶意域名不变,使用ho ...

  8. 接口测试:postman

    测试接口,postman和jmeter是用得最频繁的工具. 下面主要介绍postman测试http协议接口的用法,包含get,post(form-data,json,上传文件,cookie). pos ...

  9. linux服务器NAT后无法在内网通过外部IP访问内部服务的问题

    场景一: 将外网访问192.168.100.10的80端口转发到192.168.75.5:8000端口. # iptables -t nat -A PREROUTING -d 192.168.100. ...

  10. 06-cmake语法-include

    用来载入CMakeLists.txt文件,也用于载入预定义的cmake模块. include(cmake/OpenCVMinDepVersions.cmake) .cmake 是一个文本,定义了一个模 ...