您的位置:首页 > 移动开发 > Objective-C

UML建模学习8:Object Diagram

2016-08-03 11:02 357 查看

       对象与类的关系

       对象的概念与特性

       对象代表一个单独的、可确认的物体、单元或实体,它可以是具体的也可以是抽象的,在问题领域里有确切定义

的角色。换句话说,对象是边界非常清楚的任何事物。

       状态(属性):对象的状态包括对象的所有属性(通常是静态的)和这些属性的当前(通常是动态的)。

       行为(方法,事件):没有一个对象是孤立存在的,对象可以被操作,也可以操作别的对象。而行为就是一个对象

根据它的状态改变和消息传送所采取的行动和所做出的反应。

       标识(名字):为了将一个对象与其它所有对象区分开来,我们通常会给它起一个"标识"。

       对象与类

       对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,抽象出对象的"本质"。

       类是共享一个公用结构和一个公共行为对象集合。

       类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象、对象是具体。

       对象图简介

       对象图是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快

照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。

       对象图显示某时刻对象和对象之间的关系。一个对象图可看成一个类图的特殊用例,实例和类可在其中显示。对

象也和合作图相联系,合作图显示处于语境中的对象原型。

       UML对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于UML对象图显示类的多个对象实

例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存

在。

       对于对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个对象图。然

而,对象图这条短语在刻画各方面特定使用时非常有用。

       对象图显示对象集及其联系,代表了系统某时刻的状态。它包含带有值的对象,而非描述符,当然,在许多情况

下对象可以是原型。用合作图可显示一个可多次实例化的对象及其联系的总体模型,合作图包含对象和链的描述符。

如果合作图实例化,则产生了对象图。

       UML对象图不显示系统的演化过程。为此目的,可用带消息的合作图,或用顺序图表示一次交互。

       UML对象图的用途:

       1)捕获实例和连接

       2)在分析和设计阶段创建

       3)捕获交互的静态部分

       4)举例说明数据/对象结构

       5)详细描述瞬态图

       6)由分析人员、设计人员和代码实现人员开发

       对象图的表示法

       对象名:由于对象是一个类的实例,因此其名称的格式是“对象名:类名”,这两个部分是可选的,但如果是包

含了类名,则必须加上":",另外为了和类名区分,还必须加上下划线。

       属性:由于对象是一个具体的事物,因此所有的属性值都已经确定,因此通常会在属性的后面列出其值。

       


       阅读UML对象图

       首先找出所有的类,即在":"之后的名称

       整理完之后,就可以通过对象的名字来了解其含义

       按类来归纳属性,然后再通过关联来确定含义

       


       绘制对象图的过程

       先找出类和对象,通常类在"class"、"new"、"implements"等关键字之后的,而对象名则通常是在类名之后的

       然后对其进行细化的关联分析,绘制出相应的对象图

       绘制对象图的过程

       论证类模型的设计:当设计了类模型时,你可以通过对象图来模拟出一个运行时的状态,这样就可以研究在运行

时设计的合理性。同时,也可以作为开发人员讨论的一个基础。

       分析和说明源代码:由于类图只是展示了程序的静态类结构,因此通过类图看懂代码的意图是很困难的。因此在

分析源代码时,可以通过对象图来细化分析。而对于开发人员,对于逻辑较复杂的类交互时,可以考虑画出一些UML

对象图来做补充说明。

       UML对象图实例

       下面的图是一个对象图的一个例子。它代表了订单管理系统,我们已经讨论了在类图。下图是该系统的一个实

例,在一个特定的时间购买。它具有以下的对象:顾客、订单、特殊订单、一般订单。

       现在客户对象(C)是与三阶对象(O1,O2和O3)。这些订单对象相关联的特殊订单和一般订单对象(S1,S2和

N1)。顾客具有以下三个具有不同数目的订单(12,32和40),用于所考虑的特定的时间。

       现在,客户可以在将来增加的订单数量,在这种情况下对象图将反映。如果订单、特殊订单和正常秩订单对象那

么观察会发现,他们有一些值。

       订单的值是12,32和40,这意味着,这些对象都拥有这些实例时,捕获特定时刻的值(这里是购买时的时刻被

视为特定时间)。

       相同特别订订单和正常订单对象所具有的订单数分别为20,30和60。如果被认为是一个不同的时间购买,那么

这些值将发生相应的变化。

        因此,下面的对象图已经绘就考虑到所有上述提到的几点:

        


        类图与对象图的区别

        


        对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类

图在某一时刻的实例。

        在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例。下图显示了对象图的模型。其

中节点可以是对象也可以是类,连线表示对象之间的关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: