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

简介:

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)构成形式:

image

举一个例子:

image

2)内部类:

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

image

例如:

image

3)访问描述符:

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

image

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

image

4)抽象类和方法:

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

image

5)异常:

使用虚线以及箭头表示:

image

 

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

只用这种dog-eared 的框框:

image

 

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

image

 

8)接口:

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

image

9)实现:

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

image

或者:

image

 

10)依赖:

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

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

 

11)类关联:

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

image

下边有三种:

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

image

LogAbstraction 里面有LoggerBridge类的实例。

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

b)Composition:类A包含类B

image

这个图表达两点意思:

A line item is part of an order.

A line item cannot exist without an order.

 

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

image

这个图有两点意思: 
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)时序图对象:由类型和它前边的冒号表示:

image

2)消息:

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

image

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

image

 

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

image

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




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822370.html,如需转载请自行联系原作者

相关文章
|
8月前
|
机器学习/深度学习 人工智能 测试技术
【软件设计师备考 专题 】软件工程的未来:面向构件和统一建模语言(UML)
【软件设计师备考 专题 】软件工程的未来:面向构件和统一建模语言(UML)
160 0
|
4月前
|
测试技术 uml
『软件工程13』浅谈面向对象方法,统一建模语言UML
该文章介绍了面向对象方法的基本概念及其在软件工程中的应用,并详细探讨了统一建模语言(UML)的各种图示及其在系统设计中的作用。
『软件工程13』浅谈面向对象方法,统一建模语言UML
|
5月前
|
测试技术 uml
UML 建模语言的基础概念与应用
【8月更文第23天】UML (Unified Modeling Language) 是一种用于系统架构设计的标准建模语言。
237 1
|
8月前
|
测试技术 uml
UML面向对象建模题库
UML面向对象建模题库
102 0
|
数据库 uml 容器
UML之旅—面向对象技术
面向对象技术,在我们学习VB的时候就有提到过,刚学习的UML中也重点介绍了面向对象技术,以后还会用到这种面向对象的思想去实现程序之路,所以就简单总结一下自己对于面向对象技术的理解!
UML基础与应用之面向对象
UML基础与应用之面向对象
92 0
|
数据可视化 uml
UML——概述(什么是UML?UML有什么作用?面向对象技术)
我们要先理解模型,模型就是对现实的简化,把复杂系统变成小的系统,采用“逐个击破”的原则逐一解决。
UML——概述(什么是UML?UML有什么作用?面向对象技术)
|
设计模式 数据可视化 测试技术
UML总结 面向对象技术 、Rational Rose 界面
UML总结 面向对象技术 、Rational Rose 界面
|
数据可视化 uml
UML——面向对象技术
封装(Encapsulation):隐藏对象的属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性