UML精粹1 - 简介
Martin的主页 http://martinfowler.com/。
Pavel Hruby开发的visio模板,可以用来画UML图: http://phruby.com
简介
统一建模语言UML是一组图形表示法,这些表示法的背后有共同的元模型。UML帮助描述和设计软件系统,特别是使用面向对象风格构建的软件系统。出现的原因:编程语言的抽象级别不够高,不便于讨论设计。
使用UML的方式
草稿、蓝图和编程语言。
- 草稿UML as Sketch。使用草稿的目的是来帮助沟通想法或者展示所要做事情的可选方案。草稿是非正式的,注重当前讨论的方面,而不是完整的规则。草稿一般使用白板或简单的绘图工具,注重绘图的效率。
- 蓝图UML as Blueprint。蓝图关心规则完整性,列出所有的设计决策,程序员应该能够根据设计,进行简单、直接的编码。蓝图需要复杂的工具来绘制,例如CASE工具。蓝图和草稿之间的界限有些模糊,区别类似于:草稿故意画成不完整的,强调重要信息,而蓝图倾向于全面,目的是把编程缩减成简单的机械活动。简言之,草稿是探索性的,蓝图是定义性的。
- 编程语言UML as programming language。在UML方面做得越多,编程变得越机械,这时候编程应该被自动化,借助于CASE工具,可以将UML编译为可执行代码,这时候UML成了源代码。
表示法notation和元模型meta-model
UML中定义了表示法和元模型。表示法是你在模型中看到的图形,它是建模语言的图形表示。例如,类图表示法定义了如何表达类、关联和多重性等条目和概念。元模型是一张定义语言概念的图,通常是类图,定义了表示法中图形的规格。UML理解成一个语言的话,元模型定义了语义的语法。
UML图
下面列出了UML2描述的13种官方图形类型和分类。
|
图 |
目的 |
传承 |
|
活动activity |
顺序和并行行为(Procedural and parallel behavior) |
UML1 |
|
类class |
类,特性和关系 (class, features, and relationships) |
UML1 |
|
通信communication |
对象之间的交互;强调链接(interaction between objects; emphasis on links) |
UML1 协助图 |
|
组件component |
组件的结构和连接(structure and connection of components) |
UML1 |
|
组合结构composite structures |
类的运行时分解(runtime decomposition of a class) |
UML2 |
|
部署deployment |
工件部署到节点(deployment of artifacts to nodes) |
UML1 |
|
交互概述interaction overview |
系列图和活动图的混合(mix of sequence and activity diagram) |
UML2 |
|
对象object |
实例的配置例子(example configuration of instances) |
UML1 |
|
包package |
编译时层次结构(compile-time hierarchic structure ) |
UML1 |
|
序列sequence |
对象之间交互;强调顺序(interaction between objects; emphasis on sequence) |
UML1 |
|
状态机state machine |
对象在生命期中如何被事件改变(how events change an object over its life) |
UML1 |
|
时间timing |
对象之间的交互;强调时间(interaction between object; emphasis on timing) |
UML2 |
|
用例use case |
用户如何和系统交互(how users interact with system) |
UML1 |

UML图的示例




UML精粹1 - 简介的更多相关文章
- 18、面向对象基本原则及UML类图简介
18.1.面向对象基本原则 18.1.1.面向抽象原则 抽象类特点: a.抽象类中可以有abstract方法,也可以有非abstract方法. b.抽象类不能用new运算符创建对象. c.如果一个非抽 ...
- uml精粹——11.活动图(及整个读书笔记分享)
11.活动图activity diagram 活动图是描写叙述过程化逻辑procedural logic.业务过程business process和工作流work flow的技术. 他和流程图fl ...
- UML和UP简介(转载)
UML(统一建模语言,Unified Modeling Language)是用于系统的可视化建模语言. UP(统一过程,Unified Process)是通用的软件开发过程. 很多人或书籍过大的夸大 ...
- UML精粹5 - 状态图,活动图,通信图,组合结构,组件图,协作,交互概述图,时间图
状态机图state machine diagram 下面是状态图的一个例子(一个城堡中的秘密保险箱的控制面板). 转换transition包括3个部分:trigger-signature [guard ...
- UML精粹4 - 对象图,包图,部署图,用例
对象图object diagram 对象图是某个时间点上的对象在系统中的快照,也经常被称为实例图.一般在展示组合对象结构时比较有用.例如 组合结构的类图 一个时刻的对象图 包图package diag ...
- UML精粹3 - 类图,序列图,CRC
类图Class diagram 类图描述系统中的对象类型,以及它们之间的各种静态关系.类图也展示类的性质和操作,以及应用于对象连接方式的约束.UML中的特性feature,涵盖了性质property和 ...
- UML精粹2 - 开发过程
迭代和瀑布过程 两者的本质区别是,你如何将一个项目分解为更小块. 瀑布风格基于活动来分解项目.为了构建软件,你不得不做某些活动:需求分析.设计.编码和测试.为期一年的项目可能有2个月的分析阶段,然后是 ...
- UML精粹学习 - 订单类结构图
Order Class Diagram of Martin Fowler's UML Distilled
- UML类图简介
概述 设计模式中常常使用UML来表示类与类,类与接口之间的关系,UML类图是设计模式入门必备的技能,感觉各种关系比较多,这里做一下总结. 类与接口的表示 类与接口通常是一个矩形框表示,一般分为3层,第 ...
随机推荐
- 10个优秀的JavaScript Web UI库/框架推荐
在进行Web开发时,并非所有的库都适合你的项目,但你仍需要收藏一些Web UI设计相关的库或框架,以在你需要的时候,加快你的开发效率. 本文为你带来10款非常优秀的基于JavaScript的Web U ...
- PDF 补丁丁 0.4.2.1023 测试版使用手册发布
由于 PDF 补丁丁新版本增加的功能颇多,界面也重新设计过,因此,使用手册需要作比较大幅度的改动才能与软件相匹配. 目前,使用手册已经撰写了一部分,但新增功能的介绍和新界面的截图还没完成,有2/3的内 ...
- Octopus系列之模板快速开发手册
公共代码 html_header_1 <title>${sitename}-${seotitle}</title> <meta http-equiv="Cont ...
- 深入学习JavaScript: apply 方法 详解(转)——非常好
主要我是要解决一下几个问题: 1. apply和call的区别在哪里 2. 什么情况下用apply,什么情况下用call 3. apply的其他巧妙用法(一般 ...
- 用CSS定义每段首行缩进2个字符 转
应该遵循w3c所制定的html/xhtml标准来使用tag和编写网页.如果你对此不太了解,可以到w3c的网站www.w3.org去找相关资料,或者买一本xhtml的书(注意不要买过时的html的书,尽 ...
- springmvc跳转的几种方式
1:spring mvc 是围绕着DispatcherServlet展开的 ,其底层还是servlet 跳转方式: ①request.getRequestDispatcher("../ind ...
- iOS学习之应用数据存储1-属性列表、偏好设置、NSKeyedArchiver归档
iOS应用数据存储的常用方式(持久化方式) 属性列表(plist)归档(XML文件) Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core ...
- UIkit框架之UIwebview
1.继承链:UIview:UIResponder:NSObject 2.使用loadHTMLString:baseURL:方法来加载本地的HTML文件,或者使用 loadRequest:方法来加载网络 ...
- HDU1005(矩阵快速幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 #include<cstdio> using namespace std; int ...
- Smart210学习记录----nand flash驱动
[详解]如何编写Linux下Nand Flash驱动 :http://www.cnblogs.com/linux-rookie/articles/3016990.html 当读写文件请求到来的时候, ...