编辑推荐: |
本文来自于csdn,主要讲解了uml的一些思维导图方法及关系。 |
|
UML
Unified Modeling Language (UML)又称统一建模语言或标准建模语言。UML从考虑系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。尽管UML和其它开发工具还会设计出许多派生的视图,但上述这些图和其它辅助性的文档是软件开发人员所见的最基本的构造。
图聚集了相关的事物及其关系的组合,是软件系统在不同角度的投影。图由代表事物的顶点和代表关系的连通图表示。下面对常用的几类图进行简单介绍。
1. 类图(ClassDiagram)。展现了一组对象、接口、协作和它们之间的关系。类图描述的是一种静态关系,在系统的整个生命周期都是有效的,是面向对象系统的建模中最常见的图。
2. 对象图(ObjectDiagram)。展现了一组对象以及它们之间的关系。对象图是类图的实例,几乎使用与类图完全相同的标示。
3. 用例图(UseCaseDiagram)。展现了一组用例、参与者(actor)以及它们之间的关系。用例图从用户角度描述系统的静态使用情况,用于建立需求模型。
4. 交互图。用于描述对象间的交互关系,由一组对象和它们之间的关系组成,包含它们之间可能传递的消息。交互图又分为序列图和协作图,其中序列图描述了以时间顺序组织的对象之间的交互活动;协作图强调收发消息的对象的结构组织。
5. 状态图(StateDiagram)。由状态、转换、事件和活动组成,描述类的对象所有可能的状态以及事件发生时的转移条件。通常状态图是对类图的补充,仅需为那些有多个状态的、行为随外界环境而改变的类画状态图。
6. 活动图(ActiveDiagram)。一种特殊的状态图,展现了系统内一个活动到另一个活动的流程。活动图有利于识别并行活动。
7. 组件图(ComponentDiagram)。展现了一组组件的物理结构和组件之间的依赖关系。部件图有助于分析和理解组件之间的相互影响程度。
8. 部署图(DeploymentDiagram)。展现了运行处理节点以及其中的组件的配置。部署图给出了系统的体系结构和静态实施视图。它与组件图相关,通常一个节点包含一个或多个构建。
下面主要来介绍下时序图和类图。
时序图
时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus
of control)、消息(Message)等等。
角色
系统角色,可以是人、及其甚至其他的系统或者子系统。
对象
对象包括三种命名方式:
第一种方式包括对象名和类名;
第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;
第三种方式只显示对象名不显示类明。
生命线
生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间,同一水平生命线上的表示在同一时刻,如下图
激活
当一个对象没有被激活期时,该对象处于休眠状态,什么事都不做,但它仍然存在,等待新的消息来激活它。当一条消息被传递给对象的时候,它会触发该对象的某个行为,这就是说该对象被激活了。当一个对象处于激活期时,表明该对象正处于执行某个动作。
激活用一个细长的矩阵框(在生命线上)表示。
消息
消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous
Message)和返回消息(Return Message)等
下面是一个完整时序图示例:
类图
类图描述的是一种静态关系,在系统的整个生命周期都是有效的,是面向对象系统的建模中最常见的图。
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
一个完整的类图一般包括3个基本组件:类名、属性、方法:
泛化
泛化(generalization):表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。
实现
是一种类与接口的关系,表示类是接口所有特征和行为的实现。在类图中使用带三角箭头的虚线表示,箭头从实现类指向接口
关联
关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。
即我们代码中成员类变量的关系。
上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。
聚合
他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、汽车和轮胎;表现在代码层面上,和单向关联关系是一致的,只能从语义级别来区分,
在类图使用空心的菱形表示,菱形表示整体;
组合
是整体与部分的关系, 但部分不能离开整体而单独存在.他体现的是一种contains-a的关系, 如公司和部门是整体和部分的关系,
没有公司就不存在部门,这种关系比聚合更强,也称为强聚合;整体的生命周期结束也就意味着部分的生命周期结束;
用带实心菱形的实线表示,菱形指向整体
依赖
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
与关联关系不同的是,依赖关系是以参数变量的形式传入到依赖类中的,依赖是单向的,要避免双向依赖。一般来说,不应该存在双向依赖。
依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖。
【代码表现】:局部变量、方法的参数或者对静态方法的调用
下面展示一张网络上的类图方便大家理解~
另外,绘制UML图的方法有很多种,这里我使用的是在线网站绘制的。
UML在线绘图工具
参考文章:
http://www.cnblogs.com/ ywqu/archive/
2009/12/22/1629426.html
http://blog.csdn.net/ tianhai110
/article/details/6339565
思维导图
思维导图是一种将思维形象化的方法。,是一种图像式思维的工具以及一种利用图像式思考辅助工具。思维导图是使用一个中央关键词或想法引起形象化的构造和分类的想法;它用一个中央关键词或想法以辐射线形连接所有的代表字词、想法、任务或其它关联项目的图解方式。
常用的思维导图工具有MindManager和Xmind,这里介绍Xmind的使用方法。
Xmind下载地址
官方入门使用教程
思维导图
Xmind使用起来较为简单,但我们平时总结分析时,更应该注意提高自己的发散性思维,系统的分析问题,再用Xmind总结归纳。
|