版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UML建模语言及工具第 3 章可视化建模实践 A Practice of Visual Modeling with UML-3-学习线路图OOUMLOOAOODDP Case-Study 学 习 线 路 图-4-UML结构UML Structure构造块building blocks公共机制common mechanisms构架architecture基本UML建模元素、关系和图达到特定目标的公共UML方法系统架构的UML视图-5-构造块构造块building blocks物件things关系relationships图diagrams建模元素本身把物件联系在一起,关系说明两个或多个物件是如何
2、语义相关的UML模型的视图,它们展现物件的集合,“讲述关于软件系统的故事”,是我们可视化系统将做什么(分析级图)或者系统如何做(设计级图)的方法-6-物件物件things结构物件行为物件分组物件注解物件UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点UML模型的动词,代表软件系统在空间或时间上的行为如交互、状态机包,它用于把语义上相关的建模元素分组为内聚的单元注解,它附加到模型以捕获特殊信息,同黄色便笺很相像-7-类类是具有相同属性、操作和关系的对象集合的总称。通常在UML中类被画成矩形,包括三个部分:名称、属性和操作。名称:每个类都必须有一个名字,用来区分其它的类。属性:类可以
3、有任意多个属性,也可以没有属性。在类图中属性只要写上名字就可以了,也可以在属性名后跟上类型甚至缺省取值 。 操作:操作是类的任意一个实例对象都可以调用的,并可能影响该对象行为的实现。 -8-类类名属性操作-9-类-10-类(抽象和静态)-11-接口接口是未给出实现的对象行为的描述,一个或多个类可以实现接口,每个类实现接口的操作。StringisEqual(String) : BooleanHash() : IntegerHashableComparable接口标记-12-组件组件是系统中遵循一组接口规范且提供其实现的物理的、可替换的软件模块。一个组件可能是源代码、可执行程序或动态库。Stude
4、nt-13-节点节点代表系统运行时的物理单元,主要用于系统物理方面的建模。节点可以分为处理器和设备两种。处理器:任何具有处理功能的机器,如服务器,工作站。处理器用边框为黑色的立方体表示。设备:没有处理功能的机器,如打印机,扫描仪。设备用边框为白色的立方体表示。-14-15-包包是一个用来将模型单元分组的通用机制。包可以含有类、接口、组件、用例等物件或其它的包。包Package-16-包任何大系统都必须划分为较小的单元,以便人们在某一时刻可以和有限的信息工作,使团队的工作不相互影响。-17-注释注释用于解释设计的思路,便于理解。一个好的模型应该有详尽的注释。Representsan incorp
5、orated entityCompany注释-18-关系关系relationships关联association依赖dependency泛化generalization实现realization描述对象之间的一组链接,代表链接的元素之间的某种语义上的联系物件的改变引起依赖物件的语义改变描述一般事物和特殊事物之间的关系类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约-19-关联关联关系表示两个类之间存在某种语义上的联系。关联至类的连接点称为关联端点,很多信息被附在关联端点上,它拥有角色名、重数(多少个类的实例可以关联于另一个类的实例)等。-20-关联Jobemployeeemplo
6、yer1.*CompanyPerson角色名重数关联名称-21-关联多重性多重性(multiplicity):指定了一个类与关联类的单个实例可能相关的实例数目。“1”、“*”、“0.1”、“3.5”不要在软件开发早期过度担心多重性。首先确定类和关联,然后再确定多重性。-22-关联关联终端名关联终端名(association end):指定了关联终端的名字。关联终端名在问题陈述中常以名词形式出现。关联终端名的使用是可选的,但是对于同一个类的两个对象之间的关联来说,关联终端名是必需的。关联终端名也可以区分同一对类之间的多重关联。在创建类图时,应该正确使用关联终端名,不应该为每个引用引入一个独立的类
7、。-23-关联关联终端名Directorycontainercontents*0.1User*ownerauthorizedUser1*ParentChild2*错误的模型Person正确的模型*0.2parentchild-24-关联关联类关联类(association class):是一种关联,也是一种类。描述了关联的属性和操作。不应把关联类的属性建模为类的属性。PersonnamebirthDateaddressCompanynameaddress*0.1WorksForsalaryjobTitle-25-关联限定关联限定关联(qualified association):是这样一种关联
8、,其中被称为限定符(qualifier)的属性会消除在“多”关联端上对象的歧义。限定符在目标对象间进行选择,将多重性从“多”降到“1”。Bank*1AccountaccountNumber未限定BankAccountaccountNumber0.11限定-26-关联n元关联要尽量避免n元关联大部分关联可以分解成带限定符和属性的二元关联。n元关联的UML符号是以直线连接相关类的一个菱形。在实现时要把n元关联提升为类。-27-ProjectLanguagePerson*programmer类图Cobol:LanguageMary:PersonaccountingSystem:Projectname
9、=“accounting system”CADprogram:Projectname=“CAD program”name=“Cobol”C:Languagename=“C”name=“Mary”对象图-28-29-30-类之间的关联聚合具有has a语义对象A是对象B的一个组成部分-31-32-33-34-35-36-37-泛化泛化是一般化和具体化之间的一种关系。继承就是一种泛化关系,更一般化的描述称为双亲,双亲的双亲称为祖先,更具体化的描述称为孩子。TreeOakElmBirch孩子双亲PersonStudentGraduate祖先-38-实现实现:多数情况下,实现关系被用来规定接口和实现接
10、口的类或组件之间的关系StringisEqual(String) : BooleanHash() : IntegerComparableComparableisEqual(String) : BooleanHash() : Integer实现特殊的实现标记-39-依赖依赖:如果一个模型元素的变化会影响另一个模型元素,那么二者之间存在依赖关系。依赖类型-40-依赖-41-关系小结语义上,所有的关系(包括关联、泛化、实现)都是各种各样的依赖关系,因为这3种关系具有重要的语义,所以在UML中被分离出来成为独立的关系。-42-图(UML1.4)图diagrams类图class diagrams对象图o
11、bject diagrams构件图component diagrams部署图deployment diagrams用例图use case diagrams顺序图sequence diagrams协作图collaboration diagrams状态图statechart diagrams活动图activity diagrams结构图行为图包图package diagrams-43-图(UML2.0)图diagrams类图class diagrams对象图object diagrams构件图component diagrams部署图deployment diagrams用例图use case d
12、iagrams交互图interaction diagrams状态图 state machine diagrams活动图activity diagrams结构图行为图复合结构图 composite structure diagrams顺序图sequence diagrams通信图communication diagrams交互概图interaction overview diagrams时序图timing diagrams包图package diagrams-44-UML结构UML Structure构造块building blocks公共机制common mechanisms构架archite
13、cture基本UML建模元素、关系和图达到特定目标的公共UML方法系统架构的UML视图-45-公共机制公共机制common mechanisms规格说明specifications修饰adornments通用划分common divisions扩展机制extensibility mechanisms-46-规格说明UML模型至少具有两种维度:图形维度:允许使用图和图标可视化模型文本维度:由各种建模元素的规格说明所组成规格说明模型元素的特征和语义的文本描述模型的“肉”形成了承载模型的语义背板(semantic backplane),赋予模型意义,各种图仅仅是该背板的视图或者可视化投影death
14、by diagram因图而亡模型被过度图形化而没有说明。-47-修饰修饰:图中建模元素上暴露的信息项以表现某个要点任何UML图仅是模型的视图,因此,只有在修饰增强了图的整体清晰性和可读性或者突出模型的某些重要特征时,你才应该表示那些修饰Window-48-通用划分通用划分是UML对事物被划分成抽象描述和具体实例的两分法的表达。类元(Classifier)和实例类元:一类事物的抽象概念;如bank account参与者、类、类元角色、组件、数据类型、接口、节点、信号、子系统、用例实例:一类事物的特定实例;如my bank account接口(interface)和实现接口:说明事物行为的契约(做
15、什么)实现:事物是如何工作的特殊细节(如何做)-49-扩展机制约束:允许对模型元素添加新的规则,限制一种或多个元素语义的规则,形式:约束条件构造型(stereotypes):基于已有的建模元素引入新的建模元素The means by which to extend the UMLStereotypes convey key properties to the model readerA number of stereotypes are packaged along with the UMLCan define your own stereotypes标记值:允许为模型元素添加新的特性,附属于
16、UML元素的各种信息(Property),是带有相关值的关键字,具有形式: 属性名 = 值-50-扩展机制之约束 约束是用文字表达式表示的语义限制。 约束用大括弧内的字符串表达式表示。-51-Employeesalarysalaryboss.salaryboss0.1*Windowlengthwidth0.8length/width 1.5Jobprioritypriority never increases对象上的约束PersonCommitteeMemberOfChairOf*1subset关联之间的子集约束-52-扩展机制之构造型 UML中元素具有通用的语义,用构造型可以对它们进行专有化
17、和扩展 构造型机制是指在已有的模型元素基础上建立一种新的模型元素。它与现有元素要相差不多,只是多一些特别的语义-53-扩展机制之标记值 标记值是一组字符串,存储着有关元素的一些信息。 -54-UML结构UML Structure构造块building blocks公共机制common mechanisms构架architecture基本UML建模元素、关系和图达到特定目标的公共UML方法系统架构的UML视图-55-架构ArchitectureThe organizational structure of a system, including its decomposition into pa
18、rts, their connectivity, interaction mechanisms, and the guiding principles that inform the design of a system构架是一个系统的组织结构,包括系统分解成的各个部分、它们的连接性、交互机制和系统设计的向导规则IEEE:在其环境中系统的高级概念-56-4+1视图-1-57-4+1视图-2Use Case ViewEnd-user: Functionality这些视图由用例视图所统一,它描述项目干系人(stakeholder)的需求;所有其他视图都是从用例视图派生而来,该视图把系统的基本需求捕
19、获为用例并提供构造其他视图的基础Logical View Analysts/Designers: Structure系统功能和词汇;描述问题域的词汇,作为类和对象的集合。重点是展示对象和类是如何组成系统、实现所需系统行为的-58-4+1视图-3Process View System integrators: Performance, Scalability, Throughput系统性能、可伸缩性和吞吐量;建模在我们系统中的可执行线程和进程作为活动类。其实,它是逻辑视图面向进程的变体,包含所有相同的制品Implementation ViewProgrammers: Software Manag
20、ement系统组装和配置管理;对组成基于系统的物理代码的文件和组件进行建模。它同样展示出组件之间的依赖,展示一组组件的配置管理以定义系统的版本-59-4+1视图-4Deployment View System engineering: System Topology, Delivery, Installation, Communication系统的拓扑结构、分布、移交和安装;建模把组件物理地部署到一组物理的、可计算节点上,如计算机和外设上。它允许你建模横跨分布式系统节点上的组件的分布-60-总结:UML结构-61-UML Diagrams in Rational Software Archit
21、ect Behavioral DiagramsStructural DiagramsActivityDiagramsSequenceDiagramsCommunicationDiagramsState MachineDiagramsComponentDiagramsCompositeStructureDiagramsClassDiagramsModelObjectDiagramsDeploymentDiagramsUse-CaseDiagrams-62-用例与用例图场景:是用来描述用户和系统之间交互的顺序的步骤A scenario is a sequence of steps describi
22、ng an interaction between a user and a system 用例:是为了达到某一用户目标而组合在一起的一组场景A use case, then, is a set of scenarios tied together by a common user goal. 用例图:用来显示在系统(或其它实体)内的用例与系统参与者之间的关系A use case diagram shows the relationship among use cases within a system or other semantic entity and their actors主要使用
23、场合:需求获取、定义、分析-63-Use-Case Flow of EventsHas one normal, basic flow Several alternative flowsRegular variantsOdd casesExceptional flows for handling error situationsWhat Is a Scenario?A scenario is an instance of a use case.-65-用例图元语参与者用例系统边界关联扩展包含泛化注释体注释连接-66-示例03-01:POST系统销售点终端(Point-Of-Sale Termin
24、al,POST)系统是一个计算机自动化系统用来记录商品销售信息处理客户的支付信息客户可以使用现金、信用卡、支票等多种支付手段主要用于零售的百货商店包括计算机和条形码扫描仪等硬件设备和系统运行软件-67-示例03-01-1:POST用例图-68-用例阐述Use Case:购买商品IDUC1参与者Cashier,Customer交叉引用描述顾客带着所要购买的商品来到付款处,出纳员记录下商品信息并接受付款,付款完成后,顾客带着所购买的商品离开前置条件客户购买了若干件商品基本事件流:用例起始于顾客带着所要购买的商品到达一个销售点终端出纳员录入每个商品的商品号,如果出现多个商品,则还需要录入数量系统确定
25、商品信息输入到正在运行的POST系统,显示当前商品信息和价格输入完商品信息后,出纳员向POST发出提示,提示商品信息录入完毕计算和显示顾客的商品价格总额出纳员将商品价值总额报告给顾客出纳员接收顾客的付款顾客的付款数可能高于商品总额出纳员录入顾客所付的现金总额系统显示出应找还给顾客的余额,打印付款收据出纳员收管好现金并取出要找还给顾客的现金,并支付给顾客打印付款收据系统记录本次交易顾客带着所购的商品离开备选事件流:第2步:如果输入的商品号码无效,系统显示出错信息第7步:顾客没有足够的现金,则取消本次交易后置条件-69-示例03-02:网上销售系统用例图-70-示例03-03:简单手表用例图-71
26、-静态图:类图、对象图、包图类图:是软件的蓝图,详细描述了系统内各个对象的相关的类,以及这些类之间的静态关系A class diagram is a software blueprint -Details the types of objects within a system -Describes the static relationships between classes对象图:表示在某一时刻类的对象静态结构和行为An object diagram represents a concrete situation at a given time, it express both the
27、static structure (found in class diagrams) and behavior 主要使用场合:系统分析、设计、代码生成-72-类图元语-1类第一栏是类名,第二栏是类的属性,第三栏是类的操作包包表示一个类图的集合关联关联用于表示类的对象之间的关系,其特殊形式有组成关联和聚集关联聚集关联聚集关联用于表示类的对象之间的关系是整体与部分的关系组成关联组成关联用于表示类的对象之间的关系是整体拥有各部分且部分与整体共存亡Package-73-类图元语-2泛化关系泛化关系(继承关系)定义类和包之间的一般元素和特殊元素之间的分类关系依赖关系有两个类或包X、Y,修改X的定义引起对
28、Y的定义的修改,则称Y依赖于X注释体注释体用于对UML实体进行文字描述注释连接注释连接将注释体与要描述的实体相连-74-示例03-01-2:静态结构图-75-OO思想-76-OO思想-77-如何阅读类图先看清有哪些类然后看类之间的关系结合多重性来理解类图的结构特点以及各属性、方法的含义-78-阅读过程找出类Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Product找出关系从图中关系最复杂(也就是线最密集)的类开始阅读,如Order类OerderItem和Order之间是组合关系,根据箭头方向可知Order包含了OrderIt
29、emOrder类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。-79-阅读过程多重性:用来说明关联的两个类之间的数量关系-80-阅读过程理解方法Order类有两个方法dispatch()和close (),从名字中可以猜出它们分别实现“分发订单生成送货单”和“完成订单”。DeliveOrder 类中有一个close ()方法,同理,它表示“完成送货”。而在OrderItem中有一个stateChange ()方法和deliverState,不难猜出它就是用于改变其“是否交给收货人”标志位的。先调用Order的dis
30、patch ()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以获取其DeliverOrder,并在执行完成后再调用close ()方法。此时,就将调用OrderItem的stateChange()方法来改变其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉。-81-82-对象图类和对象类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象,对象是具体。-83-对象的表示法对象名对象名:类名 两个部分是
31、可选的,如果有类名,则必须加冒号,对象名加下划线属性由于对象是具体事物,则所有属性均已确定,因此在属性后面列出其值。-84-Rose中没有专门的对象图,可在协作图中表示。-85-由于类图只展示程序的静态类结构,因此通过类图看懂代码的意图相对困难时,可以通过对象图进行细化分析。开发人员在建立复杂逻辑的类交互时,不妨画出对象图帮助补充说明。-86-在跟踪系统的交互过程时,往往会涉及到系统交互过程的某一瞬间交互对象的状态,但系统类图并没有对此进行描述。在UML中引入对象图,用于描述一个参与交互的对象在交互过程中某一时刻的状态。对象图(Object Diagram)是描述在某一时刻,一组对象以及它们之
32、间关系的图形。对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。-87-对象图中一般包括“对象”和“链”两类基本的模型元素。对象 (Object)链(link)链是两个或多个对象之间的独立连接,是关联的实例通过链可以将多个对象连接起来,形成一个有序列表,通常将两个对象之间的连接称为二元链。链在图形上使用一条不带箭头的实线表示。-88-包图包在UML中被视为文件夹-89-什么是包包的作用包像一个容器,通常用来组织用例图和类图,当然,包图的用途不仅限于这些UML元素;语义上相关的元素进行分组;定义模型中的“语义边界”;提供封装的命名空间,其中所有名称必须唯一。-
33、90-什么是包包的表示法名称:每个包都必须有一个与其它包相区别的名称简单名、路径名 拥有的元素:在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它包或图-91-对包中的元素也可以进行可见性的控制。公有元素,任何导入此包的包中,都可以引用公有元素保护元素,只有此包的子包才可以引用保护元素私有元素,只有在此包中才可以引用私有元素,对外一律不可见。Rose2003中画可见性如,画一个,class,并设置其specification中的export control右击目标package,选择slect compartment items-92-包的版型表示正在建模的整个系统表
34、示正在建模的系统中某个独立的部分虚包,只是某个其它包的视图,主要用于为其它一些复杂的包提供简略视图是一个代理包,通常应用于分布式系统的建模中用来表示一个主要由模式组成的包,框架是一个领域内的应用系统提供可扩充模板的体系结构模式最流行的三种分布式结构CORBA、RMI和DCOM -93-包的版型-94-包的关系引入依赖关系Import 是默认的关系说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素源包可以存取目的包中内容,并且引用目的包时无需包名,直接用元素名称就可。依赖不传递客户包提供者包-95-包的关系也可以在包和接口之间建立实现关系-96-包
35、图UML2.0正式图形订单表示层数据层业务逻辑层-97-设计类包的原则复用等价原则把类放入包时,应把包作为可复用的单元,方便版本更替共用闭包原则把需要同时改变的类放在一个包中一个类改变要求另一个类随之改变删除了一个类后,另一个类多余两个类之间有大量消息发送共用使用原则不会一起使用的类不要放在一个包中,避免无辜影响如果元素A依赖于包P中的某个元素B,则表示A会依赖于P中的所有元素,如果包P中任何一个元素做了修改,A都要重新审视自己是否还能使用包P非循环依赖原则包之间的依赖关系不要形成循环,如果确实有 此类情况出现,不妨将几个循环依赖的包中全部放到一个更大的包中-98-交互图概述Interacti
36、on diagram,是描述对象之间的关系和对象之间的信息传递的图;通常用来描述一个用例的行为,实现一个用例,完成对系统的动态行为建模;包含两种:顺序图(或时序图,sequence diagram)协作图(collaboration diagram)-99-顺序图面向时间描述对象交互的图协作图对象间消息的结构化视图-100-顺序图按照时间顺序显式对象之间交互的图-101-顺序图的组成活动者(actor)或者 对象(object)生命线(lifeline)激活(activation)/ 控制焦点(focus of control)消息(message)-102-活动者或对象活动者和对象按照从左到
37、右的顺序排列一般最多两个活动者,他们分列两端。启动这个用例的活动者往往排在最左边;接收消息的活动者则排在最右端;对象从左到右按照重要性排列或按照消息先后顺序排列。-103-104-活动者或对象对象的命名方式有三种:包括对象名和类名类名(匿名对象)对象名(不关心类)-105-生命线生命线(Lifeline):每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时间内的存在垂直的虚线如果对象生命期结束,则用注销符号表示对象默认的位置在图顶部,表示对象在交互之前已经存在如果是在交互过程中由另外的对象所创建,则位于图的中间某处。-106-107-激活期激活期(activation)/控制焦点(f
38、ocus of control)对象在一段时间内获得了焦点,也称激活期对象执行某个动作的时期空心矩形条激活期的长短意味着对象执行某个动作的时间有多长,可以通过约束10ms来限制执行时间的长短。-108-109-消息面向对象方法中,消息是对象间交互信息的主要方式。结构化程序设计中,模块间传递信息的方式主要是过程(或函数)调用。对象A向对象B发送消息,可以简单地理解为对象A调用对象B的一个操作(operation)。-110-消息顺序图中,尽力保持消息的顺序是从左到右排列的。一个顺序图的消息流开始于左上方,消息2的位置比消息1低,这意味着消息2的顺序比消息1要迟。顺序图中消息编号可显示,也可不显示
39、。协作图中必须显示。-111-消息UML三种消息:调用(Procedure Call)异步(Asynchronous)返回(Return)-112-消息UML三种消息:调用(Procedure Call)发送者把消息发送后,等待直到接收者返回控制,可以表示同步;实心箭头符号-113-消息UML三种消息:异步(Asynchronous)消息发送后,发送者继续操作,不等待,常用于并发;-114-消息UML三种消息:返回(Return)表示消息的返回。消息上方放置返回值同步消息的返回可以画出(如果想明确表达返回值),也可以不画出,直接隐含。异步消息可以有返回,也可以没有。(可以响应异步消息,也可以不
40、响应该异步消息。)如果顺序图上显示有编号,则返回消息的编号和当初发送消息的编号完全一样。虚线箭头表示,和依赖关系不要混淆-115-116-消息自调用(Self Call)某对象自己调用自己的操作UML标记 (嵌套的矩形条) Rose标记-117-建立顺序图的步骤确定交互的范围;识别参与交互的对象和活动者;设置对象生命线开始和结束;设置消息;细化消息;-118-案例:存款分析级别的顺序图,粗略,双斜杠忽略消息同步异步类别也无妨-119-Add title 新增书目和图书操作-120-121-每个用例需要一张或多张顺序图来描述其行为。每张顺序图显示用例的一个特定的行为序列。顺序图可以显示大规模的交
41、互,但这样的交互常会包含许多独立的可以按不同方式进行组合的任务。无需重复信息就可以为每项任务绘制一张独立的顺序图。也要为用例内部的每种异常绘制一张顺序图。-122-:顾客:股票经纪人系统:证券交易所输入买入日期申请确认确认买入显示订单号下订单报告交易结束验证资金执行订单买入股票的顺序图-123-:顾客:股票经纪人系统:证券交易所输入买入日期拒绝买入取消买入验证资金:资金不足买入股票失败的顺序图-124-顺序图示例:简单手表调时-125-顺序模型的准则:至少为每个用例编写一种场景;把场景抽象为顺序图;划分复杂的交互;为每种错误条件绘制一张顺序图。-126-高级交互建模带有被动对象的顺序图主动对象
42、在发送消息之后还保持活动状态,并可以响应其他消息。所有的对象并不总是主动的,多数是被动的对象:没有自己的控制线程,在调用时才会被激活。一旦操作完成,控制权就会返回给调用者,被动对象就会变成不活动的。-127-高级交互建模带有被动对象的顺序图:事务对象:客户表:费率表对象服务级别(客户)级别计算佣金(级别、事务)佣金计算佣金佣金带有被动对象的顺序图-128-高级交互建模带有临时对象的顺序图UML表示创建的方法是,把对象符号放在表示创建此对象的调用的箭头头部。一个大“X”标记表示顺序图中被销毁对象生命周期的结束。“X”放在销毁对象的调用箭头的头部;如果对象自行销毁并将控制权返回给另一个对象,那么“
43、X”就放在返回箭头的尾部。objectAobjectBobjectCoperationE(c, d)resultV带有临时对象的顺序图createC(arg)operationE(m, n)resultT-129-练习用户打印文件,计算机向打印服务器发送打印命令,打印机如果空闲,则直接打印,否则把打印文件存储在打印队列中。-130-131-练习管理员通过课程管理器打印课程UML的信息顺序图制作提示:只关注核心对象顺序图用于描述某个用例的部分交互细节-132-133-管理员通过课程管理器打印所有课程信息-134-135-协作图描述系统对象(或活动者)如何共同协作实现用例;强调的是参与交互的对象的
44、组织;一般,顺序图和交互图可以相互转换,Rose提供了转换工具。先画顺序图,再转成协作图更容易-136-多对象多对象是多个对象组成的集合,往往是同一个类的对象;如果消息同时发给多个对象,则用多对象表示;在顺序图中仍然显示为单对象一样的图标, rose中multiple instance协作图中重叠的方框。-137-活动对象/主动对象主动对象是一组属性和一组方法的封装体,其中至少有一个方法不需要接收消息就能主动执行(称为主动方法)主动对象是不需接收消息就可自动启动交互的对象除了含有主动方法外,主动对象和被动对象无区别-138-案例:存款-139-协作图示例:打印服务器-140-状态图状态图:用于
45、利用状态和事件描述对象本身的行为A statechart diagram can be used to describe formally the behavior of objects in terms of states and events状态(states): the state of an object转移(transitions): the passing from one state to another事件(events): the occurrence of a given situation主要使用场合:系统分析(类)、设计-141-状态图元语-1初态表示状态图的起始点中间
46、状态表示状态图的简单状态终态表示状态图的终点状 态状态图元语-2转移用于说明两个对象间存在某种关系,如满足某个条件并当某一事件发生时,对象将从一个状态变迁到另一个状态并同时执行一些活动注释体注释连接-143-示例03-01-5:状态图-144-状态图TransitionsSource StateTarget StateTrigger guard / Effect-145-转换(Transitions)转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。 转换进入的状态为活动状态,转换离开的状态变为非活动状态。-1
47、46-转换组成:源状态:即受转换影响的状态目标状态:当转换完成后对象的状态 触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件监护条件:布尔表达式,决定是否激活转换动作:转换激活时的操作-147-IdleMenu visibleright button down/ display pop-up menuright button up/ erase pop-up menuCursor moved/ highlight menu item-148-触发事件(Event Trigger)触发事件是能够引起状态转换的事件。转换也可以是非触发的, 非触发转换(Triggerless T
48、ransition)也被称为完成转换(Completion Transition),当源状态完成活动时,转换被隐式地触发。-149-监护条件(Guard Condition)监护条件是触发转换必须满足的条件,它是一个布尔表达式。 布尔表达式由“ ”括起,放在触发事件后面。当触发事件发生后,求监护条件的值,如果值为真,转换可以触发;如果值为假,转换就不能被触发,如果也没有其他的转换被这个触发事件触发,则事件被忽略。从一个状态引出的多个转换可以有同样的触发器事件,但是每个转换必须具有不同的监护条件。 -150-动作(Action)动作是一组可执行语句或者计算处理过程。动作可以包括发送消息给另一个对
49、象、操作调用、设置返回值、创建和销毁对象等。动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止。整个系统可以在同一时间执行多个动作。-151-入口动作与出口动作(Entry/Exit Actions) 入口动作和出口动作表示进入或退出这个状态所要执行的动作。入口动作用“entry/要执行的动作”表达,而出口动作用“exit/要执行的动作”表达。do:用来指定处于状态时发生的动作;event:用来指定当特定事件触发时发生的动作。-152-简单手表“设置时间” 的状态图-153-转换转换种类:外部转换内部转换自转换-154-外部转换外部转换是一种改变对象状态的转换,是
50、最常见的一种转换。外部转换对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作。外部转换用从源状态到目标状态的箭头表示。 -155-内部转换 (Internal Transitions)内部转换对事件做出响应,并执行一个特定的活动,但并不引起状态变化,因此不需要执行入口和出口动作。内部转换和自转换不同,虽然两者都不改变状态本身,但是自转换会激发入口动作和出口动作的执行,而内部转换却不会。内部转换:用来处理一些不离开该状态的事件. -156-简单状态 (Simple State)简单状态是指不包含其他状态的状态。简单状态没有子结构,但它可以具有内部转换、入口动作和出口动作等。 -157-
51、组成状态(Composite State)组成状态是可以包含一些嵌套的子状态的状态。组成状态可以分解为并发子状态,或者分解为互相排斥的顺序子状态。组成状态的一个入转换代表对其嵌套子状态区域内的初始状态的入转换;对嵌套子状态区域内的终结状态的转换代表包含它的终止状态的相应活动的完成。 -158-嵌套的子状态的分类1. 顺序子状态(Sequence /Disjoint Substates)2. 并发子状态(Concurrent Substates)-159-1. 顺序子状态(Sequence Substate)如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状
52、态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。当状态机通过转换从某种状态转入组成状态时,此转换的目的可能是这个组成状态本身,也可能是这个组成状态的子状态。例:-160-Example: State MachineHiredAssistantProfessorTenuredProfessorAppliedrejectedacceptedHiatusHHtakeSabbaticalretiredmaxPapersseniorityreturn-161-2. 并发子状态(Concurrent Substate)有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。
53、顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个并发子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。-162-并发子状态例子-163-Compound State-164-状态图建模技术建模步骤:找出适合用模型描述其行为的类。确定对象可能存在的状态。确定引起状态转换的事件。确定转换进行时对象执行的相应动作。对建模的结果进行相应的精化和细化。-165-状态图History StatesA History State is used to remember the previous state of a state machine when it was interrup
54、ted. 历史状态代表上次离开组成状态时的最后一个活动子状态,它用一个包含字母“H”的小圆圈表示。每当转换到组成状态的历史状态时,对象便恢复到上次离开该组成状态时的最后一个活动子状态,并执行入口动作。-166-WashingRinsingSpinningHPower OffPower CutRestore Power-167-活动图Activity Diagram用于描述活动流程的图形称为活动图 和结构化方法中的工具程序流程图作用基本一致。是一种特殊的状态图。与状态图的区别活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程;状态图着重描述从一个状态到另一个状态的流程,主要有外部
55、事件的参与。-168-活动图活动图可以用作以下目的:说明一次业务流程中的人(参与者)和对象是如何工作的。 显示用例的实例如何执行动作以及如何改变对象状态。描述一个操作执行过程中所完成的工作(动作)。描述对象内部的工作。显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。-169-存款-170-活动图示例:打印过程-171-基本概念动作状态活动状态转换分支分叉和汇合同步泳道对象流-172-状态State状态是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况。活动图中的状态包括动作状态和活动状态。动作状态对象的动作状态是活动图中最小单位的构造块,表示原子动
56、作。动作状态有三个特性:原子性;不可中断性:瞬时性: -173-活动状态表示的是可以分割的动作 特点是:它可以被分解成若干活动状态或动作状态,它能够被中断,占有有限的时间。 活动状态可以理解为一个组合,它的控制流由其他活动状态或动作状态组成。动作状态和活动状态使用带圆端的方框表示-174-活动图中也有初态和终态初态表示一个工作流程的开始,用实心圆点来表示 终态表示了一个活动图的最后和终结状态,用实心圆点外加一个小圆圈来表示 -175-转换(transition) 转换是两个状态间的一种关系,表示对象将在当前状态中执行动作,并在某个特定事件发生或某个特定的条件满足时进入后继状态。 -176-分支
57、(Branch)分支用于描述基于某个条件的可选择路径。一个分支可以有一个进入转换和两个或多个输出转换在每条输出转换上都有监护条件表达式保护,当且仅当监护条件表达式为真时,该输出路径才有效。在所有输出转换中,其监护条件不能重叠,而且它们应该覆盖所有的可能性。分支在图形表示上 用菱形表示 -177-分叉(fork)和汇合(join) 在UML中使用分叉和汇合表示并行发生的事件流分叉表示把一个单独的控制流分成两个或多个并发的控制流。一个分叉可以有一个进入转移和两个或多个输出转移,每一个转移表示一个独立的控制流。 汇合表示两个或多个并发控制流的同步发生,一个汇合可以有两个或多个进入转移和一个输出转移。
58、 分叉和汇合在图形上都使用同步条来表示,同步条通常用一条粗的水平线表示 -178-示例:描述打电话活动中的并发事件-179-泳道(swimlane)“泳道”技术,是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。 “泳道”技术来描述每个活动是由哪个对象负责完成 UML中,每个组被称为一个泳道,用一条垂直的实线与邻居分开每个活动都明确属于一个泳道,不可以跨越泳道,而转移则可以跨越泳道-180-用活动图描述客户在商店中购买物品的过程。-181-对象流(object stream)对象流是动作状态或活动状态与对象间的依赖关系。对象流可用于对下列关系建模:动
59、作状态对对象的使用动作状态对对象的影响。 在UML中,使用矩形表示对象 , 对象和动作之间使用带箭头的虚线连接,带箭头的虚线表示对象流。工具栏customize-182-用活动图描述客户在商店中购买物品的过程。(使用对象流技术描述购物这个动态过程中系统内对象的状态变化 )-183-活动分解为子活动Rose中演示-184-活动图建模活动图的建模技术活动图用于对系统的动态行为建模,在对一个系统建模时,通常有两种使用活动图的方式: 为工作流建模为对象的操作建模 -185-使用活动图对系统建模的步骤确定活动图所关注的业务流程。确定该业务流程中的业务对象。确定该工作流的起始状态和终止状态。从该工作流的起
60、始状态开始,说明随着时间发生的动作和活动,并在活动图中把它们表示成活动状态或动作状态。将复杂的动作,或多次出现的动作集合归并到一个活动状态,并对每个这样的活动状态提供一个可展开的单独的活动图。找出连接这些活动和动作状态的转移。如果工作流中涉及重要的对象,则也把它们加入到活动图中。-186-实例:新增读者用例属于读者信息管理中的一个功能,主要用于在系统中增加新的读者信息,其具体的办理流程是:(1)读者填写申请表,并交给图书管理员;(2)图书管理员将申请表中的信息通过录入界面,输入到图书管理系统;(3)系统中的业务逻辑组件将判断输入的信息是否合法;(4)如果不合法则转入步骤(5),否则转入步骤(6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年全民国家安全教育日的法律考试答题活动总结
- 化工工厂后勤服务全面总结
- 软件行业工程师工作体会
- 急诊护士守护生命安全
- KTV前台服务心得体会
- 书籍《外婆的道歉信》的读书笔记感想
- 2023年企业主要负责人安全培训考试题带答案(考试直接用)
- 2023-2024年项目部治理人员安全培训考试题及完整答案【名校卷】
- 2023年员工三级安全培训考试题(预热题)
- 2023-2024年项目部安全培训考试题原创题
- 2024版智能硬件产品研发合作协议3篇
- 甘肃省兰州市第一中学2023-2024学年高一上学期期末考试 物理 含解析
- 草地调查规划学知到智慧树章节测试课后答案2024年秋东北农业大学
- 2024年矿产资源开发咨询服务合同
- 上海市2024-2025学年高一语文下学期期末试题含解析
- 国家电网招聘之财务会计类题库含完整答案(必刷)
- 建筑物拆除的拆除工厂考核试卷
- 广东省深圳市2023-2024学年高二上学期期末测试英语试卷(含答案)
- 乘风化麟 蛇我其谁 2025XX集团年终总结暨颁奖盛典
- 人教版一年级数学2024版上册期末测评(提优卷一)(含答案)
- 医疗护理员理论知识考核试题题库及答案
评论
0/150
提交评论