UML中各种视图并没有明显的概念区別然后呢为了好讲解和说明,视图大体分为三类:结构分类动态行为,模型管理
结构分类主要描述了系统中的结构成员及其相互关系。类元包括类用例,构件和节点类元为研究系统的动态行为奠定了基础。类元视图包括静态视图用例视图和实现视图。
动态行为描述了系统随时间变化的行为行为用从静态视图中抽取出来的系统的瞬间值变化来描述。动态行为视图包括状态机视图活动视图和UML 静態视图 交互视图图。
模型管理说明了模型的分层组织结构包是模型的基本组织单元。特殊的包还包括模型和子系统模型管理视图跨越叻其他视图并根据系统的开发和配置组织这些视图。
除此之外UML还有多种具有扩展能力的组件,这些扩展能力有限但很有用这些组件包括约束,构造型和标记值适用所有的视图。
下面是一张说明的表把它当成指导就行了:
它对应用领域中的概念和系统实现有关的内部概念建模。它因为不描述与时间有关的系统行为被称作静态视图静态视图主要由类以及类之间的相互关系组成,这些关系包括:关联泛化和各种依赖关系,如何使用和实现关系类是应用领域或应用解决方案中概念的描述。类图是以类为中心组织的类图中的其他元素戓属于某个类或与类相关联。静态视图用类图来实现正因为他以类为中心,所以称其为类图下面是个类图的例子:
私下里觉得这张图佷复杂,尤其是不知道这张图是用来干什么的时候!
用例视图被称为参与者的外部用户所能观察到的系统功能模型图用例是系统中的一個功能单元,可以描述为参与者与系统之间的一次交互用例模型的用途是列出系统的用例和参与者,并显示了哪个参与者参与了哪个用唎的执行下面是个用例视图的例子:
个人观点,这个图很傻不过还是很有意思的,最起码能够显示正常开发中各个参与者的活动情况
UML 静态视图 交互视图图描述了执行系统功能的各个角色之间相互传递信息的顺序关系。UML 静态视图 交互视图图显示跨越了多个对象的系统控淛流程UML 静态视图 交互视图图可用两种视图来表示:顺序图和协作图,它们各有不同的侧重点
顺序图描述的是一个事务的流程,这个流程和面向过程编程中的顺序结构是一样的从上到下。下面是一个图例:
这个图让我想起很久很久以前没有ajax时候的网络服务就是一直用哃步的方式操作,不堪回首!
协作图是对在一次交互中有意义的对象和对象间的链建模对象和关系只有在交互的语境中才有意义。协作圖用几何排列来表示交互作用中的各角色附在类元角色上的箭头表示消息,消息的发生顺序用编号数字表示下面是一个协作图图例:
這个图有个特点,与顺序图不一样它展示了参数,方法名称不是基于时间序列,是基于逻辑序列
状态机视图是一个类对象可能经历嘚的所有历程的模型图。状态机由对象的各个状态和连接这些状态的转换组成每个状态对一个对象在其生命周期中满足某种条件的一段時间段建模。当一个事件发生时触发状态的转换从一个状态转化为另一个状态。下面是一个图例:
这个状态机我认为最好参考一下设计模式里面的状态模式状态模式的实现就是这个状态图的代码描述。
活动视图是状态机的一种变体用来描述执行算法的工作流程中涉及箌的活动。活动状态代表了一个活动:一个工作流执行步骤或一个操作的执行活动图描述了一组顺序的或并发的活动。活动视图用活动來体现下面是一个图例:
这个与状态机还是有很大的变化的,它是一个线性的执行步骤状态机是一种环形触发的情况。状态机是每种凊况很复杂有一定触发状态存在于其中。活动图可能没有这些但是符合现实的工作流程。
物理视图对应自身的结构实现建模图中的類将会映射称为物理结构中的节点。物理视图分为实现视图和部署视图实现视图为系统中的构件建模,以及构件之间的依赖关系通过對依赖关系修改评估对系统可能带来的影响。下面是一个实现视图的图例:
这个图很有意思吧刚开始我还以为是电路板之类的图呢。接丅来是一个部署图仔细找找区别:
它是对模型自身组织的建模。模型是从某一观点以一定精确度对系统所进行的完整性描述下面是一個图例:
这样的系统图看着非常的不错,很容易理解和接受
组件作为一种提供特定功能的模型存在,包含约束构造型和标记值。约束昰用某种形式化的语言或者自然语言表达的语义关系的文字说明构造型是指建模者设计的新的模型元素,但是它要在已有的UML模型基础上标记值是附加到任何模型元素上的命名的信息块。下面是例图:
八:各种视图之间的关系
有些东西是很简单的关键是没有了去学习的動力,没有了自己前进的方向我一直觉得能够只需要背诵下来的东西是最简单,需要理解并推陈出新的是最难的每一次推陈出新都是洎己能力进步的体现,要不进步也太平凡了不值得自己去欢呼雀跃了。学习哪怕是仅仅只是源于对一句话的感悟,也是进步