面向对象的分析和设计_第1页
面向对象的分析和设计_第2页
面向对象的分析和设计_第3页
面向对象的分析和设计_第4页
面向对象的分析和设计_第5页
已阅读5页,还剩303页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程,第7章 面向对象的分析和设计,内容摘要,面向对象的基本概念 面向对象的分析和设计过程 UML概述 用例建模 静态建模 动态建模 物理体系结构建模,内容摘要,面向对象的基本概念 面向对象的分析和设计过程 UML概述 用例建模 静态建模 动态建模 物理体系结构建模,Peter Coad和Edward Yourdon提出用下列等式识认面向对象方法(Object-Oriented): 面向对象 = 对象(object) + 分类(classification) + 继承(inheritance) + 通过消息的通信(communication with messages) 可以说,采用这四个

2、概念开发的软件系统是面向对象的,面向对象方法的出现很快受到计算机软件界的青睐,并成为20世纪90年代的主流开发方法。我们可以从下列几个方面来分析其原因: 从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律。 面向对象方法开发的软件系统易于维护,其体系结构易于理解、扩充和修改。 面向对象方法中的继承机制有力支持软件的复用。,面向对象的基本概念,1. 对象(object) 对象是指一组属性以及这组属性上的专用操作的封装体。 属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。

3、 操作(operation)(也称方法或服务)规定了对象的行为,表示对象所能提供的服务。,封装(encapsulation)是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。 一个对象通常可由对象名、属性和操作三部分组成。,2. 类(class) 类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。 类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。,3. 继承(inheritance) 继承是类间的基本关系,它是基于层次关系

4、的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。,有时,我们定义一个类,它把一些类组织起来,提供一些公共的行为,但并不需要使用这个类的实例,而仅使用其子类的实例。我们把这种没有实例的类称为抽象类(abstract class)。在抽象类中可以定义抽象操作,抽象操作指:只定义这个类的操作接口,不定义它的实现,其实现部分由其子类定义。抽象操作操作名用斜体字表示,也可以在操作特征(signature)后面加上特征字符串abstract。,如果一

5、个子类只有唯一一个父类,这个继承称为单一继承。如果一个子类有一个以上的父类,这种继承称为多重继承。,4. 消息(message) 消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数(如果有必要的话)。消息只告诉接收对象需要完成什么操作,但并不指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法完成所需的操作。,5. 多态性(polymorphism) 多态性是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”

6、对象上,则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。,6. 动态绑定(dynamic binding) 动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。 传统的程序设计语言的过程调用与目标代码的连接(即调用哪个过程)放在程序运行前(即编译链接时)进行(称为静态绑定),而动态绑定则是把这种连接推迟到运行时才进行。 动态绑定是一种在运行时确定被执行代码的技术。,在一般与特殊关系中,子类是父类的一个特例,所以父类对象可以出现的地方,也允许其子类对象出现。因此在运行过程中,当一个对象发送消息

7、请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。,多态性实例,Virtual,if 条件 then p := t ; else p := r ; area := p.getarea ;,Var p : polygon ; Var t : triangle := triangle.new ; Var r : rectangle := rectangle.new ;,内容摘要,面向对象的基本概念 面向对象的分析和设计过程 UML概述 用例建模 静态建模 动态建模 物理体系结构建模,面向对象分析Object-Oriented Analysis,获取客户对系统的需求:

8、包括标识场景和用例,以及建造需求模型 用基本的需求为指南,来确定类和对象(包括属性和操作) 定义类的结构和层次(继承关系) 建造对象关系模型 建造对象行为模型 利用用例/场景来复审分析模型,1.获取客户对系统的需求 需求获取必须让客户与开发者充分地交流,这里介绍一种采用用例来收集客户需求的技术。分析员首先标识使用该系统的不同的执行者(actor),这些执行者代表使用该系统的不同的角色。每个执行者可以叙述他如何使用系统,或者说他需要系统提供什么功能。执行者提出的每一个使用场景(或功能)都是系统的一个用例的实例,一个用例描述了系统的一种用法(或一个功能),所有执行者提出的所有用例构成系统的完整的需

