以前一提到UML,就想到了复杂的流程图。很敬佩哪些想想就能画出整个系统的UML图的人,因为他们头脑中有整个软件架构的蓝图,这样在编写实现的时候,就会知道哪个地方改怎么做,哪个地方如何扩展。

  而想成为架构师,UML也是必备的技能。这里就根据《大象——Thinking in UML》总结一些学习笔记。

  平时总是在说什么是面向对象,什么是面向过程。

  面向过程,就是典型的C语言这种,一个main函数,从头走到脚,中间可能涉及到一些方法的调用,但是整个代码完全是流水线一样。这样就会导致一个问题,虽然代码流程很清晰,但是不容易扩展,我需要修改某一个计算过程,有可能导致全部代码需要重写。

  而面向对象,就是以一种对象的角度来编写程序,设计程序,每个对象具有自己的生命特征。每个对象内部具有一些复杂的变量以及方法,对外提供接口或者公共方法进行调用,这就是封装。而对象之间可以互相关的继承,借鉴存在的方法,这就是继承。相同类型的对象,可以提取公共的部分,形成一个新的父类对象,这就是抽象。每个相同类型的子对象之间可能存在不同的方法,这就是多态

  这样,通过对象的方式,来看待世界,整个过程就变得解耦了,一旦需要扩展或者修改某个地方,单纯的修改与之对应的对象就可以了。

  而这其中的难点,就是如何从现实世界中的业务场景转换到抽象的对象模型;而通过复杂对象模型如何表示业务场景。

  

  通过上面这个步骤,就可以从现实世界抽象出模型来表示业务场景了。

  首先通过建模,把现实世界中需要的一些数据进行建模,建立对应的模型。

  然后根据这些模型去设计相关的一些概念,比如控制类,实体类,以及边界的展现类。

  最后设计这些概念模型,进行代码级的实现。

  设计思想有了,那么就出现了一种叫做RUP的统一建模的过程模式,通过这种建模的模式,可以完整而且稳定的展示一个软件的软件生命周期。

  通过这四个阶段,9个核心,完美的诠释了传统软件的生命活动,但是现代的软件开发,大多讲究极限编程,敏捷开发,想要通过快速的迭代更新,来进行快速的适应,以满足快速的需求变化。但是对于一些10年之久的系统来说,稳定才是最重要的,因此这种统一过程往往是最佳的选择。

  对于UML来说,我们最难的就是如何建模了!

  首先要明确,建模的目的是什么?需要满足什么业务场景!其次,根据多种场景抽象出模型。

  传统的方式可以通过自顶向下,或者自底向上的方式来进行。

  自底向上,就是首先建立底层小对象的模型,再通过组合等方式,拼凑出完整的业务场景。

  自顶向下,就是先进行大体的场景描述,再慢慢的细分功能。

  一般都是这两种方式,不断的迭代,最终找到合适的方案。

转载于:https://www.cnblogs.com/xing901022/p/4181134.html

