一、UML的定义

UML,即Unified Modeling Language又称统一建模语言或标准建模语言,是始于1997年一个OMG(对象管理组织)标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

UML是一种是面向对象软件的标准化建模语言,要弄清UML,首先得搞清楚面向对象和面向过程。

二、面向对象和面向过程

面向对象和面向过程是两种不同描述世界的方法。

面向过程:世界视为过程,世界由一个个相互关联的小程序构建来的。但是构成一个系统的因素太多,要把所有可能的因素都考虑到,把所有因素的因果分析都分析清楚,再把这个过程模拟出来实在是太困难了。

面向对象:世界视为对象,世界由一个个相互独立、相互之间没有因果关系的对象构成。但是难点在于为什么这样抽象对象?怎样组合对象?对象的组合表达了怎样的含义?

以知乎上的一个例子来区分面向过程和面向对象:

面向过程:
        为了把大象装进冰箱,需要3个过程。
        1) 把冰箱门打开(得到打开门的冰箱)
        2) 把大象装进去(打开门后,得到里面装着大象的冰箱)

3) 把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)

每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱:
        冰箱开门(冰箱)
        冰箱装进(冰箱, 大象)
        冰箱关门(冰箱)

面向对象:
        为了把大象装进冰箱,需要做三个动作(或者叫行为)。
        每个动作有一个执行者,它就是对象。
        1) 冰箱,你给我把门打开
        2) 冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)

3) 冰箱,你给我把门关上

依次做这些动作,就能把大象装进冰箱:
        冰箱.开门()
        冰箱.装进(大象)
        冰箱.关门()

三、面向对象的困难

面向对象是把世界看作是由许多对象组成的,然而现实世界和对象世界之间存在着一道沟壑,这道沟壑的名字叫抽象,抽象是面向对象的精髓所在,同时也是面向对象的困难所在。要跨越这道沟壑,我们需要:

一种把现实世界映射到对象世界的方法;
一种从对象世描述现实世界的方法;
一种验证对象世界行为是否正确反映了现实世界的方法。

而UML就是跨越这道沟壑的方法。

四、UML的特点

UML是一种建模用的语言,就是一种建模用的语言,包含模型和关系,类似于语言中的基本词汇和语法。

UML的特点是统一,形成一种标准让人和机器都能读懂。

UML的优点是可视化,通过原模型和表示法,更加准确直观表达出文字难以表达的内容。

五、从现实世界到业务模型

建模是对客观事物建立一种抽象方法,用来表征事物以及对事物本身的理解。

知道如何抽象现实世界:人、事、物、规则,人驱动系统、事体现过程、物记录结果、规则是控制;

在UML里:参与者(actor)代表人,用例(use case)代表事,业务对象模型(business object model)代表物,业务场景(business scenario)代表规则。

六、从业务模型到概念模型

UML通过称之为概念化的过程(Conceptual)来建立适合计算器理解和实现的模型,这个模型成为分析模型(Analysis Mode)。

原模型包含:边界类、实体类、控制类。

边界类类似于系统中的界面,决定操作能不能做,代表了事;
实体类由领域模型转化而来,重新表达了业务实体,代表了物;

控制类表达了需求中的动态信息,体现了规则。

七、从概念模型到设计模型

实现类可以简单地从分析类映射而来:

边界类可以被转化为操作界面或者系统接口;
控制类可以被转化为计算程序或者控制程序,例如工作流、算法题等。

实体类可以转化为数据库表、XML文档等。

UML的三个模型的建立过程解决了面向对象的三个困难。