9、求。,分析过程,注意,执行者与用户是不同的两个概念,一个用户可以扮演几个角色(执行者),一个执行者可以是用户,也可以是其他系统(应用程序或设备)。得到的用例必须进行复审,以使需求完整。,2.标识类和对象 类和对象来自问题领域 可以先标识候选类,然后进行筛选,3. 定义类的结构和层次 类的结构主要有两种:一般特殊(generalizationspecialization)结构和整体部分(wholepart)结构。 一般特殊结构是一种分类结构,反映了类间的一般与特殊的关系。一般类与特殊类之间是一种“is a”的关系,如:汽车是一种交通工具。同样,特殊类还可以分为更特殊的类,这样可形成类的层次结构。

10、 整体部分结构反映了类间的整体与部分关系。值得注意的是,整体部分关系是对对象而言的,而不是对类的。整体部分关系是一种“has a ”的关系,如“汽车”有“发动机”。同样,整体部分结构也具有层次结构。,4. 建造对象关系模型 对象-关系模型描述了系统的静态结构,它指出了类间的关系(relationship) 类之间的关系有关联、依赖、泛化、实现等,5. 建立对象行为模型 对象-行为模型描述了系统的动态行为,它们指明系统如何响应外部的事件或激励(stimulus)。 建模的步骤如下: 评估所有的用例,以完全理解系统中交互的序列 标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联 为每个用例

11、创建事件轨迹(event trace) 为系统建造状态机图 复审对象-行为模型,以验证准确性和一致性,面向对象设计(Object_Oriented Design),面向对象设计的一般步骤如下: 系统设计 将子系统分配到处理器 选择实现数据管理、界面支持和任务管理的设计策略 为系统设计合适的控制机制 复审并考虑权衡(折衷),对象设计 在过程级别(procedural lavel)设计每个操作,即设计每个操作的实现细节 定义内部类 为类属性设计内部数据结构 消息设计 使用对象间的协作和对象-关系模型,设计消息模型 复审 复审设计模型并在需要时迭代。,1. 系统设计 1) 将分析模型划分成子系统 在

12、OO系统设计中,我们把分析模型中紧密相关的类、关系等设计元素包装成子系统。 通常,子系统的所有元素共享某些公共的性质,它们可能都涉及完成相同的功能;它们可能驻留在相同的产品硬件中;或者它们可能管理相同的类和资源。子系统由它们的责任所刻画,即,一个子系统可以通过它提供的服务来标识。在OOD中,这种服务是完成特定功能的一组操作。,子系统的设计准则是: (1) 子系统应具有定义良好的接口,通过接口和系统的其它部分通信; (2) 除了少数的“通信类” 外,子系统中的类应只和该子系统中的其它类协作; (3) 子系统的数量不宜太多; (4) 可以在子系统内部再次划分,以降低复杂性。,2) 标识问题本身的并

13、发性,并为子系统分配处理器 通过对对象-行为模型的分析,可发现系统的并发性。如果对象(或子系统)不是同时活动的,则它们不需并发处理,此时这些对象(或子系统)可以在同一个处理器上实现。反之,如果对象(或子系统)必须对一些事件同时异步地动作,则它们被视为并发的,此时,可以将并发的子系统分别分配到不同的处理器,或者分配在同一个处理器,而由操作系统提供并发支持。,3) 任务管理设计 Coad和Yourdon提出如下管理并发任务对象的设计策略: (1) 确定任务的类型; (2) 必要时,定义协调者任务和关联的对象; (3) 将协调者任务和其它任务集成。 通常可通过了解任务是如何被启动的来确定任务的类型,

14、如事件驱动任务,时钟驱动任务。每个任务应该定义其优先级,并识别关键任务。当有多个任务时还可以考虑增加一个协调者任务,以控制这些任务协同工作,4) 数据管理设计 通常数据管理设计成层次模式,其目的是将数据的物理存储及操纵与系统的业务逻辑加以分离。 数据管理的设计包括设计系统中各种数据对象的存储方式(如内部数据结构、文件、数据库),以及设计相应的服务,即为要储存的对象增加所需的属性和操作。,5) 资源管理设计 OO系统可利用一系列不同的资源(如磁盘驱动器、处理器、通信线路等外部实体或数据库、对象等抽象资源),很多情况下,子系统同时竞争这些资源,因此要设计一套控制机制和安全机制,以控制对资源的访问,