【UML】——为什么要使用UML相关推荐

  1. UML是什么?UML不是什么?

    来源: http://blog.163.com/lzxin_2005/blog/static/15368423200826104042609/ 大多数软件人员应该对UML并不陌生,什么是UML?它是U ...

  2. UML笔记一:UML概述三(UML构成、UML中的事物)

    1.UML中的构成: UML的基本结构块: ---UML中的事物 ---UML中的关系 ---UML中的图 UML的规则 UML中的公共机制 --规格说明 --修饰 --通用划分 --扩展机制 2.U ...

  3. 【UML 建模】在线UML建模工具 ProcessOn 使用具体解释

    总结 : -- 推荐理由 : 近期从 Windows 操作系统 转到 MAC 上, 正在看设计模式 和 重构, 找不到好用的 UML 工具, 因此在网上找了一款能够在线使用的 UML 工具, 用起来发 ...

  4. uml建模工具 支持php,【UML 建模】在线UML建模工具 ProcessOn 使用详解

    总结: -- 推荐理由 : 最近从 Windows 操作系统 转到 MAC 上, 正在看设计模式 和 重构, 找不到好用的 UML 工具, 因此在网上找了一款可以在线使用的 UML 工具, 用起来发现 ...

  5. java uml建模_Java开源UML建模

    ArgoUML 使用java编写的开源UML产品,功能比较全.最受欢迎的UML建模工具. Alma Alma是一个软件建模分析的工作平台,它读取几种不同的源代码,帮你设计面向对像的模型,修改结构和源代 ...

  6. java uml类图举例,uml类图(uml类图实例作业)

    原发布者:dzq21cn 第4章UML类图[学习目标]·定义类图·为什么要建模类图·类图的主要标记符号·如何建模类图4.1UML基本类图面向对象设计的基础就是使用类.. UML是统一建模语言,一般用来 ...

  7. UML基本介绍与UML类图

    1.UML 基本介绍 UML--Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 U ...

  8. [UML 扫盲]什么是UML?

    文章目录 一.UML 是什么? 二.UML 与 面向对象 三.UML 基本要素 四.UML 常见图 概述 UML 是统一建模语言(Unified Modeling Language)的缩写.UML 提 ...

  9. 移动端UML图应用之UML交互图——顺序图和通信图

    系列文章目录 移动端UML图应用之UML图简述 移动端UML图应用之UML行为图--用例图.活动图和状态机图 移动端UML图应用之UML交互图--顺序图和通信图 移动端UML图应用之UML结构图--包 ...

  10. OpenStack 虚拟机启动流程 UML 分析(内含 UML 源码)

    目录 文章目录 目录 前言 API 请求 Nova API 阶段 Nova Conductor 阶段 Nova Scheduler 阶段 Nova Compute 阶段(计算节点资源分配部分) Nov ...

最新文章

  1. (一)神经网络训练不起来怎么办:局部最小值(local minia)与鞍点(saddle point)
  2. vector的基本用法 (详解 + 代码演示)
  3. linux 如何查看一个进程空间所装载的共享库
  4. webpack打包后引用cdn的js_手摸手 Webpack 多入口配置实践
  5. ofo 回应海外部门集体解散;罗永浩将现身快如发布会;支付宝更名? | 极客头条...
  6. Anaconda基础命令总结
  7. Atitit 网络存储协议 远程存储协议 目录 1. Email类 1 1.1. Eas Exchange Activesync介绍 1 1.2. Imap pop3 1 2. 网盘类远程存储web
  8. grafana中国地图插件
  9. 带有拉普拉斯平滑的Naive Bayes python代码实现
  10. win10系统定时自动切换深色模式
  11. 设计模式(一)——统一建模语言基础知识
  12. C++ 职工管理系统
  13. android 蓝牙耳机 找不到驱动程序,bluetooth外围设备找不到驱动程序现象的解决方法介绍...
  14. 十五、JDBC(高琪java300集+java从入门到精通笔记)
  15. css本文在背景之上,css实现文字在背景图片之上
  16. 【数据库 · MySQL】听韩顺平老师课草稿
  17. 第三届厦门国际银行数创金融杯金融营销建模大赛-BaseLine
  18. git No tracked branch configured or branch doesn‘t exist
  19. 搭建dashboard
  20. 换个格式输出整数 蓝桥杯 C语言

热门文章

  1. oracle 启动_oracle实验--通过gdb工具研究数据库启动过程
  2. jvm垃圾回收机制_详解JVM内存管理与垃圾回收机制1 - 内存管理
  3. h5+js调取相机做取景框_iPhone 12 相机操作指南,用好了随手一拍就是大片!
  4. textedit实时显示位置_奉化“实时公交”来了!再也不用在多变的天气里等公交啦!...
  5. Redis的安装(windows)
  6. 【渝粤题库】陕西师范大学800003 中国地理
  7. 【Python实例第31讲】递归的特征消除法
  8. 多臂老虎机导论(一)引言
  9. ajax无法返回视图
  10. 使用NEWSEQUENTIALID解决GUID聚集索引问题