整理UML建模概念和图形~(啥?程序员不再写代码,变成画图工程师?)

前言:

     工程图纸对于工程师的重要性就不需要我多说了吧,对事物建模也是很重要的。我们在软件工程部分说过“建造一个狗窝和一栋大厦是完全不一样的”,很多时候如果你有很好的idea,但是对于需求分析、详细设计等模糊其次,终究也只是一个idea而已。如果你掌握了软件工程和UML建模的设计方法,那么这些idea都会变成图纸或者文档,需要用什么技术来实现一目了然。当然,UML追求的最终目标就是程序员不再写代码,而是通过建模直接生成代码......好吧,实现与否还不知道,我先预定一下位置。


一、目标

     希望本篇文章可以让读者获益以下几点:

  • 明白UML是什么,不是什么,以及为什么UML对于开发软件密集型系统的过程非常重要。
  • 掌握UML的术语、规则和惯用法,一般来说,还将学会如何有效的使用这种语言。
  • 知道如何应用UML去解决许多常见的建模问题。

这里提供UML用户指南第二版目录(作者[美]Grady Booch   James Rumbaugh  Ivar Jacobson)

第一部分  入门

1、为什么要建模

2、UML介绍

3、Hello,World!

第二部分 对基本结构建模

4、类

5、关系

6、公共机制

7、图

8、类图

第三部分 对高级结构建模

9、高级类

10、高级关系

11、接口、类型和角色

12、包

13、实例

14、对象图

15、构建

第四部分 对基本行为建模

16、交互

17、用况

18、用况图

19、交互图

20、活动图

第五部分 对高级行为建模

21、事件和信号

22、状态机

23、进程和线程

24、时间和空间

25、状态图

第六部分 对体系结构建模

26、制品

27、部署

28、协作

29、模式和框架

30、制品图

31、部署图

32、系统和建模 

第七部分 结束语

33、应用UML

     上面的目录你快速浏览一遍就好,对我来说,UML的学习就分为两部分:相关概念和画图。其实只要掌握这来两部分,结合之前面向对象设计和项目文档设计的知识,很快就可以get到里面的知识点。对之后的项目开发会有很大的帮助。


二、相关概念

     UML的构造块:(1)事件;(2)关系;(3)图 ,所以接下来我们就通过这三个构造块展开相关概念。

(一)UML中的事件

     UML中有4中事物:结构事物、行为事物、分组事物、注释事物。

1、结构事物

     结构事物是UML模型中的名词。它们通常是模型的静态部分,描述概念元素或物理元素。结构事物总称为类目。

      第一,类(class)是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述。类实现一个或多个接口。在图形上,把类图画成一个矩形,矩形中通常包括类的名称、属性和操作。

     第二,接口(interface)是一组操作的集合,其中的每个操作描述了类或构件的一个服务。

     第三,协作(collaboration)定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的总和。

     第四,用况(use case)是对一组动作序列的描述,系统执行这些动作将产生对特定的参与者有价值而且可观察的结果。

     第五,主动类(active class)是这样的类,其对象至少拥有一个进程或线程,因此它能够启动控制活动。

     第六,构件(component)是系统设计的模块化部件,将实现隐藏在一组外部接口背后。

     第七,制品(artifact)是系统中物理的而且可替代的部件,它包括物理信息(“比特”)。

     第八,节点(node)是在运行时存在的物理元素,它表示一个计算机资源,通常至少有一些记忆能力,还经常具备处理能力。

2、行为事物

      行为事物是UML模型的动态部分。它们是模型中的动词,代表了跨越时间和空间的行为。共有3类主要的行为事物。

     第一,交互(nteraction)是这样的一种行为,它由特定语境中共同完成一定任务的一组对象或角色之间交换的消息组成。

     第二,状态机(state machine)是这样一种行为,它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列以及它对这些事件作出的相应。

     第三,活动(activity)是这样一种行为,它描述了计算工程执行的步骤序列。

3、分组事物

     分组事物是UML建模的组织部分。它们是一些由建模分解成的“盒子”。主要的分组事物是包。

     包(package)是用于对设计本身进行组织的通用机制,它与类不同,它是用来组织实现构造物的。

4、注释事物

     注释事物是UML模型的解释部分。 

 

(二)UML中的关系

     UML中有4种关系:依赖、关联、泛化、实现。 

     第一,依赖(dependency)是两个模型元素间的语义关系,其中一个元素(独立元素)发生变化会影响另一个元素(依赖元素)的语义。在图形上,把依赖画成一条可能有方向的虚线,有时还是带有一个标记。

     第二,关联(association)是类之间的结构关系,它描述了一组链,链是对象(类的实例)之间的连接。聚合是一种特殊类型的关联,它描述了整体与部分间的结构关系。在图形上,把关联画成一条实线,它可能有方向,有时还带有一个标记,而且它还经常含有诸如多重性和端名这样的修饰。

     第三,泛化(generalization)是一种特殊/一般关系,其中特殊元素(子元素)基于一般元素(父元素)而建立。用这种方法,子元素共享了父元素的结构和行为。在图形上,把泛化关系画成一条带有空心箭头的实线,该实线指向父元素。

     第四,实现(realization)是类目之间的语义关系,其中一个类目指定了一个由另一个类目保证执行的合约。在两种地方会遇到实现关系:一种是在接口和实现它们的类和构件之间;另一种是在用况和实现它们的协作之间。在图形上,把实现关系画成一条带有空心箭头的虚线,它是泛化和依赖关系两种图形的结合。

 

(三)UML中的图

1、类图(class diagram)展示了一组类、接口、协作和它们之间的关系。

2、对象图(object diagram)展示了一组对象及其它们之间的关系。

3、构件图(componet diagram)展示了一个封装的类和它的接口、端口以及由内嵌的构件和连接件构成的内部结构。

4、用况图(use case diagram)展示了一组用况、参与者以及它们之间的关系。

5、交互图(interaction diagram---顺序图和通信图都是交互图)展示了一种交互,它由一组对象或角色以及它们之间可能发送的消息构成。

6、状态图(state diagram)展示了一个状态机,它由状态、转移、事件和活动组成。

7、活动图(activivy diagram)将进程或其它计算的结构展示为计算内部一步一步的控制流和数据流。

 8、部署图(deployment diagram)展示了对运行时的处理结点以及在其中生存的构件的配置。

9、制品图(artifact diagram)展示了计算机中一个系统的物理结构。

10、包图(package diagram)展示了由模型本身分解而成的组织单元以及它们的依赖关系。

11、定时图(timing diagram)是一种交互图,它展示了消息跨越不同对象或角色的实际时间,而不仅仅是关心消息的相对顺序。

 

(四)公共机制

     为了更好的组合上面的构件,所以就有了公共机制:规约;修饰;通用划分;扩展机制。


三、各种图形例子

1、类图

2、用况图

3、交互图

 

4、活动图

 

5、状态图

 

6、接口、组件、部署图

 

 

 


总结;

     从概念中来,到画图中去。我们将所学到的UML知识用到面向对象的编程中去,用到java设计中去,多练习理解才会更加深刻。上面的图形知识从以往我的图形中截取的,如果对你有帮助,点个赞呗,谢谢。 

猜你喜欢

转载自blog.csdn.net/qq_43919400/article/details/106799947