15、避免对资源使用的冲突。 6)人机界面设计 对大多数应用系统而言,人机界面本身是一个非常重要的子系统。人机界面主要强调人如何命令系统,以及系统如何向人提交信息。它包括窗口、菜单、报告的设计。,7) 子系统间的通信 子系统之间可以通过建立客户/服务器连接进行通信,也可以通过端对端(peer to peer)连接进行通信。我们必须确定子系统间通信的合约(contract),合约提供了一个子系统和另一个子系统交互的方式。,2. 对象设计 对象设计是为每个类的属性和操作作出详细的设计,并设计连接类与它的协作者之间的消息规约。 对象描述 1)协议描述(外部的黑盒描述):描述对象的接口,即定义对象可以接收的

16、消息以及当对象接收到消息后完成的相关操作; 2)实现描述(内部描述):描述传送给对象的消息所蕴含的每个操作的实现细节,实现细节包括有关对象私有部分的信息,即关于描述对象属性的数据结构的内部细节和描述操作的过程细节。 对象的使用者只需要关心协议描述,2)设计算法和数据结构 为对象中的属性和操作设计数据结构和实现算法。 3. 设计模式(design patterns) 在许多面向对象系统中,存在一些类和通信对象的重复出现的模式。这些模式求解特定的设计问题,使面向对象设计更灵活,并最终可复用。这些模式帮助设计者复用以前成功的设计,设计者可以把这些模式应用到新的设计中。,一个设计模式通常可用四个信息来

17、描述: 1)模式名 设计模式名应具有实际的含义,它能反映模式的适用性和意图。 2)使模式可被应用所必须存在的环境和条件。 3)设计模式的特征 模式特征指出一些设计的属性,调整这些属性使该模式能适应各种不同的问题。这些属性表示设计的特征,这些特征能被用于检索(通过数据库)以找到合适的模式。 4)应用设计模式的结果(consequences) 对于一个设计模式的使用结果表明设计决策的走向。,历史性著作设计模式:可复用面向对象软件的基础一书中描述了23种经典面向对象设计模式,创立了模式在软件设计中的地位。该书四位作者被人们并称为Gang of Four (GoF),“四人组”,该书描述的23种经典设

18、计模式又被人们称为GoF23 种设计模式。 用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 为了实现代码可重用、容易理解、可靠性,给出了一些原则:比如:“开闭”原则、抽象类原则等。 设计模式就是去实现这些原则。,Object model 由五个层次组成,相当于把五张透明胶片叠在一起,每一层显示更多的细节。,面向对象设计基本过程,几种面向对象方法,20世纪80年代以来,出现了几十种面向对象软件开发方法。每一种都有自己的符号体系和开发过程,都支持以下基本活动: 标识类及对象 描述类及对象之间的关系 定义类的属性和操作 1、Booch方法 Booch是面向对象方法最早的提出者之

19、一,提出了面向对象软件工程的概念。提出了“微开发过程”和“宏开发过程”的思想。,微开发过程:定义一组分析任务,包括标识类和对象以及类和对象的语义、定义类和对象间的关系、描述类和对象的动态行为。 宏开发过程:将微过程反复应用,并包含了体系结构设计的计划活动: 将相似的对象聚集到独立的模块; 描述对象管理、内存管理、错误处理等其它功能的实施; 可使用原型对上述任务进行精化; 将同时执行的进程分配到不同的处理机。 该方法提出建立以下模型: 类图、对象图、状态转移图、时序图、模块图、进程图。,2、Coad/Yourdon方法 著名的OOA/OOD方法,也是最早的面向对象的分析与设计方法之一。简单、易学

