前言
学习UML统一建模之前,我们了解到程序设计范型分为面向过程程序设计范型和面向对象的程序设计范型。面对一些较大的系统设计,面向对象程序设计范型现的更有优势。
示例
如图是一个订单销售系统的概念图,我们抽象得到下面这张图
如图,将这个系统抽象成salesperson、customer、product、vehicle四个类。在custome这个父类下面,分为corporat和individual两个子类。同样,vehicle这个父类分为Truck和Train两个子类。当我们在交通工具这里继续增加一个交通工具时,就可以直接在下面增加一个子类。而不用推到重新建立一个从salesperson customer这样的一个过程。体现了面向对象程序设计的优势。
一、什么是UML?
其实这个问题有点大,知识有限这里简单说明。
UML全称是Unified Modeling Language。也就是大家常听说的,统一建模语言。通过上面那个例子,我们可以分析UML的特点。他就是对sales系统进行分析、设计、实现,通过UML图。我们可以清晰了解到这个系统的大致需求和流程设计。
二、UML的构成
这是本文主要讨论学习的内容
(1)UML中的事物
什么是事物呢?它是构成模型图的基本符号,表示一些面向对象基本概念。分为结构事物、行为事物、分组事物、注释事物。
结构事物
1.Class(类)
如图类在UML中的表示,也可将它的属性和方法隐藏起来。通常是在抽象性更大的系统中那样表示
2.Interface(接口)
如图我们可以知道接口仅仅是定义了一组操作讲话/飞,并没有给出这个操作具体实现是用什么方法还。
3.Collaboration(协作)
协作即是一组共同工作的角色、元素的合作行为。它大于所有元素单独行为的综合。
4.Use Case(用例)
如图,下载教材即是一个用例。换句话说,用例就是一个用户的需求。
5.Active Class(主动类)
对象至少拥有一个进程或线程,因此能启动控制活动。
6.Components(构件)
系统中可替代的物理部分,遵循一组接口。详细解释见
UML中的构件图
在UML中如下图表示
7.Nodes(节点)
运行时存在的物理元素,表示一种可计算的资源。至少有些记忆能力处理里。
在UML中的表示
行为事物
1.Interaction(交互)
由特定语境中共同完成一定特定任务一组对象之间交换消息组成。一个对象群体行为或单个操作行为可用一个交互来描述
。
2.State Mechanism(状态机)
状态机是这样一行为,描述一个对象或一个交互在生命期内相应事件所经历状态序列。单个类或一组类之间的协作的行为可以用状态机来描述。一个状态机涉及到一些其他元素,包括状态转换(一个状态到另一个状态的流)事件(发转换的事物)和活动(对一个转换的响应)
分组事物
Package(包)
注释事物
Notes(注释)
依附于一个或一组元素之上,对它进行约束或解释的简单符号。
(2)UML中的关系
关联
如图company和person两个类之间的关系就是关联,employee和employer 表示person的角色。
依赖
如图表示client类依赖于supplier这个类。依赖用虚线表示,箭头指向被依赖的一方。
泛化
如图,大家是不是有点眼熟。其实泛化就是继承,只是在程序编程中多用继承来表示。在UML建模用泛化来表示。两者表达的意思都是一样的,子类继承父类的属性和方法。
(3)UML中的图
静态图
1.Class Diagrams(类图)
显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性信息。
2.Object Diagrams(对象图)
是显示了一组对象和他们之间的关系。
用例图
描述用户需求,用户角度描述系统功能,指出各功能执行着,强调系统使用者,系统为执行着完成哪些功能。
行为图
1.State Diagrams (状态图)
描述对象所有可能状态以及事件发生时状态转移条件。
2.Activity Diagrams(活动图)
描述满足用例要求所要进行的活动以及活动间约束关系,使活动图利于识别系统并行活动。
交互序列图
1.Swquence Diagrams (交互序列图)
描述对象之间交互顺序,体现对象间消息传递时间顺序,强调对象之间消息发送顺序,同时也显示对象之间的交互过程。
2.Cahaberation Diagrams(协作图)
描述对象之间合作关系,侧重于说明哪些对象之间有消息传递。
小结
UML在软件开发各个阶段的应用就是对系统进行描述、设计。一个好的UML模型能够更好的指导软件的开发。当然当我们下次维护和更新系统的时候也是很有帮助的。