《大象 Thinking in UML》学习笔记(一)——为什么需要UML?相关推荐

  1. Thinking in UML 学习笔记(四)——UML活动图来看核心

    在UML活动图的性质是一个流程图,它需要描述为完成活动的特定目标的描述来完成,这些交互运行顺序. UML有两个级别的活动图,的用例场景的叙述性描述,还有的对象用来描述交互的描述. 工具.它不是我们的分 ...

  2. UML学习笔记--导航

    UML基础概述 UML与需求分析 UML类图与对象图 UML活动图 UML状态机图 UML顺序图和通信图 UML用例图 UML部署图和构件图 UML包图 UML与需求分析进阶 UML全家福 考勤管理系 ...

  3. [摘]UML学习二:标准建模语言UML的静态建模机制

    任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外. UML的静态建模机制包括 用例图(Use case diagram).类图(Class diagram).对象图(Object dia ...

  4. UML学习笔记---了解UML,UML相关知识,相关概念

    6.uml统一建模语言;   面向对象分析和设计(OOA/D)   up过程与瀑布模型;   a.软件职责分配; -------------------------------------- 1.um ...

  5. Thinking in UML 学习笔记(一)——建立对象模型

    一.面向对象的本质 面向对象的本质是抽象,当系统达到了超越其处理能力的程度,我们可以抽象出我们能够处理的范围来提成抽象级别,这样就可以构建更大.更复杂的系统. 现实世界和对象世界之间存在着一道沟壑,这 ...

  6. UML学习笔记(4)——类图之间的关系

    为什么80%的码农都做不了架构师?>>>    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Associa ...

  7. UML学习笔记(三):运用面向对象思想

    类的可视化表示 如果WashingMachine(洗衣机)类是Household Appliances(家用电器)包的一部分,那么这个类的名字为:Household Appliances::Washi ...

  8. UML学习笔记(一):UML简介

    统一建模语言(Unified Modeling Language,UML) 一些术语: 系统(system)指的是硬件和软件的结合体,它能提供业务问题的解决方案. 系统开发(system develo ...

  9. UML/ROSE学习笔记系列二:UML的概念模型

    建模的3个主要要素:                          1.UML的基本构造块:                          2.支持这些构造块如何放在一起的规则:        ...

  10. UML学习笔记之状态图

    状态图的基本概念: 状态图是UML中对系统动态方面建模的图之一,它通过建立类对象的声明周期模型来描述对象随时间变化的动态行为. 状态图用于描述模型元素的实例(如对象或交互)的行为.它适用于描述状态和动 ...

最新文章

  1. 【SpringCloud】Feigin-实例
  2. java math 类_Java Math类静态长轮(double d)示例
  3. java servlet 开发_Java之基于Servlet的Web开发简介
  4. 华泰证券:如何自研高效可靠的交易系统通信框架?
  5. 未注册小程序名称-小程序名称大全-周期更新未注册的好名字
  6. 【WPF】命令 --《深入浅出WPF》
  7. 调试EasyDarwin开源项目EasyCamera-HK接入海康IPCamera 摄像机所遇到的大坑
  8. 从996的大讨论看劳资博弈的历史
  9. 浏览器下载文件的两种方式
  10. tableau可视化图表及仪表板设计
  11. 济南公积金 销户 提取
  12. 2022出海欧美:英国电商市场现状及发展前景
  13. 这个AR/VR设计原型利器,爆赞
  14. 【MySQL】SQL执行顺序
  15. 深度分析这一年「AI大咖」,最重要的跳槽原因是……
  16. insmod: error inserting 'simp-blkdev.ko': -1 Invalid module format
  17. redis学习笔记,常用方法
  18. 3.1 Web前端:实战电商页面1:静态布局
  19. Linux进阶-FTP服务器源码搭建(pureftpd)
  20. SiamRPN论文学习笔记(上)

热门文章

  1. 夜神模拟器apk安装方式
  2. 互联网思维——简约思维
  3. java9.0.4配置_Tomcat 9.0 安装配置
  4. [M1]Daily Scum 9.29
  5. [M1]Daily Scum 10.9
  6. 华为借贴牌沃达丰闯欧洲 首款3G手机9月上市
  7. 《语义计算群:AI 理性主义的终结是不可能的吗》
  8. 软件公司 sun公司 Oracle公司
  9. U盘在别人电脑上正常显示,插在自己电脑读不出来(只显示CD驱动器)
  10. 如何做一个园区的导航地图?园区楼宇地图导航如何实现?