20、。 OOA阶段的任务: 标识类及对象 定义结构(一般特殊结构、整体部分结构) 划分主题 定义属性及对象间的实例连接 定义服务及对象间的消息连接 上述任务迭代进行,产生5个层次的问题域模型(主题层、类及对象层、结构层、属性层、服务层),OOD阶段的活动: 问题域部分 人机交互部分 任务管理部分 数据管理部分 3、OMT方法 Rumbaugh等人提出的对象建模技术(Object Model Technology, OMT),该方法强调了三种模型,并将软件开发过程划分为以下几个阶段: (1)系统分析 问题描述 建立对象模型 产品:对象模型对象图数据字典, 建立动态模型 产品:动态模型状态图事件跟踪图

21、 建立功能模型 产品:功能模型数据流图约束 (2)系统设计 将系统分解为各个子系统 确定问题中固有的并发性 将各子系统分配给处理器 数据存储管理 全局资源管理 选择软件控制机制 边界条件处理,(3)对象设计 对分析模型细化: 将三种模型结合起来以获得对象类上的操作。如功能模型中的加工,动态模型中对应一个事件的活动。 设计实现操作的算法 优化数据访问路径 实现系统设计中的控制机制 为提高继承而调整类结构 设计对象之间的关联 将类和关联集成到模块中,4、Jacobson方法 也称OOSE方法。最大特点是强调使用实例(Use-Case),每一个用例就是一个使用系统的方式,用例的执行将引发执行一系列与

22、行为相关的事务。 该方法将用例贯穿于整个开发阶段,并在用例描述中引入了角色或参与者(Actor)的概念。角色指使用系统的人以及与系统相互作用的软硬件环境。 该方法还将对象区分为实体对象(业务对象)、接口对象(界面对象)和控制对象。 需求分析阶段活动:定义潜在的角色、识别问题域中的对象和关系、基于需求规格说明和角色的需要描述用例。 设计阶段的活动:从用例的描述中发现与设计有关的对象,并描述其属性、行为和关联。同时把所有用例的行为分派给每个对象。,内容摘要,面向对象的基本概念 面向对象的分析和设计过程 UML概述 用例建模 静态建模 动态建模 物理体系结构建模,统一建模语言UML,Unified

23、Modeling Language,UML概述,为何研究UML结束方法大战 发展历史 1994年Booch和Rumbaugh在Rational Software Corporation开始了UML的工作,其目标是创建一个“统一的方法”, 1995年OOSE的创始人Jacobson加盟到这项工作中,工作重点转移到创建一种统一的建模语言UML 1996年6月、10月、1997年1月、11月分别推出了UML0.9、 UML0.91、 UML1.0、 UML1.1,UML概述,1997年11月,OMG(Object Management Group)批准把UML1.1作为基于面向对象技术的标准建模语言

24、 之后,UML进行了持续的修订和改进,先后产生了UML1.2、1.3、1.4、1.5版本 2004年推出了UML2.0,UML2.0对UML1.x作了重大的修改,Booch93,OMT-2,UML 0.8,UML 0.9 public void doOne( ) myB.doTwo( ); myB.doThree( ); ,顺序图中的生存线(例),attribute=name (argument-list) :return-value attribute是生命线的属性(对象名),用以存储返回值 name是消息名(信号或操作名) argument-list是一个参数值的表,每个参数值可以是: a

25、rgument-value parameter-name=argument-value :表示任何参数值 name可以用“*”替代,此时表示任何消息,顺序图中消息的表示,简单消息表示消息类型未知或与消息类型无关,或是一个同步消息的返回 同步消息表示发送对象必须等接收对象完成消息的处理后才能继续执行 异步消息表示发送对象在消息发送后立即继续执行,而不必等待接收对象的返回 传送延迟可用倾斜的箭头表示,意思是消息发送后需经历一段延迟时间才被接收(可以注明最大延迟时间),顺序图中的消息类型,顺序图中的条件和分支,消息上可附加条件,当条件为真时消息才被发送或接收。条件可用于描述分支,当几个消息箭头上的条

