首页 全国软件设计师强化培训教程UML部分

全国软件设计师强化培训教程UML部分

举报
开通vip

全国软件设计师强化培训教程UML部分UMLUMLUMLUML-1-UMLUMLUMLUML-1-UMLUMLUMLUML基础教程UMLUMLUMLUML基础教程UMLUMLUMLUML-2-UMLUMLUMLUML-2-目录目录目录1.1.1.1.前言1.11.11.11.1前言1.21.21.21.2UMLUMLUMLUML概述1.3UML1.3UML1.3UML1.3UML事物1.4UML1.4UML1.4UML1.4UML关系1.51.51.51.5各UMLUMLUMLUML图及特征1.61.61.61.6各UMLUMLUMLUML图的关系1....

全国软件设计师强化培训教程UML部分
UMLUMLUMLUML-1-UMLUMLUMLUML-1-UMLUMLUMLUML基础 教程 人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程 UMLUMLUMLUML基础教程UMLUMLUMLUML-2-UMLUMLUMLUML-2-目录目录目录1.1.1.1.前言1.11.11.11.1前言1.21.21.21.2UMLUMLUMLUML概述1.3UML1.3UML1.3UML1.3UML事物1.4UML1.4UML1.4UML1.4UML关系1.51.51.51.5各UMLUMLUMLUML图及特征1.61.61.61.6各UMLUMLUMLUML图的关系1.7UML1.7UML1.7UML1.7UML语法1.81.81.81.8习题2.2.2.2.用例图2.12.12.12.1用例图概要2.22.22.22.2用例图中的事物及解释2.32.32.32.3用例图中的关系及解释2.42.42.42.4例子2.52.52.52.5习题3.3.3.3.类图3.13.13.13.1类图概要3.23.23.23.2类图中的事物及解释3.33.33.33.3类图中的关系及解释3.43.43.43.4类图与代码的映射3.53.53.53.5类图例子3.63.63.63.6习题4.4.4.4.顺序图4.14.14.14.1概要4.24.24.24.2顺序图中的事物及解释4.34.34.34.3顺序图与用例图和类图的关系4.44.44.44.4顺序图例子4.54.54.54.5练习题5.5.5.5.协作图5.15.15.15.1概要5.25.25.25.2协作图中的事物及解释5.35.35.35.3协作图中的关系及解释UMLUMLUMLUML-3-UMLUMLUMLUML-3-目录目录目录5.45.45.45.4对消息标签的详细讲解5.55.55.55.5协作图例子5.65.65.65.6协作图与顺序图的区别和联系5.75.75.75.7练习题6.6.6.6.状态图6.16.16.16.1状态图概要6.26.26.26.2状态图的组成6.36.36.36.3状态图中的事物及解释6.46.46.46.4状态的可选活动表6.56.56.56.5简单的例子::::对象的状态图6.66.66.66.6复杂的例子::::网上银行登陆系统6.76.76.76.7练习7.7.7.7.活动图7.17.17.17.1活动图概要7.27.27.27.2活动图事物7.37.37.37.3活动图关系7.47.47.47.4活动图实例7.57.57.57.5活动图练习8.8.8.8.构件图8.18.18.18.1构件图概要8.28.28.28.2构件图中的事物及解释8.38.38.38.3构件图中的关系及解释8.48.48.48.4构件图的例子8.58.58.58.5习题9.9.9.9.部署图9.19.19.19.1部署图概要9.29.29.29.2部署图中的事物及解释9.39.39.39.3部署图中的关系及解释9.49.49.49.4部署图的例子9.59.59.59.5关于部署图与构件图9.69.69.69.6习题附录UMLUMLUMLUML-4-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.11.11.11.1 前言本资料对UML1.5各种模型图的构成和功能进行说明,通过本资料的学习达到可以读懂UML模型图的目的。本资料不涉及模型图作成的要点等相关知识。1.21.21.21.2 UMLUMLUMLUML概述1.1.1.1.2.1UML2.1UML2.1UML2.1UML简介UML(UnifiedModelingLanguage)为面向对象软件设计提供统一的、 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。UML的定义包括UML语义和UML表示法两个部分。 (1)UML(1)UML(1)UML(1)UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。 (2)UML(2)UML(2)UML(2)UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。1.2.2UML1.2.2UML1.2.2UML1.2.2UML模型图的构成事物((((Things)Things)Things)Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象关系((((Relationships)Relationships)Relationships)Relationships):关系把事物紧密联系在一起图((((Diagrams)Diagrams)Diagrams)Diagrams):图是事物和关系的可视化表示UMLUMLUMLUML-5-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.31.31.31.3 UMLUMLUMLUML事物UML包含4种事物:构件事物行为事物分组事物注释事物1.3.11.3.11.3.11.3.1 构件事物:UML模型的静态部分,描述概念或物理元素它包括以下几种:类:具有相同属性相同操作相同关系相同语义的对象的描述接口:描述元素的外部可见行为,即服务集合的定义说明协作:描述了一组事物间的相互作用的集合用例:代表一个系统或系统的一部分行为,是一组动作序列的集合构件:系统中物理存在,可替换的部件节点:运行时存在的物理元素另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体1.3.21.3.21.3.21.3.2 行为事物:UML模型图的动态部分,描述跨越空间和时间的行为交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:描述事物或交互在生命周期内响应事件所经历的状态序列1.3.31.3.31.3.31.3.3 分组事物:UML模型图的组织部分,描述事物的组织结构包:把元素组织成组的机制1.3.41.3.41.3.41.3.4 注释事物:UML模型的解释部分,用来对模型中的元素进行说明,解释注解:对元素进行约束或解释的简单符号UMLUMLUMLUML-6-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.4UML1.4UML1.4UML1.4UML关系1.4.11.4.11.4.11.4.1依赖依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义1.4.21.4.21.4.21.4.2关联关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系1.4.31.4.31.4.31.4.3泛化泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系1.4.41.4.41.4.41.4.4实现实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约UMLUMLUMLUML-7-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.51.51.51.5各UMLUMLUMLUML图及特征1.5.11.5.11.5.11.5.1 用例图((((UseCaseDiagram)UseCaseDiagram)UseCaseDiagram)UseCaseDiagram)※用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元※类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)※类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联1.5.21.5.21.5.21.5.2 类图((((ClassDiagram)ClassDiagram)ClassDiagram)ClassDiagram)LineDraw()RectangleDraw()GroupGraphicsDraw()Add(g:Graphics)Remove(g:Graphics)GetChild(index:int)GraphicsDraw()Add(g:Graphics)Remove(g:Graphics)GetChild(index:int)+childrenUMLUMLUMLUML-8-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.51.51.51.5各UMLUMLUMLUML图及特征1.5.31.5.31.5.31.5.3对象图((((ObjectObjectObjectObjectDiagramDiagramDiagramDiagram))))※对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类1.5.41.5.41.5.41.5.4顺序图((((SequenceDiagram)SequenceDiagram)SequenceDiagram)SequenceDiagram)※顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互※顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件UMLUMLUMLUML-9-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.51.51.51.5各UMLUMLUMLUML图及特征1.5.51.5.51.5.51.5.5协作图(CollaborationDiagram)(CollaborationDiagram)(CollaborationDiagram)(CollaborationDiagram)※协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系.※协作图的一个用途是表示一个类操作的实现1.5.61.5.61.5.61.5.6状态图((((StateChartDiagram)StateChartDiagram)StateChartDiagram)StateChartDiagram)※状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成AvailableLockedSold初始状态assignedtosubscriptionlocktimeoutunlockbuy状态exchange转换触发器事件UMLUMLUMLUML-10-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.51.51.51.5各UMLUMLUMLUML图及特征1.5.71.5.71.5.71.5.7活动图(ActivityDiagram)(ActivityDiagram)(ActivityDiagram)(ActivityDiagram)※活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动※活动图描述了一组顺序的或并发的活动1.5.81.5.81.5.81.5.8构件图((((CompoCompoCompoComponnnnentDiagram)entDiagram)entDiagram)entDiagram)※构件图为系统的构件建模型—构件即构造应用的软件单元—还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响UMLUMLUMLUML-11-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.51.51.51.5各UMLUMLUMLUML图及特征1.5.91.5.91.5.91.5.9部署图(DeploymentDiagram)(DeploymentDiagram)(DeploymentDiagram)(DeploymentDiagram)部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配类图顺序图需求分析BDBDBDBDFD/DDFD/DDFD/DDFD/DD类图顺序图用例图用例文档用例图顺序图主要图之间的关系1.61.61.61.6各UMLUMLUMLUML图的关系UMLUMLUMLUML-12-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.7UML1.7UML1.7UML1.7UML语法描述NewClassInterfaceusecaseclasssuspend()flush()对象至少拥有一个进程或线程的类主动类是系统中物理的、可替代的部件构件在系统外部与系统直接交互的人或事物参与者是对一组动作序列的描述用例定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体协作是描述了一个类或构件的一个服务的操作集接口对象是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述类一条实线,可能有方向关联一条带有空心箭头的实线泛化是在运行时存在的物理元素节点一条带有空心箭头的虚线实现一条可能有方向的虚线依赖是UML模型的解释部分注释事物把元素组织成组的机制包它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列状态机它由在特定语境中共同完成一定任务的一组对象间交换的消息组成交互actorNewProcessorstateNewPackagecomponetUMLUMLUMLUML-13-1.1.1.1.前言1.1.1.1.1.1.1.1.前言前言1.81.81.81.8习题判断题1、UML中一共有九种图:它们是用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图2、用例图是从程序员角度来描述系统的功能3、类图是描述系统中类的静态结构,对象图是描述系统中类的动态结构4、活动图和状态图用来描述系统的动态行为5、协作图的一个用途是表示一个类操作的实现选择题6、请在下面选项目中选出两种可以互相转换的图(a)顺序图(b)协作图(c)活动图(d)状态图7、下面哪些图可用于BD阶段(a)用例图(b)构件图(c)类图(d)顺序图答案:1.正确2.错误3.错误4.正确5.正确6.(a)(b)7.(a)(c)(d)UMLUMLUMLUML-14-2.12.12.12.1用例图概要2.2.2.2.用例图2.2.2.2.2.2.2.2.用例图用例图系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。创建新用例,确认候选用例和划分用例范围的优秀法则----“WAVE”测试(见附录)用例(UseCase)在系统外部与系统直接交互的人或事物(如另一个计算机系统或一些可运行的进程)。我们需要注意的是:1.参与者是角色(role)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。2.参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。3.在后面的顺序图等中出现的“参与者”,与此概念相同,但具体指代的含义,视具体情况而定。参与者(Actor)UMLUMLUMLUML表示解释事物名称2.22.22.22.2用例图中的事物及解释�用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。(《UML参考手册》)�用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)。�用例图多用于静态建模阶段(主要是业务建模和需求建模)。UMLUMLUMLUML-15-2.2.2.2.用例图2.2.2.2.2.2.2.2.用例图用例图发出箭头的事物“isa”箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。泛化参与者之间的关系箭头指向的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。扩展《include》箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。包含用例之间的关系表示参与者与用例之间的交互,通信途径。(关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。)关联参与者与用例之间的关系图解释关系《extend》2.32.32.32.3 用例图中的关系及解释UMLUMLUMLUML-16-2.2.2.2.用例图2.2.2.2.2.2.2.2.用例图用例图实例1参与者之间的泛化关系参与者:经理,安全主管,保安用例:管理人事,批准预算,批准安全证书,监视周边在参与者之间不存在泛化关系的情况下,各个参与者参与用例的情况分别是:经理参与用例管理人事和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。由于安全主管与经理,安全主管与保安之间泛化关系的存在,意味着安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。这样,安全主管就可以参与全部4个用例。但经理或者保安却不能担任安全主管的角色,也就不能参与用例批准安全证书。实例2用例之间扩展和包含关系用例的上下文是:短途旅行但汽车的油不足以应付全部路程。那么为汽车加油的动作在旅行的每个场景(事件流)中都会出现,不加油就不会完成旅行。吃饭则可以由司机决定是否进行,不吃饭不会影响旅行的完成。2.42.42.42.4例子UMLUMLUMLUML-17-2.2.2.2.用例图2.2.2.2.2.2.2.2.用例图用例图实例3.航空售票的用例图�参与者(actor):clerk,监督员,信用卡服务商,信息亭�用例(usecase):Buytickets,BuySubscription,Makecharges,Surveysales�参与者Clerk参与(或称发起)Buytickets和BuySubscription两个用例(关联关系)。这两个用例的事件流都包含Makecharges用例(包含关系)。�系统由:Buytickets,BuySubscription,Makecharges,Surveysales组成。�该系统主要包含:Buytickets,BuySubscription,Makecharges,Surveysales这几个功能。�该系统主要面向的用户(参与者):clerk,监督员,信用卡服务商,信息亭。信息亭ClerkBuyticketsBuySubscription信用卡服务商Makecharges监督员Surveysales参与者<<include>><<include>>用例BoxOffice系统关系UMLUMLUMLUML-18-2.2.2.2.用例图2.2.2.2.2.2.2.2.用例图用例图1.右图中的参与者有?(a)1(b)2(c)3(d)42.右图中的用例有?(a)1(b)2(c)3(d)43.2和3之间是什么关系?5和6呢?(a)扩展,包含(b)包含,扩展4.5缺少了3仍然是个完整的用例?(a)是的(b)不是5.4能够参与2吗?1能够参与5吗?(a)可以,不可以(b)不可以,可以习题答案:1、(a)(d)2、(b)(c)3、(b)4、(b)5、(b)2.52.52.52.5习题UMLUMLUMLUML-19-UMLUMLUMLUML-19-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图Personname:stringUseComputer()Computercpu:stringmemory:stringrun()3.23.23.23.2类图中的事物及解释3.2.13.2.13.2.13.2.1类※从上到下分为三部分,分别是类名、属性和操作。类名是必须有的※类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等※类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等Account-balance:double=1+Deposit(amount:double):int+ComputeInterest():double可见性-代表private+代表public#代表protected也可以使用图形表示返回值类型操作名称斜体为抽象操作缺省值类名斜体为抽象类属性名称参数列表3.13.13.13.1类图概要※类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法※类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象UMLUMLUMLUML-20-UMLUMLUMLUML-20-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图Shape(标准图形)Shape+Draw()(变体图形)接口Vehicle-fMaxSpeed:float+Start():int+Stop():int抽象类TStacksize:intPush(elem:T):intPop():intGetTop():constT&模版参数模版类3.23.23.23.2类图中的事物及解释3.2.23.2.23.2.23.2.2接口※一组操作的集合,只有操作的声明而没有实现3.2.33.2.33.2.33.2.3抽象类※不能被实例化的类,一般至少包含一个抽象操作3.2.43.2.43.2.43.2.4模版类※一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类UMLUMLUMLUML-21-UMLUMLUMLUML-21-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图UMLUMLUMLUML表示法角色类的角色是“事物“多重性(用数字和*表示)1…*:1个或多个1个类图有1个或多个类1个类属于1个或多个类图ClassDiagramClass+thing+diagram1..*1..*use1..*1..*方向双向关联(省略箭头)名字关系的名字是“使用”实例聚合关系�特殊关联关系,指明一个聚集(整体)和组成部分之间的关系组合关系�语义更强的聚合,部分和整体具有相同的生命周期UMLUMLUMLUML表示法UMLUMLUMLUML表示法ThingClassDiagramRelation(空心菱形)实例类图包含有事物和关系,类图不存在了,事物和关系还可用于其它的类图ClassAssociation(实心菱形)实例类与关联关系之间有组合关系,类不存在了,则相应的关联关系也不存在3.33.33.33.3类图中的关系及解释3.3.13.3.13.3.13.3.1关联关系※描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关联关系语义较弱。也有两种语义较强,分别是聚合与组合UMLUMLUMLUML-22-UMLUMLUMLUML-22-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图UMLUMLUMLUML表示法3.3.33.3.33.3.33.3.3实现关系※对应于类和接口之间的关系UMLUMLUMLUML表示法类Circle、Rectangle实现了接口Shape的操作Shape+Draw()Circle+Draw()Rectangle+Drarw()RelationAssociationGeneralizationRealizationDependency关联、泛化、实现、依赖都是一种关系ThingClassInterface类、接口都是一种事物3.3.23.3.23.3.23.3.2泛化关系※在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间3.3.43.3.43.3.43.3.4依赖关系※描述了一个类的变化对依赖于它的类产生影响的情况。有多种表现形式,例如绑定(bind)、友元(friend)等UMLUMLUMLUML表示法模板类Stack<T>定义了栈相关的操作;IntStack将参数T与实际类型int绑定,使得所有操作都针对int类型的数据TStacksize:intPush(elem:T):intPop():intGetTop():constT&IntStackFloatStack<<bind>><<bind>>类Memento和类Originator建立了友元依赖关系,以便Originator使用Memento的私有变量stateOriginatorMementostate:State*<<friend>>UMLUMLUMLUML-23-UMLUMLUMLUML-23-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图C++代码classVehicle{public:virtualintStart()=0;virtualintStop()=0;virtualintRun(floatfSpeed)=0;private:floatfMaxSpeed;};Java代码publicabstractclassVehicle{publicabstractintStart();publicabstractintStop();publicabstractintRun(floatfSpeed);privatefloatfMaxSpeed;}Vehicle{abstract}-fMaxSpeed:float+++Start()Stop()Run(floatfSpeed):int:int:int3.43.43.43.4类图与代码的映射3.4.13.4.13.4.13.4.1类的映射UMLUMLUMLUML-24-UMLUMLUMLUML-24-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图3.4.23.4.23.4.23.4.2关联关系的映射C++代码classDialog{private:ButtonbtnOK;ButtonbtnCancel;TextBoxtxtInfo;};classButton{};classTextBox{};组合关系,代码表现为Dialog的属性有Button和TextBox的对象TextBoxButtonDialog-btnOK:Button-btnCancel:Button-txtInfo:TextBox3.4.33.4.33.4.33.4.3泛化关系的映射Java代码publicclassSavingsAccountextendsAccount{}Accountbalance:double=1Deposit(amount:double):intComputeInterest():doubleSavingsAccountComputeInterest():doubleC++代码classSavingsAccount:publicAccount{};UMLUMLUMLUML-25-UMLUMLUMLUML-25-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图C++代码classShape{public:virtualvoidDraw()=0;};classCircle:publicShape{public:voidDraw();private;PointptCenter;intnRadius;};Java代码publicinterfaceShape{publicabstractvoidDraw();}publicclassCircleimplementsShape{publicvoidDraw();privatePointptCenter;privateintnRadius;}Shape+Draw()Circle--ptCenternRadius:Point:int+Draw()Rectangle---ptUpperLeftnWidthnHeight:Point:int:int+Drarw()在C++语言里面,使用抽象类代替接口,使用泛化关系代替实现关系在Java语言里面,有相应的关键字interface、implements3.4.43.4.43.4.43.4.4实现关系的映射3.4.53.4.53.4.53.4.5依赖关系的映射绑定依赖TStack-size:int+Push(elem:T):int+Pop():int+GetTop():constT&IntStackFloatStack<<bind>><<bind>>C++代码template<typenameT>classStack{private:intsize;public:intPush(Telem);intPop();constT&GetTop();};typedefStack<float>FloatStack;C++代码(编译器生成)classFloatStack{private:intsize;public:intPush(floatelem);intPop();constfloat&GetTop();};UMLUMLUMLUML-26-UMLUMLUMLUML-26-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图Graphics:基本图形和组合图形的父类,声明了所有图形共同的操作,如Draw;也声明了专用于组合图形管理子图形的操作,如Add、RemoveLine、Rectangle:基本图形类GroupGraphics:组合图形类,与父类有组合关系,从而可以组合所有图形对象(基本图形和组合图形)LineDraw()RectangleDraw()GroupGraphicsDraw()Add(g:Graphics)Remove(g:Graphics)GetChild(index:int)GraphicsDraw()Add(g:Graphics)Remove(g:Graphics)GetChild(index:int)+children泛化组合组合模式3.53.53.53.5类图例子3.5.13.5.13.5.13.5.1图形编辑器※图形编辑器一般都具有一些基本图形,如直线、矩形等,用户可以直接使用基本图形画图,也可以把基本图形组合在一起创建复杂图形※如果区别对待基本图形和组合图形,会使代码变得复杂,而且多数情况下用户认为二者是一样的※组合模式可以用相同的方式处理两种图形UMLUMLUMLUML-27-UMLUMLUMLUML-27-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图3.5.23.5.23.5.23.5.2演出售票系统在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作在这里只考虑以下三个用例:Buytickets:买个人票BuySubscription:买套票Makecharges:信用卡付款信息亭ClerkBuyticketsBuySubscription信用卡服务商Makecharges监督员Surveysales参与者<<include>><<include>>用例BoxOffice关系SubscriptionSeriesseries:intIndividualReservationTicketno:int3..60..13..60..110..110..1Reservationdate:DateCustomername:stringphone:string1..*11..*1Seatno:intcolomn:introw:intavailable:bool1111Performanceno:intdate:Datetime:Time0..*10..*1CreditCardServiceCharge(cardnumber,cost)kjoskShowAvailability(seatlist)DemandPayment(cost)PrintTickets(performance,seats)EjectCard()BoxOfficeRequest(count,performance)Select(seats)InsertCard(cardnumber,password)Authorized()用例图类图使用泛化关系处理客户购买个人票和套票两种不同情况设计类的属性和操作UMLUMLUMLUML-28-UMLUMLUMLUML-28-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图(1)(1)(1)(1)哪两个类之间存在组合关系①Menu、MenuItem②MenuItem、Command③Command、OpenCommand④Command、PasteCommand(2)OpenCommand(2)OpenCommand(2)OpenCommand(2)OpenCommand和PasteCommandPasteCommandPasteCommandPasteCommand是什么关系①组合②泛化③聚合④没关系Command+Execute()OpenCommand+Execute()PasteCommand+Execute()MenuItem-command:Command*+Click()1..*0..*1..*+executive0..*Menu+Add(item:MenuItem)(3)(3)(3)(3)编辑菜单((((EditMenuEditMenuEditMenuEditMenu))))是一种菜单,下面哪个图较好的描述了二者之间的关系(4)(4)(4)(4)下面哪份代码(C++)(C++)(C++)(C++)最接近于图中对MenuItemMenuItemMenuItemMenuItem的描述②EditMenuMenu+Add(item:MenuItem)③Menu+Add(item:MenuItem)EditMenu④EditMenuMenu+Add(item:MenuItem)①Menu+Add(item:MenuItem)EditMenuclassMenuItem{private:virtualvoidClick()=0;public:Command*command;};①classMenuItem{public:virtualvoidClick()=0;private:Command*command;};②classMenuItem{private:virtualvoidClick()=0;voidundo();public:Command*command;};③classmenuitem{public:virtualvoidClick()=0;private:Command*command;};④3.63.63.63.6习题※右图描述了菜单(Menu)、菜单项(MenuItem)、抽象命令类(Command)和具体命令类(OpenCommand,PasteCommand)之间的关系,完成1-4题UMLUMLUMLUML-29-UMLUMLUMLUML-29-3.3.3.3.类图3.3.3.3.3.3.3.3.类图类图※右图描述了图形接口(Graphics)(Graphics)(Graphics)(Graphics)、线段((((SSSSeeeeggggmentmentmentment))))、矩形(Rectangle)(Rectangle)(Rectangle)(Rectangle)、点(Point)(Point)(Point)(Point)和三维点(Point3D)(Point3D)(Point3D)(Point3D)之间的关系,完成5555-7-7-7-7题((((5555))))下面哪个关系没有在图中出现①关联②泛化③实现④依赖((((6)6)6)6)下面对图中①②③④四处的多重性的描述哪个不正确①0...*②1③0...*④1((((7)7)7)7)下面哪份代码(Java)(Java)(Java)(Java)最接近于图中对SegmentSegmentSegmentSegment的描述publicclassSegmentimplementsGraphics{privatcvoidDraw();publicPointptStart;publicPointptEnd;}①publicclassSegmentextendsGraphics{publicvoidDraw();privatePointptStart;privatePointptEnd;}②publicclassSegmentimplementsGraphics{privatePointptStart;privatePointptEnd;publicvoidDraw();}③publicclasssegmentimplementsgraphics{publicvoidDraw();privatePointptStart;privatePointptEnd;}④Graphics+Draw()Segment--ptStartptEnd:Point:Point+Draw()Rectangle---ptUpperLeftnWidthnHeight:Point:int:int+Drarw()Point--xy:int:int+Draw()Point3D---xyz:int:int:int+Draw()①②③④UMLUMLUMLUML-30-UMLUMLUMLUML-30-4.4.4.4.顺序图4.4.4.4.4.4.4.4.顺序图顺序图UMLUMLUMLUML-30-4.14.14.14.14.14.14.14.1概要�顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。�顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。顺序图属于动态建模。�顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。�浏览顺序图的方法是:从上到下查看对象间交换的消息。4.24.24.24.24.24.24.24.2顺序图中的事物及解释消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。消息符号坐标轴纵向的虚线表示对象在序列中的执行情况(即发送和接收的消息,对象的活动)这条虚线称为对象的“生命线”。生命线顺序图的横轴上是与序列有关的对象。对象的表示方法是:矩形框中写有对象或类名,且名字下面有下划线。对象与系统、子系统或类发生交互作用的外部用户(参见用例图定义)。参与者图解释事物名称UMLUMLUMLUML-31-UMLUMLUMLUML-31-4.4.4.4.顺序图4.4.4.4.4.4.4.4.顺序图顺序图UMLUMLUMLUML-31-4.34.34.34.34.34.34.34.3顺序图与用例图和类图的关系UMLUMLUMLUML-32-UMLUMLUMLUML-32-4.4.4.4.顺序图4.4.4.4.4.4.4.4.顺序图顺序图UMLUMLUMLUML-32-4.44.44.44.44.44.44.44.4顺序图例子简单的例子从参与者到对象和从对象到参与者之间发送的消息从对象传递给另一个对象的消息在类图中的类的对象使用系统的参与者,这个系统是为某个用例的某个场景设计的对象生命线表示从上到下的时间顺序,消息1111在消息2222之前发生,消息2222在消息3333之前发生窄长方框用以强调这个部分处于活动状态消息 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 :operation(parameterlist)向哪个对象发消息实际上就是调用它的类中的操作,就是调用箭头指向的对象所在类的一个operation。例:订单类发消息给客户类调用客户类中的“验证客户”操作UMLUMLUMLUML-33-UMLUMLUMLUML-33-4.4.4.4.顺序图4.4.4.4.4.4.4.4.顺序图顺序图UMLUMLUMLUML-33-复杂的例子信息亭售票中心信用卡服务从这个例子中可以看出:Kjosk类中的操作有ShowAvailable(seat-list)DemandPayment(cost)printtickets(performance,seats)ejectcardBoxOffice中的操作有Request(count,performance)SelectSeatsInsertCard(CardNumber)authorizedCreditCardService类中的操作有charge(cardnumber,cost)此图是描述购票这个用例的顺序图。顾客在信息亭与售票中心通话触发了这个用例的执行。顺序图中付款这个用例包括售票中心与信息亭和信用卡服务处使用消息进行通信过程。此图中存在的事物有:对象(信息亭Kjosk,售票中心BoxOffice,信用卡服务CreditCardService),生命线,消息符号。信息亭发Request(count,performance)消息给售票中心,表示调用售票中心类的Request(count,performance)操作,来查询演出的信息。售票中心发ShowAvailable(seat-list)消息给信息亭,表示调用信息亭类中的ShowAvailable(seat-list)操作,给出可用的座位表。UMLUMLUMLUML-34-UMLUMLUMLUML-34-4.4.4.4.顺序图4.4.4.4.4.4.4.4.顺序图顺序图UMLUMLUMLUML-34-①②③④⑤⑦⑥⑨⑧⑩1指出左图中的参与者?A①B②C③D④2哪些是对象?A①B②③④C④D⑤⑥⑦⑧⑨⑩3Server类调用了CreditService类中的什么操作?A⑦B⑧C⑦⑧D⑧⑨4.54.54.54.5练习题1.A2.B3.BUMLUMLUMLUML-35-UMLUMLUMLUML-35-5.15.15.15.15.15.15.15.1概要5.5.5.5.协作图5.5.5.5.5.5.5.5.协作图协作图协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息。协作图可以表示类操作的实现。UMLUMLUMLUML-35-UMLUMLUMLUML-35-5.25.25.25.25.25.25.25.2协作图中的事物及解释箭头指示消息的流向,从消息的发出者指向接收者。标签对消息作说明,其中,顺序号指出消息的发生顺序,并且指明了消息的嵌套关系;冒号后面是消息的名字。消息流(由箭头和标签组成)发出主动操作的对象,负责发送初始消息,启动一个操作。参与者对象是类的实例,负责发送和接收消息,与顺序图中的符号相同,冒号前为对象名,冒号后为类名。对象图解释事物名称Actorfirstbuton:button标签5.35.35.35.35.35.35.35.3协作图中的关系及解释用线条来表示链接,链接表示两个对象共享一个消息,位于对象之间或参与者与对象之间链接关系实例解释关系名称UMLUMLUMLUML-36-UMLUMLUMLUML-36-5.5.5.5.协作图5.5.5.5.5.5.5.5.协作图协作图5.45.45.45.45.45.45.45.4消息标签消息标签的Format:[前缀][守卫条件]序列表达式[返回值:=]消息名�前缀的语法规则:序列号,序列号,…,序列号‘/’(前缀用来同步线程,意思是在发送当前消息之前指定序列号的消息被处理.例:1.1a,1.1b/)�守卫条件的语法规则:[条件短句]说明:条件短句通常用伪代码或真正的程序语言来表示。例:[x>=0]�返回值和消息名:返回值表示一个消息的返回结果,消息名指出了消息的名字和所需参数。例:x:=calc(n)�下面是一个完整的消息标签:    1.1a,1.1b,1.1c/[x>=0]1.2*[i:=1..n]:x:=calc(n)  前缀守卫条件序列表达式返回值:=消息名5.55.55.55.55.55.55.55.5协作图与顺序图的区别和联系协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同。�顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。�协作图清楚地表示了对象间的关系(强调空间),但时间顺序必须从顺序号获得。�协作图和顺序图可以相互转化。(进行协作图和顺序图的比较,请参考练习题2)UMLUMLUMLUML-37-5.65.65.65.65.65.65.65.6协作图例子1.打印操作的协作图5.5.5.5.协作图5.5.5.5.5.5.5.5.协作图协作图actor发送Print消息给Computer,Computer发送Print消息给PrintServer,如果打印机空闲,PrintServer发送Print消息给printer2.乘坐电梯的协作图:button:ElevatorControl:Queue:Elevator:Order{new}:Actor1:GetElevator(floorid)1.1*[allqueues]:len:=Length()1.3:Invoke(job)1.2:Create()2:nextjob:=Get.job()Push()图中存在的事物有: 参与者按钮对象电梯控制对象命令对象工作队列电梯对象图中存在的关系有:  链接参与者需要乘坐电梯,他从系统外部按下按钮,让电梯到达他想去的楼层。此时,电梯系统的操作被启动,电梯控制对象以循环的方式检查所有的电梯,从中选择一个工作队列长度最短的。然后,它创建一个作业命令,并将该命令放入对应电梯的工作队列,接着激活队列。电梯对象并发运行,从它的队列中选择一个作业并执行。电梯是一个活动对象,它与它的控制线程并发执行。UMLUMLUMLUML-38-5.5.5.5.协作图5.5.5.5.5.5.5.5.协作图协作图5.75.75.75.7练习题1.请指出下面的消息标签各部分的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 。•1:display()A.序列表达式:消息名B.返回值:消息名C.序列表达式:消息名•[mode=display]1.2.3.7:redraw()A.序列表达式返回值消息名B.守卫条件序列表达式消息名•2*[n:=a..z]:prim:=nextPrim(prim)A.守卫条件序列表达式消息名B.序列表达式返回值消息名•3.1[x<0]:foo()A.序列表达式守卫条件B.守卫条件消息名C.序列表达式消息名•1.1a,1.1b/1.2:continue()A.前缀序列表达式消息名B.后缀守卫条件消息名UMLUMLUMLUML-39-5.5.5.5.协作图5.5.5.5.5.5.5.5.协作图协作图:button:ElevatorControl:Queue:Elevator:Order{new}:Actor1:GetElevator(floorid)1.1*[allqueues]:len:=Length()2:nextjob:=Get.job()1.2:Create()Push()1.3:Invoke(job)3.练习题答案1.①A②B ③B ④C  ⑤A2.①A  ②A2.请对比本章中的协作图与其相应的顺序图,做练习题。①请在下图中指出,循环计算各个电梯的工作队列长度的消息的顺序号。A1.1B1.2C1.3D2②请说明消息1.3所进行的操作Invoke(job),应属于哪个类所具有的方法。AQueue类BElevatorControl类CElevator类DButton类UMLUMLUMLUML-40-6.16.16.16.1状态图概要6.1.16.1.16.1.16.1.1状态图说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件的响应。6.1.26.1.26.1.26.1.2状态图用于揭示Actor、类、子系统和组件的复杂特性。为实时系统建模。6.26.26.26.2状态图的组成6.2.16.2.16.2.16.2.1状态对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动,或等待某些事件。6.2.26.2.26.2.26.2.2转移转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果。6.6.6.6.状态图6.6.6.6.6.6.6.6.状态状态图图UMLUMLUMLUML-41-转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移转移初始状态(一个)开始终态(可以多个)结束上格放置名称,下格说明处于该状态时,系统或对象要做的工作(见可选活动表)状态消息((((属性)[)[)[)[条件]/]/]/]/动作6.36.36.36.3状态图中的事物及解释e(a:T)[exp]/action引起一个动作的执行但不引起状态的改变或不引起入口动作或出口动作的执行内部转换e(a:T)[exp]/action引起状态转换或自身转换,同时执行一个具体的动作,包括引起入口动作和出口动作被执行的转换外部转换exit/action离开某一状态时执行的动作出口动作entry/action进入某一状态时执行的动作入口动作语法描述转换种类6.46.46.46.4状态的可选活动表6.6.6.6.状态图6.6.6.6.6.6.6.6.状态状态图图UMLUMLUMLUML-42-6.56.56.56.5例子(1)(1)(1)(1)对象的状态图图中包含以下状态初始状态Available状态Locked状态Sold状态状态间的转移初始状态�Available状态票被预订(lock):Available�Locked预定后付款(buy):Locked�Sold预定解除(unlock):Locked�Available预定过期(timeout):Locked�Available直接购买(assignedto):Available�Sold换其它票(exchang),该票重有效:Sold�AvailableAvailableLockedSold初始状态assignedtosubscriptionlocktimeoutunlockbuy状态exchange转换触发器事件6.6.6.6.状态图6.6.6.6.6.6.6.6.状态状态图图UMLUMLUMLUML-43-(2)(2)(2)(2)网上银行登陆系统登陆要求提交个人社会保险号(SSN)(SSN)(SSN)(SSN)和密码(PIN)(PIN)(PIN)(PIN)经验证有效后登陆成功。登陆过程包括以下状态::::※初态(Initialstate)(Initialstate)(Initialstate)(Initialstate)※获取社会保险号状态((((GettingSSNGettingSSNGettingSSNGettingSSN))))※获取密码状态((((GettingPINGettingPINGettingPINGettingPIN))))※验证状态((((ValidatingValidatingValidatingValidating))))※拒绝状态((((RejectingRejectingRejectingRejecting))))※终态(Finalstate)(Finalstate)(Finalstate)(Finalstate)GettingSSNGettingSSNGettingSSNGettingSSN重试,清除无效的SSN,PINFinalstateFinalstateFinalstateFinalstate退出RejectingRejectingRejectingRejectingRejectingRejectingRejectingRejecting验证提交信息无效,显示错误信息FinalstateFinalstateFinalstateFinalstate验证提交信息有效,状态转移ValidatingValidatingValidatingValidatingValidatingValidatingValidatingValidating提交GettingSSNGettingSSNGettingSSNGettingSSN键入shift-tab键,或移动鼠标到SSNGettingPINGettingPINGettingPINGettingPIN键入非shift-tab键,显示“*”GettingPINGettingPINGettingPINGettingPINValidatingValidatingValidatingValidating提交GettingPINGettingPINGettingPINGettingPIN键入tab键,或移动鼠标到BINGettingSSNGettingSSNGettingSSNGettingSSN键入非tab键,显示键入内容GettingSSNGettingSSNGettingSSNGettingSSNGettingSSNGettingSSNGettingSSNGettingSSN移动鼠标到SSNInitialstateInitialstateInitialstateInitialstate到达状态动作出发状态状态转移的过程有两个不同的有两个不同的终态6.6.6.6.状态图6.6.6.6.6.6.6.6.状态状态图图UMLUMLUMLUML-44-6.76.76.76.7练习分析下面的状态图,回答问题下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层((((1)以下那些图形元素是对状态的描述?(a)超时(b)到达(c)在第一层(2)空闲状态超时后转移到____状态(a)向第一层下降(b)上升状态(c)终态习题答案(1)(1)(1)(1)(c)(c)(c)(c)(2)(2)(2)(2)(a)(a)(a)(a)6.6.6.6.状态图6.6.6.6.6.6.6.6.状态状态图图UMLUMLUMLUML-45-7.7.7.7.活动图7.7.7.7.7.7.7.7.活动图活动图7.17.17.17.1活动图概要※描述系统的动态行为。※包含活动状态(ActionState),活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。※活动图适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述。※类似于传统意义上的流程图。※活动图主要用于:业务建模时,用于详述业务用例,描述一项业务的执行过程;设计时,描述操作的流程。7.27.27.27.2活动图事物活动过程中发送事件,触发另一活动流程发送信号(signalSending)活动过程中接收事件,接收到信号的活动流程开始执行接收信号(SignalReceipt)活动之间的交换的信息对象流(ObjectFlowState)活动图的终点终点(FinalState)活动图的开始起点(InitialState)活动的负责者泳道(SwimLane)动作的执行活动(ActionState)UMLUMLUMLUML-46-7.7.7.7.活动图7.7.7.7.7.7.7.7.活动图活动图7.37.37.37.3活动图关系以上的并发活动再此结合结合(join)以下的活动可并发执行分叉(fork)根据条件,控制执行方向分支(junctionpoint)活动的完成与新活动的开始迁移(transition)7.47.47.47.4活动图实例1.1.1.1.一般的活动图本活动图描述一个处理订单的用例执行过(1)执行setuporder(2)根据order的类型是执行不同的分支:singleorder:执行assignseat、chargecreditcardsubscription:同时执行assignseats、debitaccount或awardbonusawardbonusawardbonusawardbonussingleorder与subscription两步可同时进行(3)最后mailpacket。UMLUMLUMLUML-47-7.7.7.7.活动图7.7.7.7.7.7.7.7.活动图活动图2.2.2.2.带泳道的活动图 本例为一个按活动职责(带泳道)组织的处理订单用例的活动图(模型中的活动按职责组织)。活动被按职责分配到用线分开的不同区域(泳道):CustomerSalesStockroom(1)顾客要求服务,Sales负责接收定单,并提交到Stockroom(2)Stockroom处理定单,与此同时,Customer付款,并由Sales处Deliverorder至Customer。UMLUMLUMLUML-48-7.7.7.7.活动图7.7.7.7.7.7.7.7.活动图活动图7.57.57.57.5活动图练习1.请选择下面所列的活动图的事物中,表示信号的是(),表示对象流的是()。DDDDCCCCBBBBAAAA2.关于右面的活动图,下面的说法中不正确的是()。AaPrinter:Printer是信号。B操作开始从“删除报文框”活动开始。C在“创建PS文件”和”删除报文框”活动中发送“print(file)”信号。D信号发送的方向是从左到右。习题答案1C,B2CUMLUMLUMLUML-49-8.8.8.8.构件图8.8.8.8.8.8.8.8.构件图构件图构件图用于静态建模,是表示构件类型的组织以及各种构件之间依赖关系的图。构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。8.28.28.28.2构件图中的事物及解释节点实例上的构件的一个实例,冒号后是该构件实例的名字(如图中的RoutingList)。构件实例构件实例外部可访问到的服务(如图中的Spell-check)。接口接口指系统中可替换的物理部分,构件名字(如图中的Dictionary)标在矩形中,提供了一组接口的实现。构件构件图例含义事物名称可替换的物理部分包括软件代码、脚本或命令行文件,也可以表示运行时的对象,文档,数据库等。节点(node)是运行时的物理对象,代表一个计算机资源。具体请参见教程“部署图(deploymentdiagram)”部分。8.38.38.38.3构件图中的关系及解释构件向外提供的服务。实现关系实现关系依赖关系依赖关系关系名称构件依赖外部提供的服务(由构件到接口)。图例含义8.18.18.18.1构件图概要UMLUMLUMLUML-50-8.8.8.8.构件图8.8.8.8.8.8.8.8.构件图构件图实例1.1.1.1.    图中的构件名称是Dictionary字典。    该构件向外提供两个接口,即两个服务Spell-check拼写检查、Synonyms同义词。图中“Planner 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 者”构件向外提供一个“update更新”接口服务。同时,该构件要求外部接口提供一个“Reservations预定”服务。实例2.2.2.2.8.48.48.48.4构件图的例子UMLUMLUMLUML-51-8.8.8.8.构件图8.8.8.8.8.8.8.8.构件图构件图实例3333图中依赖关系依赖关系包括:顾客需要信息亭接口提供服务售票员需要职员接口提供服务信用卡付款需要信用卡代理提供服务职员接口需要预订销售、个人销售和团体销售提供服务管理接口需要数据库状态提供服务售票处需要付款和购买提供服务等等……图中实现关系实现关系包括:信用卡付款提供付款服务票数据库提供购买和状态查询服务售票处提供预订购买、个人购买和团体购买服务情景一:情景一:购买个人票可以通过公用信息亭订购也可直接向售票员购买,但购买团体票只能通过售票员。情景二:情景二:买票的人可以根据任意选择预订销售或个人销售或团体销售中的一种方式,售票处为了方便销售,需要信用卡付款服务的支持,同时也必然需要票数据库处在有票可卖的状况中。情景描述UMLUMLUMLUML-52-8.8.8.8.构件图8.8.8.8.8.8.8.8.构件图构件图1.构件图用于那种建模阶段?A.动态建模B.静态建模2.一个构件只能对特定的另一个构件提供特定的一种服务。这种说法正确吗?A.正确B.错误3.构件图用于描述系统中各物理部件之间的服务的依赖提供关系。这种说法正确吗?A.正确B.错误4.构件图中实线箭头表示服务的依赖,虚线箭头表示服务的提供。这种说法正确吗?A.正确B.错误习题答案:1.B2.B3.A4.B8.58.58.58.5习题UMLUMLUMLUML-53-9.9.9.9.部署图9.9.9.9.9.9.9.9.部署部署图图9.29.29.29.2部署图中的事物及解释构件的一个实例。外部可访问的服务。构件实例构件实例接口接口系统中可替换的物理部分。构件构件节点用一长方体表示,长方体中左上角的文字是节点的名字(如图中的Joe’sMachine:PC)。节点代表一个至少有存储空间和执行能力的计算资源。节点包括计算设备和(至少商业模型中的)人力资源或者机械处理资源,可以用描述符或实例代表。节点定义了运行时对象和构件实例(如图中的Planner构件实例)驻留的位置。节点节点图例解释事物名称部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。部署图的两种表现形式:实例层部署图和描述层部署图(会在后面的实例中给出)。9.19.19.19.1部署图概要UMLUMLUMLUML-54-9.9.9.9.部署图9.9.9.9.9.9.9.9.部署部署图图构件依赖外部提供的服务(由构件到接口)。依赖关系依赖关系其他关系其他关系关联关系关联关系实现关系实现关系关系名称对象的移动(一个位置到另一个位置)。通信关联。构件向外提供服务。解释(节点间)(节点内)图例9.49.49.49.4部署图的例子实例1111实例层部署图实例层部署图描述各节点和它们之间的连接。本图中的信息与上张描述层部署图中的内容是相互对应的。图中的关系是各个节点之间存在的通信关系。9.39.39.39.3部署图中的关系及解释UMLUMLUMLUML-55-9.9.9.9.部署图9.9.9.9.9.9.9.9.部署图部署图实例2222描述层部署图图中顾客购票顾客购票的情景如下:顾客通过位于Kiosk节点的顾客接口控件进行购票的操作,该顾客接口构件的购票操作依赖于处于TicketServer节点上的售票构件提供的服务,售票构件要完成售票操作,又要依赖统一节点上信用卡付款构件提供的付款服务和票数据库构件图中包括的各种关系如下:通信链关系(不带箭头的直线)TicketServe票服务器与Kiosk信息厅之间存在一对多的通信关联;与SalesTerminal售票终端也存在一对多的通信关联;依赖关系(带箭头的虚线)TicketSeller售票构件依赖CreditCardCharges信用卡付款构件和TicketDB票数据库构件提供的服务。节点节点TicketServer(售票服务)上的构件:CreditCardCharges/ManagerInterface/TicketSeller/TicketDB节点Kiosk(信息亭)上的构件:CustomerInterfaceSalesTerminal(销售终端)上的构件:ClerkInterface描述层部署图表示了系统中的各节点和每个节点包含的构件。UMLUMLUMLUML-56-9.9.9.9.部署图9.9.9.9.9.9.9.9.部署部署图图9.59.59.59.5关于部署图与构件图部署图与构件图相同的构成元素:   构件、接口、构件实例、构件向外提供服务、构件要求外部提供的服务。部署图与构件图构件图的关系:部署图表现构件实例;构件图表现构件类型的定义。部署图偏向于描述构件在节点中运行时的状态,描述了构件运行的环境;构件图偏向于描述构件之间相互依赖支持的基本关系。UMLUMLUMLUML-57-9.9.9.9.部署图9.9.9.9.9.9.9.9.部署部署图图1.部署图用于那种建模阶段?A.动态建模B.静态建模2.部署图表现构件实例,构件图表现构件类型定义。这种说法正确吗?A.正确B.错误3.部署图中一个节点实例的名称为Server:HostMachine,其中Server是_____,HostMachine是_____。A.节点名B.节点类型4.各节点之间存在着虚线剪头表示的依赖关系,也存在着实线箭头表示的服务提供关系。这种说法正确吗?A.正确B.错误5.“接口”表示_____对外提供的服务。A.构件B.节点习题答案:1.B2.A3.B,A4.B5.A9.69.69.69.6习题UMLUMLUMLUML-58-附录WAVEWAVEWAVEWAVE测试附录附录WAVEWAVEWAVEWAVEWAVEWAVEWAVEWAVE测试测试1用例描述了系统应该做什么,而不是如何去做。2用例必须依据参与者的视点。(即应该从参与者如何使用系统的角度出发定义用例,而不是从系统自身的角度)。3用例必须为参与者提供可辨识的价值。4用例及其参与者必须捕获系统使用过程中的一个完整的事件流。1Whattodo?(Nothowtodo.)2Actor’spointofview?3Valuefortheactor?4Entireflowofevents?UMLUMLUMLUML-59-附录UMLUMLUMLUML学习参考书籍附录附录UMLUMLUMLUMLUMLUMLUMLUML学习参考书籍学习参考书籍UMLUMLUMLUML-60-附录UMLUMLUMLUML学习参考书籍附录附录UMLUMLUMLUMLUMLUMLUMLUML学习参考书籍学习参考书籍1.《用例驱动UML对象建模应用——范例分析》DougRosenbergDougRosenbergDougRosenbergDougRosenberg、KendallScottKendallScottKendallScottKendallScott著,人民邮电出版社,2005200520052005。2.《UML精粹——标准对象建模语言简明指南》(第3版)MartinFowlerMartinFowlerMartinFowlerMartinFowler著,徐家福译,清华大学出版社,2005200520052005。3.《UML对象、组件和框架——Catalysis方法》DesmondFrancisDesmondFrancisDesmondFrancisDesmondFrancisDDDD’’’’SouzaSouzaSouzaSouza、AlanCameronWillsAlanCameronWillsAlanCameronWillsAlanCameronWills著,清华大学出版社,2004200420042004。4.《UML和模式应用》(第2版)CraigCraigCraigCraigLarmanLarmanLarmanLarman著,机械工业出版社,2004200420042004。5.《有效用例模式》SteveAdolphSteveAdolphSteveAdolphSteveAdolph,PaulBramblePaulBramblePaulBramblePaulBramble著,车立红译,清华大学出版社,2003200320032003。6.《用例建模》,KurtBittnerKurtBittnerKurtBittnerKurtBittner著,姜昊译,清华大学出版社,20032003200320037.《UML和统一过程实用面向对象的分析和设计》JimJimJimJimArlowArlowArlowArlow,IlaIlaIlaIlaNeustadtNeustadtNeustadtNeustadt,机械工业出版社,2003200320032003。8.《UML风格》ScottW.AmblerScottW.AmblerScottW.AmblerScottW.Ambler著,王少峰译,清华大学出版社,2004200420042004。9.《UML用户指南》GradyGradyGradyGradyBoochBoochBoochBooch,IvarIvarIvarIvarJacobsonJacobsonJacobsonJacobson著,邵维忠等译,机械工业出版社,2001200120012001年6666月。10.《UML参考手册》IvarIvarIvarIvarJacobsonJacobsonJacobsonJacobson,JamesJamesJamesJamesRumbaughRumbaughRumbaughRumbaugh。姚淑兰,唐发根译。机械工业出版社,2001200120012001。UMLUMLUMLUML-61-附录UMLUMLUMLUML建模工具附录附录UMLUMLUMLUMLUMLUMLUMLUML建模工具建模工具1.1.1.1.www.umlchina.comwww.umlchina.comwww.umlchina.comwww.umlchina.com2.2.2.2.www.uml.org.comwww.uml.org.comwww.uml.org.comwww.uml.org.com3.3.3.3.www.rational.comwww.rational.comwww.rational.comwww.rational.com4.4.4.4.www.uml.net.cnwww.uml.net.cnwww.uml.net.cnwww.uml.net.cnUMLUMLUMLUML-62- 需求分析BDBDBDBDFDFDFDFDDDDDDDDD用例图◎◎--类图-○◎◎顺序图-○◎◎活动图○○○○对象图-△△△协作图-△△△状态图-△○○构件图--○○部署图○○△△ ◎:最适用 ○:适用 △:可能适用 -:不适用附录各个阶段用到UMLUMLUMLUML模型图附录附录各个阶段用到各个阶段用到UMLUMLUMLUMLUMLUMLUMLUML模型图模型图UMLUMLUMLUML-63-附录UMLUMLUMLUML全部图的关系附录附录UMLUMLUMLUMLUMLUMLUMLUML全部图的关系全部图的关系用例图用例文档用例图用例文档对象图状态图构件图类图活动图部署图活动图部署图对象图类图状态图协作图顺序图协作图顺序图活动图部署图需求分析BDBDBDBDFD/DDFD/DDFD/DDFD/DD全部图之间的关系
本文档为【全国软件设计师强化培训教程UML部分】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
书山有路勤为径
在汽修行业深耕多年,拥有丰富的汽车修理经验及电路图,对汽车机修、冷电方面比较有经验。
格式:pdf
大小:1MB
软件:PDF阅读器
页数:63
分类:企业经营
上传时间:2020-04-29
浏览量:0