这节课呢,将给大家来介绍 UML 里面,来表达各种的模型工具。
那 UML 为了不同抽象层次来对
系统的静态结构和系统的动态这个结构呢相当于 进行建模,分别给出了相应的图形表达工具。
我们来看一下,这个是 UML 给出来的 6 种对系统静态部分建模的图形工具。
那么,什么是系统的静态部分?我觉着前面我们一直在讲 静态部分。
那为了让大家能很清晰的认知我,老师在这里面加了一个注解。
静态方面啊,可以看做系统里面相对比较稳定的这样的一个 骨架的这种表示,比如说房屋
的这样的一些静态的方面就可以是墙啊、 门啊、
管道啊、 电线啊等等这样的一些东西。
那么在这个里面,我们看到有 6 种图形表达工具。
那么其中呢,类图它是显示了构成这个系统的类,
括号,及类相当于对外展示的接口, 以及类的内部结构,或者类跟其它类之间的联系。
显示了这样的一些信息的图形被称为类图。
那么类图也是面向对象分析和设计里面最重要的也是最基础的工具。
构件图,我们有的时候也把它看做是一种实现 视图。
也就是说在进入实现阶段之前呢, 那么我们想表达,如何去利用
构件来组织这样的一个系统?所以构件图它表达了这个系统的 有哪些的软件构件?以及这些软件构件之间的依赖关系。
所以这是构件图的这样的一种视图。
那么还有组合结构图,它展示了类和协作的的一些内部机构。
我们在介绍协作的时候给大家展示了组合结构图的这样的一个画法。
实际上我们可以把它看做什么啊?一部分的什么啊?类图 对吧?或者是类图的,整个的一个局部的这样的一个成分。
那么对象图呢,展示了是一组对象及对象之间的关系。
那么这个里面,对象图里面实际上是想强调啊,这个事物的实例 它所包含的这样的数据结构。
所以这个里面, 对象图更突出了这样的一个实例对象整个以及对象之间的 这样的一些相应的这种关联。
那个部署图是表示了运行的时候
要处理这个系统中相应的这样的一些结点,以结点上的一些制品的 这样的一个配置关系。
也就是说,你的这样的一个软件系统未来要部署到相应的一些 物理站点上,那么对于这些物理站点我们就可以把它看做是结点。
那么这些结点上,到底哪些的 这个软件被分派到相应的哪些的结点上?以及这些结点上
相应的一些配置是什么样子的?那我们是通过部署图来表达的。
所以部署图也可看作是,系统的这样的一个物理的视图。
制品图是展示了一组制品以及制品之间的这样的一个依赖关系。
它也是对系统的这样的一个,物理的静态结构 进行建模。
所以大家看,有这 6 种的视图是表达了对系统
静态结构的这样的一种不同方面的、 不同侧面的这样的一些关系的描述。
那我们来看一下 UML 里面 除了以上的
6 种的静态结构视图,同时也提供了 7 种的 动态部分建模的视图。
其中我们所熟悉的 已经在结构化的分析设计方法里面介绍的用况图,
实际上它是一种需求模型。
那么状态图,状态图是指当这个对象的行为比较复杂的时候, 我们可以用状态图作为一种辅助的
这个建模工具,那么来描述对象的状态以及对象状态之间的这样的一个转移关系,
实际上是帮助我们来认知对象在它的生命周期中,
它有哪些的状态?以及状态之间的转移关系来捕捉对象可能在转移过程中
它要执行的一些相应的操作。
所以是帮助 我们捕捉对象操作非常有用的一种图形,就是状态图。
那么活动图,它是强调了这个, 从活动到活动的控制流的这样的一种关系。
那么在这个里面我们也可以看到,很多书上说活动图它 特别像流程图,只是在这里面它进一步的加强了
对于并发和控制流的这样的一些支持。
那么活动图同时相当于它也是,想强调的是 这个活动的执行的先后的步骤。
所以这个 过程是帮助我们来描述一组对象之间的
协作行为,或者有的时候我们也可以把 它用作用户的业务流程的一种建模工具。
用户的业务流程就可以用一张很大的活动图把它 刻画出来。
那么可以通过甬道啊来刻画出来这个系统中的有哪些的用户,
那每个用户它所执行的这样的一些动作,先后顺序是什么样子的? 所以这个活动图也是很有用的一种图。
那么顺序图,是注重于 消息的时序。
那它更多的是强调了对象之间的这样的一个交互情况。
那么它强调了,在对象交互中消息从上到下的这样的一种时序关系。
所以,顺序图是我们面向对象中 用来描述或者刻画一组紧密交互的对象
之间的这样交互关系非常有用的一种图形。
因为 我们大家想,在我们的类图里面只能给出这个系统中的什么啊?
静态的这样的一些组织结构,那么动态的 对象之间的交互关系我们是需要应用这样的一些
或者刻画系统动态部分的这样的一个图形来展示,所以顺序图就是一个非常好的这样的一- 个选择,
那么通信图呢是注重于收发消息对象的组织结构,
大家可以看到顺序图是描述了一组对象之间的 有着时序关系的这样的一个交互
序列,那么通信图更多地强调了到底是 哪些对象之间它们之间有交互关系,所以它注重于
收发消息或者有交互关系的对象的组织结构,也就是说到底有哪些对象它们之间有交互关系,
那我们再看一下,交互概观图这个图是用的非常少的, 但是
UML 里面既然提出来了,我们也需要给大家了解一下,就是说用于描述系统的宏观行为,
那么它也是活动图和顺序图的这样的一种混合物, 还有一个就是定时图,也用于描述交互
它展示了这种消息跨越不同对象和角色的这样的 一种实际的时间,所以它不仅仅是关心
这种消息的相对的顺序,更多的是跨越对象和角色的这样的一个实际的时间,
给它相当于时间戳在这个图形上展示出来了。