作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

1.UML是Object Management Group推出的用于简化复杂软件工程流程的工具,使用UML,用户可以定制并且可视化软件和非软件的设计。注意UML只是一种建模语言,它只定义了words和grammar,而并没有定义建模的过程或流程。

2.上文中提到的静态模型和动态模型的分类也可以如下分类,一共十二种图:

STRUCTURE DIAGRAMS:可以用来代表一个应用的结构

  • Class diagrams
  • Object diagrams
  • Component diagrams
  • Deployment diagrams

BEHAVIOR DIAGRAMS:可以用来代表一个应用的行为:

  • Use Case diagrams
  • Sequence diagrams
  • Activity diagrams
  • Collaboration diagrams
  • Statechart diagram

MODEL MANAGEMENT DIAGRAMS:可以用来代表不同的程序模块是如何组织和管理的:

  • Packages
  • Subsystems
  • Models

此文只详细介绍类图和时序图。

3.类图详解:

1)构成形式:

举一个例子:

2)内部类:

我们使用诸如下边的方式表示内部类,定义在方法区

例如:

3)访问描述符:

对于Java,我们用如下的符号表示访问描述符:

我们在下图详细说明了各个访问描述符的一些权限设定:

4)抽象类和方法:

在类中定义的没有body 的方法称为抽象方法,至少有一个抽象方法的类是抽象类。使用斜体来描述:

5)异常:

使用虚线以及箭头表示:

6)便签(包含限制、注释和代码解释):

只用这种dog-eared 的框框:

7)泛化:描述一种继承关系。

8)接口:

和类表示差不多,在前边加上<>,

9)实现:

这是描述接口和具体实现的方式,有两种表示方法:

或者:

10)依赖:

描述源和目的组件之间存在依赖关系,也就是说,一旦target有变,source就必须改变,而不是反之,看下边的例子。


Order类利用DBUtil类的execute方法调用SQL语句,所以Order类依赖于DBUtil(DBUtil为target)

11)类关联:

多重性(Multiplicity ),修饰符暗示着实例之间的关系。一个类的一些实例与另一个类的实例有关,下图是表示多重性的一些符号:

下边有三种:

a)Navigability:当A包含有到达B的必须信息,也就是说A知道B,但是B不知道A。如下图:

LogAbstraction 里面有LoggerBridge类的实例。

当然这样的也可能是双向的,

b)Composition:类A包含类B

这个图表达两点意思:

A line item is part of an order.

A line item cannot exist without an order.

c)Aggregation:聚合,较之b更加轻量一些,

这个图有两点意思:
A Player is part of a Team.

A Player can be part of more than one Team and hence, when a Team
is dissolved, the Player still remains.

4.时序图详解:

1)时序图对象:由类型和它前边的冒号表示:

2)消息:

时序图对象之间的通信,一般的,消息都是映射到类操作上的,若是并不是和类进行互动的话,比如一个用户与ATM取款机的操作,那么直接使用这样的消息就不合适了。消息也可以表示business工作流。

3)自我调用:
时序图对象作用于自身的一种消息,

我们在下边举一个综合的时序图小例子:

一个用户在线先填写注册表单,所有提交的信息都先被Controller对象接收,Controller创建对象Account,并且把信息都存入Account对象,Account对象创建并且使用DBManager 将数据保存到数据库中(使用自我调用)。

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

