`
zl198751
  • 浏览: 272974 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

UML复习

    博客分类:
  • UML
阅读更多

UML类图

 
UML(Unified Modeling Language的缩写)统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。UML最适于数据建模,业务建模,对象建模,组件建模。 


最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。 

用例图Usecase 
用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。 

 


类图 Class 
  类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构 
  类在类图上使用包含三个部分的矩形来描述,最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作(或者说"方法") 

1. 类(Class):使用三层矩形框表示。 
第一层显示类的名称,如果是抽象类,则就用斜体显示。 
第二层是字段和属性。 
第三层是类的方法。 
注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。 
2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示。 
第一行是接口名称。 
第二行是接口方法。 
3. 继承类(extends):用空心三角形+实线来表示。 
4. 实现接口(implements):用空心三角形+虚线来表示 
5. 关联(Association):用实线箭头来表示,例如:燕子与气候 
6. 聚合(Aggregation):用空心的菱形+实线箭头来表示 
聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工
组合(Composition):用实心的菱形+实线箭头来表示 
组合:部分和整体的关系,并且生命周期是相同的。例如:人与手 
7. 依赖(Dependency):用虚线箭头来表示,例如:动物与氧气 
8. 基数:连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的 

 

 

序列图Sequence Diagram 

序列图显示具体用例(或者是用例的一部分)的详细流程。它几乎是自描述的,并且显示了流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。 

序列图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的对象实例。 

 

状态图Statechart Diagram 
  状态图表示某个类所处的不同状态和该类的状态转换信息。有人可能会争论说每个类都有状态,但不是每个类都应该有一个状态图 

包括5个基本元素: 
初始起点,它使用实心圆来绘制; 
状态之间的转换,它使用具有开箭头的线段来绘制; 
状态,它使用圆角矩形来绘制; 
断点,它使用空心圆来绘制; 
以及一个或者多个终止点,它们使用内部包含实心圆的圆来绘制。 
要绘制状态图,首先绘制起点和一条指向该类的初始状态的转换线段。状态本身可以在图上的任意位置绘制,然后只需使用状态转换线条将它们连接起来。 


活动图activity diagram 
是阐明了业务用例实现的工作流程 


状态图是描述某一对象的状态转化的,它主要表现的是该对象的状态。从状态图中可以看出,该对象在接受了外界的某种刺激之后,会做出什么样的反应。描述的是一个对象的事情。可以说是对类图的一种补充,帮助开发者完善某一类。 

活动图是描述系统在执行某一用例时的具体步骤的,它主要表现的是系统的动作。从活动图中可以看出,系统是如何一步一步的完成用例规约的,主要用于业务建模阶段。活动图描述的是整个系统的事情。可以说活动图是对用例图的一种细化,帮助开发者理解业务领域。 

比如说: 
学校用的学生选课系统。 
在系统中,学生是一个对象(UML中的对象,不是编程语言中的对象),那么学生“未登录”“已登录”“未完成选课”“已完成选课”“已选XX课”“未选XX课”等都是学生的状态。描述这些状态之间是如何转化的,就要用状态图。 
而学生选课的这个动作涉及到:学生、课程、教师、学生课表等多个对象。同时这个动作也是学生选课系统的一个用例,所以要描述它就要用到活动图。 

组件图 
组件图(component diagram)是用来反映代码的物理结构。从组件图中,您可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。 

组件是定义了良好接口的物理实现单元,是系统中可替换的物理部件。一般情况下,组件表示将类、接口等逻辑元素打包而形成的物理模块。一个组件包含它所实现的一个或多个逻辑类的相关信息,创建了一个从逻辑视图到组件视图的映射。 

有3种类型的组件:配置组件(Deployment Component)、工作产品组件(Work product component)和执行组件(Execution Component) 

(1)、配置组件是运行系统需要配置的组件,是形成可执行文件的基础。操作系统、Java虚拟机和数据库管理系统都属于配置组件。 

(2)、工作产品组件包括模型、源代码和用于创建配置组件的数据文件,它们是配置组件的来源。工作产品组件包括UML图、Java类和JAR文件、动态链接库(dll)和数据库表等。 

(3)、执行组件是在运行时创建的组件,是最终可运行的系统产生的允许结果。EJB、Servlets、HTML和XML文档、COM+和.Net组件以及CORBA组件都是执行组件的例子。 

部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式 

对象图(Object Diagram) 是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。 
[对象图] 

对象图显示某时刻对象和对象之间的关系。一个对象图可看成一个类图的特殊用例,实例和类可在其中显示。对象也和合作图相联系,合作图显示处于语境中的对象原型(类元角色)。 
  对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics