对于一些不了解UML的程序员来说一听到 UML? 恩 听说过 不过没有详细研究过.....等。 但是随着现在对于项目的要求也越来越高,使用图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等 一些逻辑思维 是越来越重要和不可缺少的一部分了。
下面我们来看看UML吧?
首先,我们来看看什么是UML? UML有哪些特点 ? UML都能干什么?
UML呢 其实就是一种可视化建模型的工具。当然了 UML的全文Unified Modeling Language(统一建模语言)也很好的阐述了这一作用。
UML支持从需求分析开始的软件开发的全过程。UML通过三类图形建立系统模型:用例(Use Case)图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的抽象角度实现系统的可视化。
UML模型视图:
1.用例图:从用户角色描述系统功能,并指出各功能的操作者,描述系统应该具备的功能,即被称为参与者的外部用户所能观察到的功能,从用户角色描述系统功能,并指出各功能的操作者。
2.静态图:(类图和包图)描述形同中类的静态结构、表示类之间的关系、依赖、聚合。包由包或类组成的,表示包与包之间的关系。包图用于描述系统的分层结构。
3.行为图:描述系统的动态模型和组成对象间的交互关系,其中状态图描述类的对象所有可能的状态以及事就爱你发生时状态的转移条件。
4.交互图:描述对象间的交互关系,其中顺序图显示对象之间的动态合作关系,它强调对象之间的消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系。合作图跟顺序图相似,显示对象间的动态合作关系。
5.实现图:其中构件图描述代码部件的物理结构及各部件之间的依赖关系 。配置图定义系统中硬件的物理体系结构。
逻辑视图:描述用例视图中提出的系统功能的实现。逻辑视图既描述系统的静态结构,也描述系统内部的动态协作关系。
组件视图(实现视图):描述系统的实现模块以及它们之间的依赖关系。
并发视图(进程视图):考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。
部署视图:显示系统的物理部署,并描述位于节点实例上的运行组件实例的部署情况。
静态图:(类图和包图)描述形同中类的静态结构、表示类之间的关系、依赖、聚合。包由包或类组成的,表示包与包之间的关系。包图用于描述系统的分层结构。UML的主要特点
1统一的标准(被OMG所认定的建模语言 标准) 2面向对象(支持面向对象软件开发) 3可视化建模
4独立于开发过程(可以应用到任意一种开发过程中去) 5概念明确、建模表示法简洁、图形结构清晰、容易掌握和使用
UML统一了什么?
UML统一了Booch、OMT、OOSE和其他面向对象方法所涉及的基本概念和建模符号。
UML描述了面向对象分析设计的方法了吗?
没有.UML是一种建模语言而不是一种分析设计方法。因为UML中没有给出一个软件开发过程。
用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果。具备以下几个方面的特点:
1它描述了待开发系统的功能需求。
2它将系统看作黑盒,从外部参与者的角度来理解系统。
3它驱动了需求分析之后各阶段的开发工作。不仅保证系统所有功能的实现,还可作为检验所开发的系统是否满足需求的依据。
关联
泛化
实现
依赖
参与者之间的关系:泛化 依赖
用例之间具有
包含<include>
扩展<extend>
泛化
用例说明主要组成:用例名称 简要说明 优先级 参与者 前置条件 后置条件 主事件流
其他事件流 此用例所泛化的用例列表 此用例所包含的用例列表 此用例所扩展的用例列表
类属性的语法为:
[可见性] 属性名 [:类型] [=初始值] [{属性的约束}]
静态属性名下加下划线
公有(Public) “+”
私有(Private)“-”
受保护(Protected)“#”
包内公有(Package) “~”
类操作的语法为:
[可见性] 操作名 [(参数列表)] [:返回值类型]
关联关系
(1)关联的角色(2)关联的多重性
(3)关联类(4)关联的约束(5)限定关联
(6)聚合(7)组合
顺序图的组成
1对象 2 生命线 3 消息 4 激活
协作图是对象图的扩展,除了展示对象之间的关联外,还显示对象之间的消息传递。
状态图只是对单个对象建立模型
§ 状态图主要由状态、转移、事件、动作组成
§ 状态是指对象在其生命期中的某个条件或状况。
§ 转移是状态之间的关系,表示对象从源状态变化为目标状态
§ 事件表示在某一特定的时间或空间出现的现象。
§ 动作是一段过程,由对象中的方法来实现
状态图 组成
1状态2 转移3 事件:调用事件、变化事件、时间事件、信号事