【面向对象设计基础】UML统一建模语言初学相关推荐

  1. UML统一建模语言知识体系概述

    UML统一建模语言知识体系概述 http://developer.51cto.com/  2006-01-11 16:46    noahsports.com  我要评论(3 ) UML是一种定义良好 ...

  2. UML统一建模语言第1章 UML概述课后习题

    <UML2基础.建模与设计教程>杨弘平等编著,清华大学出版社,第1章 UML概述课后习题 1.UML事物有哪些? 构件事物.行为事物.分组事物.注释事物. 2.UML关系有哪些? 依赖.关 ...

  3. 3、UML统一建模语言是什么?

    UML(Unified Modeling Language,统一建模语言)是用来设计软件蓝图的可视化建模语言,是一种为面向对象系统的产品进行说明.可视化和编制文档的标准语言,独立于任何一种具体的程序设 ...

  4. [本体论][UML][统一建模语言][软件建模][OWL]从本体论到UML到OWL

    以下内容,是关于软件建模的方法与思路. UML与OWL都是基于本体论的建模语言. 本体论(哲学) 本体论(信息科学) UML(统一建模语言) more info 参考:[设计语言][统一建模语言][软 ...

  5. 【UML统一建模语言】2万字超详细学习笔记(1)

    (19条消息) UML笔记_半路出家的码农小王的博客-CSDN博客 uml结构 构造块:基本UML建模元素.关系和图 公共机制:达到特定目标的公共UML方法 构架:系统架构的UML视图 构建块 事物: ...

  6. UML统一建模语言学习总结

    UML是统一建模语言,图主要分为两大类. 结构性的图:类图.对象图.构件图(组件图).部署图.包图. 行为型的图:活动图.状态机图.顺序图.通信图.用例图.时序图. 一般我们画图,用的工具有word. ...

  7. UML统一建模语言第7章 状态机图和活动图课后习题

    <UML2基础.建模与设计教程>杨弘平等编著,清华大学出版社,第7章 状态机图和活动图课后习题 1.下面哪个不是UML中的静态视图?(A) A.状态机图        B.用例图      ...

  8. UML(统一建模语言)类图的六大关系

    在UML类图中,类之间的关系可以分成:关联(association).聚合(aggregation).组合(composition).依赖(dependency).泛化(generalization) ...

  9. UML统一建模语言第4章 用例和用例图课后习题

    <UML2基础.建模与设计教程>杨弘平等编著,清华大学出版社,第4章 用例和用例图课后习题 1.什么是参与者?如何确定系统的参与者? 2.什么是用例?如何确定系统的用例? 3.用例之间有哪 ...

最新文章

  1. github提交代码却没有显示绿格子
  2. JDK安装及java环境配置_JDK安装及Java环境变量配置
  3. C/C++与内存相关的函数
  4. C++函数的分文件编写
  5. C语言基础知识之#pragma once
  6. PySpark(一)
  7. 旧式有线打印机联网探索
  8. 视频课程:CMOS模拟集成电路版图设计
  9. JS中的 $(function(){ }) 是什么意思
  10. 【Python】unittest中执行用例通过但是报错:OSError: [WinError 6] 句柄无效。
  11. 优秀的免费高清图片素材网站推荐
  12. 大学计算机制作九九乘法表,用Excel制作九九乘法表(一)
  13. varint zigzag 编码学习
  14. 分页存储逻辑地址转物理地址
  15. CSS网页布局之传统解决方案与Flex大法
  16. Markdown图片居中、文字居中
  17. apache-poi之Excel使用API
  18. buuctf ciscn_2019_sw_5
  19. Bandicam (最新版[4.2.0.1439])安装破解
  20. 澳洲社区宜居指数:首都第一西澳垫底

热门文章

  1. php mysql 读取数据_PHP MySQL 读取数据
  2. mysql5.7误删管理员root账户ERROR1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
  3. npm ERR! code ERR_STREAM_WRITE_AFTER_END npm install 报错实力踩坑npm,自从用了npm之后项目构建和插件管理确实方便了很多,但也是被坑的不要不要的
  4. html 二维表_焦虑症自测量表SAS焦虑症自测表
  5. matlab disp函数_从零开始的matlab学习笔记——(13)符号计算中的多项式
  6. 浙江大学_包家立教授计算生物学2_信源编码理论
  7. 风变Python8编程时,两大思维模式
  8. html5复选框控制按钮状态,HTML5如何添加原生radio按钮和checkbox复选框转换为非常好看的滑动开关按钮的插件...
  9. ubuntu怎么设置linux的ip地址,linux,ubuntu设置ip
  10. 人脸检测(五)--adaboost总结,整理