26、件互斥时,表示某一时刻只有一个消息被发送。如果条件不是互斥的,则消息会并行地发出。,顺序图中的循环和约束,顺序图中的递归,顺序图中的创建和消亡,一个对象可以通过一条消息创建另一个对象。当需要显式地表示对象的销毁(没有垃圾自动回收机制或特别指明不再使用)时,在图中用一个符号表示。创建或消亡一个对象的消息通常是同步消息。,顺序图的结构化控制结构,对于复杂的控制流可以用组合片段来表示 一个组合片段有一个关键字和一或多个子片段 关键字指明片段类型 子片段指出操作对象,ref(引用):对另一交互的引用 loop(循环):当循环的警戒条件为真时循环执行子片段 alt(选择):两个或多个子片段之间的选择执行

27、 每个子片段有一个警戒条件,为真时执行该子片段 如果多个子片段的警戒条件为真,则无确定性地选择它们中的一个执行 如果没有一个子片段的警戒条件为真,则不执行,组合片段的类型-1,opt(可选):选择的带单个子片段的特殊情况,警戒条件为假时省略该子片段 par(并发):两个或多个子片段的并发执行 在不同片段中消息的相关顺序是不确定的 当所有子片段完整地并发执行后,控制流又连接到一起成为单一的流,组合片段的类型-2,引用,循环,选择(嵌套),通信图,通信图展示了链接的对象之间如何发送消息,可用于描述系统中的操作执行、用例执行或一个简单的交互场景 通信图画成对象图,图中的消息箭头表示对象之间的消息流

28、消息上可标以标记,说明消息发送的顺序,还可指明条件、重复和回送值等 一个通信图从一个引起整个交互或协作的消息开始,如用户界面上的操作 与顺序图相比,通信图更强调交互对象之间的关系(context),组成:对象、链接,消息流,通信图中描述消息的语法如下: seguence-expressionopt message 其中:message与顺序图中消息的语法相同,Sequence-expression的语法如下: integer iteration-expressionopt 或name iteration-expressionopt 其中integer是指定消息顺序的顺序号,如:1、1.1、1.

29、2、2、2.1等。这种顺序号描绘了消息的顺序和嵌套关系。如果是同步消息,则嵌套地调用操作并返回。 name表示并行的控制线程,如1.2a和1.2b是并行发送的并发消息。,iteration-expression表示有条件地或重复地执行,它有如下两种形式: *iteration-clause (表示重复) condrtion-clause(表示分支) 这里iteration-clause是重复条件(循环执行的条件),即循环执行,如1.1*x=1.10:dosomething( )。 第二种形式中的condition-clause用于指定分支,如x = 0,表示仅执行条件为真的分支(发送的消息连接

30、到那个分支)。,链:连接两个对象的交互路径,消息传递的方向,消息及消息顺序编号,不带顺序编号的起始消息,同步调用中的嵌套消息,电梯运行过程的通信图,链是类关联的实例,是连接两个对象的路径,指明了对象间某种可能的导航和可见性。通信图中的消息在链上流转,多个消息可以共享一条单链。 链角色上可以附加相应的约束,包括: global (全局)表示该角色是全局的; local (局部)表示该角色是一个操作中的局部变量; parameter (参数)表示该角色是一个操作中的参数; self (自身)指出对象可以向自身发送消息。,通信图的链,发给类对象的消息(可将其视为元类的实例):一般是对该类静态方法的调

31、用 该表达法同样适用于顺序图,发送给类对象的消息,同步消息,异步消息,主动对象,通信图中的同步/异步消息,带条件的消息,1a和1b表示互斥的条件路径,1a路径下的嵌套消息,1b路径下的嵌套消息,msg2或msg4后的无条件消息,带互斥条件的通信图,用消息标号后的*表示迭代 后面可跟可选的迭代子句,精确的集合迭代,简略的集合迭代,通信图中的循环和迭代,在通信图的对象框中,可用new或destroyed表示该对象在协作期间被创建或消亡。transient则表示对象在同一个协作期间被创建并消亡。,通信图中对象的生存期,语义等价:可以被相互转换 但一些细微信息有所不同: 1.通信图可以显示对象之间的链

