`

类 UML _2

    博客分类:
  • UML
阅读更多

转自:http://mybluesky99.iteye.com/blog/384197

矩形框代表一个类(如图-1),类图分为三层,第一层为类的名称,如果是抽象类类名用斜体字表示,如图中动物类所示。第二层是类的特性(通常就是类的字段和属性)。第三层为类的操作(通常就是方法或行为)。注意前面的符号,“+”表示public,“-”表示private,“#”表示protected.


(图-1)

动物类是一抽象类,它是不能被实例化的,而猪类可以被实例化。

接口:

接口有两种表示方法:矩形表示法(如图-2中的飞翔的接口)和棒棒糖表示法(如图-2中唐老鸭类中实现讲人话的接口)。矩形表示法,顶端有<<接口>>或者<<interface>>,第一行:接口名称,第二行:接口方法。棒棒糖表示法,圆圈旁为接口名称,接口方法在实现类中出现,如唐老鸭类中的讲话。


(图-2)

泛化(Generalization)

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。具体表现:父类父类实例=new 子类();

 

(图-3)

(图-4)

用空心三角形+实线来表示继承(如图-3)。在静态结构图中,在父类和子类间拖放归纳连接,箭头指向父类,另一段指向子类。关联关系是使用实例变量来实现 

用空心三角形+虚线来表示实现接口(如图-4)。在静态结构图中,右击任意类形状(“类”、“参数化的类”、“实用程序”或“元类”),单击“形状显示选项”,然后在“常规选项”下选择“实现链接”。将类形状上的实现链接的控制手柄(黄色小菱形)粘附到接口、类或其他元素的连接点上。

关联(Association)

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联又分为双向关联、单向关联、自身关联。

双向关联:双向关联是两个类之间的联接。关联总是被假定是双向的;这意味着,两个类彼此知道它们间的联系,除非你限定一些其它类型的关联。如(图-5)Flight 的例子, 显示了在Flight类和Plane类之间的一个标准类型的关联。

 
(
图-5)

一个双向关联用两个类间的实线表示。在线的任一端,你放置一个角色名和多重值。图-5显示Flight与一个特定的Plane相关联,而且Flight类知道这个关联。因为角色名以Plane类表示,所以Plane承担关联中的“assignedPlane”角色。紧接于Plane类后面的多重值描述0...1表示,当一个Flight实体存在时,可以有一个或没有Plane与之关联(也就是,Plane可能还没有被分配)。图-5 也显示Plane知道它与Flight类的关联。在这个关联中,Flight承担“assignedFlights”角色;图-5 的图告诉我们,Plane实体可以不与flight关联(例如,它是一架全新的飞机)或与没有上限的flight(例如,一架已经服役5年的飞机)关联。

由于对那些在关联尾部可能出现的多重值描述感到疑惑,下面列出了一些多重值及它们含义的例子(0..1:0个或1个;1:只能1个;0..*:0个或多个;*:0个或多个;1..*:一个或多个;等等。)

单项关联:在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。(图-6)显示单向关联的透支财务报告的一个实例。


(图-6)

一个单向的关联,表示为一条带有指向已知类的开放箭头(不关闭的箭头或三角形,用于标志继承)的实线。如同标准关联,单向关联包括一个角色名和一个多重值描述,但是与标准的双向关联不同的时,单向关联只包含已知类的角色名和多重值描述。在(图-6)中的例子中,OverdrawnAccountsReport 知道 BankAccount 类,而且知道 BankAccount 类扮演“overdrawnAccounts”的角色。然而,和标准关联不同,BankAccount 类并不知道它与 OverdrawnAccountsReport 相关联。

依赖(Dependency)

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。依赖关系具体表现在局部变量,方法的参数,以及对静态方法的调用。比如说动物有几大特征,如新陈代谢,繁殖,有生命。而动物要有生命力,就需要氧气、水及食物,也就是说动物依赖于氧气和水。他们之间是依赖关系,用虚箭头表示。如(图-7)所示。


(图-7)

类图代码:

        abstract class Animal

        {

            public string Metabolism(Oxygen oxygen,Water water)

            {

            }

     }

聚合关系(Aggregation)

聚合关系表示一种弱的拥有关系,即A对象可以拥有B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形加实线箭头来表示。如下图(图-8)所示:


(图-8)

    在逻辑上来说,停车场中有汽车,但汽车并不是停车场的一部分。汽车和停车场之间没有部分和整体之间的关系。

    组合(合成)关系(Composition)

    组合也成为复合和合成关系,是一种强的“拥有”关系,体现了严格的部分与整体的关系,部分和整体的生命周期一样。如下图(图-9)所示,鸟和鸟的翅膀就是组合(合成)关系,他们是部分和整体的关系,并且翅膀和鸟的生命周期相同。合成关系用实心的菱形加实线箭头来表示。合成关系的连线两端还有一个数字,如图(图-9)的数字‘1’和‘2’,这被成为基数。表明这一端的类可以有几个实例,很显然一只鸟只有两个翅膀。如果一个类可以有无数个实例,则就用‘n’表示。关联关系和聚合关系也可以用基数的。


(图
-9

       在严格的组合(合成)关系中,类之间有强依赖关系,在很多情况下,代表整体的对象需要负责保持部分对象的存活。

分享到:
评论

相关推荐

    UML.mdl.rar_rose_uml _uml .m_uml rose_uml.mdl

    rose_uml _uml .m_uml rose_uml.mdl”提到了几个关键元素,首先,“UML.mdl”很显然是一个统一建模语言(Unified Modeling Language,简称UML)的模型文件,它可能包含了系统设计的各种元素,如类、接口、用例、序列...

    UML.rar_dependent UML_uml _软件工程泛化

    关联是UML中描述类之间结构性关系的概念,表示一个类知道或使用另一个类的信息。它可以是单向或双向的,并且可以有度(如一对一、一对多或多对多)。关联关系可以用实线表示,箭头可选,表示方向。 聚合是关联的一...

    uml_uml_

    2. **对象图(Object Diagram)**:对象图是类图的实例,显示了具体对象之间的关系,通常用于展示类图在某个特定时刻的实例状态。 3. **用例图(Use Case Diagram)**:用例图描述了系统参与者与系统之间的交互,表示了...

    UML1.rar_UML小例子_lab.mdl uml_mdl_uml _visual c

    这两个文件可能包含了用UML语言描述的图书管理系统的类结构、用例、流程或其他设计元素。 "www.pudn.com.txt"可能是一个来源于网络的文本文件,可能包含了该压缩包的来源信息或者与UML示例相关的附加资料,比如下载...

    ATM.rar_ atm uml_ATM uml_RATIONAL ATM UML_UML ATM _uml

    类图则可以描绘出系统中的类和对象,以及它们之间的关系,如继承、关联、聚合和组合。通过类图,我们可以明确地看到ATM系统中的实体,如账户、交易、用户卡等。 序列图和协作图用于表示对象间的交互顺序和协同工作...

    uml.rar_UML 快餐_uml _uml reservation_系统 UML_订餐

    《UML在订餐系统设计中的应用》 UML(Unified Modeling Language,统一建模语言)是软件工程领域中一种标准化的建模方法,用于可视化、构造和文档化软件密集系统的各种视角,包括系统的行为、结构和动态特性。在本...

    umljianmo.rar_UML 设计_java uml_uml _uml案例_水资源

    2. **系统架构设计**:通过类图,我们可以定义系统中的核心类和接口,如水资源数据库类、供需模型类等,以及它们之间的继承、关联和依赖关系。 3. **业务流程建模**:活动图用于描绘业务流程,如水资源的采集、处理...

    UML2.zip_uml _uml2

    **UML2.zip_uml _uml2** UML(统一建模语言)是软件工程领域中的一种标准化建模语言,用于可视化、构建和文档化软件系统。UML2是其第二个主要版本,它在UML1的基础上进行了大量扩展和改进,以适应现代软件开发的...

    UML建模手册.rar_UML建模_uml _uml documentation_uml 建模_开发文档

    2. **对象(Object)**: 对象是类的实例,拥有类定义的属性值和行为。 3. **接口(Interface)**: 接口定义了一组服务,这些服务可以被不同的实现类提供。在UML中,接口用带有空心圆圈的矩形表示。 4. **关联...

    UML.rar_UML 实例_UML建模_uml _uml 例

    **UML的类图**展示了类与类之间的关系,包括继承、关联、聚合和组合等。它是静态结构的可视化表示,有助于理解系统的数据模型和对象间的关系。 **用例图**则关注系统与外部参与者之间的交互,它描绘了用户或外部...

    uml.rar_uml _uml ppt_uml 课件

    2. **系统架构设计**:使用类图、对象图来展示类与类之间的关系,以及对象的静态结构。 3. **行为建模**:序列图和协作图用于描述对象间的交互;状态图和活动图则关注对象或系统的行为流程。 4. **组件与部署**:...

    PyPI 官网下载 | net_uml_draw-0.0.tar.gz

    然后,他们可以通过导入库并调用提供的函数或类来创建和绘制网络相关的UML图表。 总的来说,`net_uml_draw`是一个Python库,用于生成网络相关的UML图表,它简化了在Python项目中创建这些图表的过程,并且可以通过...

    uml课程设计_tonightygr_uml_UML设计_物流管理系统_物流系统报告_

    2. **类图(Class Diagram)**:类图展示了系统中的类、接口以及它们之间的关系。在物流管理中,可能有“订单”、“货物”、“仓库”等核心类,通过继承、关联和聚合等关系,构建出系统的核心数据模型。 3. **序列...

    统一建模语言的语法与应用UML_2_Semantics_and_Applications

    本文将基于书籍《统一建模语言的语法与应用UML_2_Semantics_and_Applications》中的内容,详细介绍UML 2.0的核心概念、语义以及应用场景。 #### 二、UML 2.0的核心概念 UML 2.0包含了多种视图和模型元素,这些元素...

    uml.rar_java uml_uml _数据库建模_选课_选课管理系统

    例如,用例图展示了学生、教师和管理员的不同操作,而类图则定义了系统中主要的实体类及其属性和方法。 其次,数据库建模是系统设计的关键环节。在选课系统中,数据包括学生信息、课程信息、选课记录等。通过ER...

    uml.rar_uml _系统 UML

    《UML在图书管理系统中的应用》 UML(Unified Modeling Language),统一建模语言,是软件工程领域一种广泛使用的建模工具,它为系统分析和设计提供了图形化的表示方法。在"uml.rar_uml _系统 UML"这个压缩包中,...

    UML.zip_miniVS_uml _超市uml图

    2. **用例图的构建** - **识别参与者(Actors)**:首先确定系统中的主要角色,如顾客、员工、管理员等。 - **定义用例(Use Cases)**:分析每个角色与系统交互的行为,如顾客的购买行为、员工的库存管理行为等。...

    用uml进行分析设计.rar_UML 详细设计_UML 设计_UML设计_uml _详细 设计 文档

    它展示了类、接口、对象之间的关系,如继承、关联、聚合、组合等。通过类图,我们可以清晰地看到系统中各组件的相互作用。 2. **序列图(Sequence Diagram)**:序列图描述了对象之间交互的时间顺序,展现了消息传递...

    UML 统一建模语言参考手册.zip_rose_uml _uml book_uml 建模_统一建模语言

    元素是UML图中的基本单元,包括类、接口、对象、活动等,它们通过关系如继承、关联、依赖等相互连接,构成复杂的系统模型。 “Rose UML”标签提及的是Rational Rose,这是一个早期广泛使用的UML建模工具,它支持UML...

    uml.rar_uml _visual c_仓库管理系统_系统 UML

    在uml.txt文件中,可能包含了系统的详细设计文档,包括UML图的描述、类的属性和方法定义,以及业务流程的说明。这些信息对于理解系统的整体架构至关重要。而www.pudn.com.txt可能是来源于网络的资料链接或者引用,...

Global site tag (gtag.js) - Google Analytics