32、接关系 2.顺序图中可以显示消息的返回,交互图(顺序图和通信图)总结,内容摘要,面向对象的基本概念 面向对象的分析和设计过程 UML概述 用例建模 静态建模 动态建模 物理体系结构建模,物理体系结构建模,物理体系结构涉及系统实现和部署的详细描述 描述代码模块的物理结构和依赖关系 描述相关硬件设备的结构,包括不同的结点和这些结点之间如何连接,并描述进程、程序、构件等软件在运行时的物理分配,物理体系结构应回答的问题,类和对象物理上位于哪个程序或进程 程序和进程在哪台计算机上执行 系统中有哪些计算机和其它硬件设备,它们如何相互连接 实现文件之间的关系 不同的代码文件之间有什么依赖关系 如果一个指定的

33、文件被改变,那么哪些其它文件要重新编译,物理体系结构的UML描述,构件图:描述构件的定义、内部结构和组装关系 构件是系统设计的模块化部分,它给出一组外部的接口,而隐藏了它的实现 在系统中满足相同接口(供应/请求接口)的构件可以自由地替换 内部结构图 部署图:部署图展示了运行时处理结点和在结点上生存的制品的配置,7.7.1构件图,构件图有利于: (1)帮助客户理解最终的系统结构。 (2)使开发工作有一个明确的目标。 (3)复用软件组件。 (4)帮助开发组的其他人员理解系统。 例如,编写文档和帮助的开发人员不直接参与系统的分析和设计,然而他们对系统的理解直接影响到系统文档的质量,而构件图是帮助他们

34、理解系统的有力工具。,构件图,构成构件图的元素包括: 构件(component) 接口(interface) 关系(relationship) 还可以包括包(package)和子系统(subsystem) 它们有助于将系统中的模型元素组织成更大的组块。,构件图,1构件(Component) 构件是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现。 它具有很广泛的定义,以下的一些内容都可以被认为是构件:程序源代码、子系统、动态链接库等。构件的图形表示法是把组件画成带有两个标签的矩形。,构件图,构件在许多方面都与类相同:二者都有名称;都可以实现一组接口;都可以参与依赖、泛

35、化和关联关系;都可以被嵌套;都可以有实例;都可以参与交互。 构件和类之间也有一些显著的差别: 类表示逻辑抽象,而构件表示存在于计算机中的物理抽象。 构件表示的是物理模块而不是逻辑模块,与类处于不同的抽象级别。 类可以直接拥有属性和操作;而一般情况下,构件仅拥有只能通过其接口访问的操作。,构件图,构件可以分为以下三种类型: 实施构件(Deployment Component) 如(DLL)、(EXE)、ActiveX控件和JavaBean组件等. 工作产品构件(Work Product Component) 执行构件(Execution Component)如由DLL实例化形成的COM对象。,构

36、件图,2接口(Interface) 接口是一组用于描述类或构件的一个服务的操作, 它是一个被命名的操作的集合,与类不同,它不描述任何结构(因此不包含任何属性),也不描述任何实现(因此不包括任何实现操作的方法)。,构件图,构件的接口可以分为两种类型: (1)供应接口(provided interface)又称导出接口(expert interface):即为其他构件提供服务的接口,一个构件可以有多个导出接口。 (2)请求接口(required interface)又称导入接口(import interface):在构件中所用到的其他构件所提供的接口,称为导入接口,一个构件可以使用多个导入接口。,构件图,3关系(relationship) 关系是事物之间的联系,在面向对象的建模中,最重要的关系是依赖、泛化、关联和实现,但构件图中使用最多的是依赖和实现关系。 构件图中的依赖关系使用虚线箭头表示 ,如图所示。,构件图,实现关系使用实线表示。实现关系多用于构件和接口之间。构件可以实现接口。,信用卡代码构件图,构件图表示构件间的组装关系,复合构件的内部构件图,构件图,使用构件图建模的步骤可按照下列步骤进行: (1)对系统中的构件建模; (2)定义相关构件提供的接口; (3)对它们间的关系建模; (4)对建模的结果进行精化和细化。,部署图(Deployment

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论