第七章行为图:状态图和活动图状态图;活动图。I状态图的基本要素基本概念;状态图的基本要素;小结。I.1基本概念状态图有多种形式,以基于DavidHarel的状态表方法在OO技术中最为流行。状态图描述系统对象的动态行为,一般描述一个特定对象在其生命周期中的所有可能状态以及由于各种事件的发生而引起状态的转移条件。I.2状态图的基本要素实例:订单对象的状态图;状态语法和转移语法;状态的转移条件;转移条件的互斥性;状态图的基状态表示法;并发状态图。实例:订单对象的状态图[allitemschecked&&allitemsavailable]收到货物[allitemsavailable]发货活动do/initiatedelivery发货状态/getfirstitem[allitemschecked&&someitemsnotinstock]取下一项[notallitemschecked]开始do/checkitem检查状态收到货物[someitemsnotinstock]转移状态回授等待状态已发货状态事件名[条件]/动作名do/活动名状态图中的基本概念状态转移事件动作UML表示格式:(entry|do|event|exit)/action-express手机短信状态图作业作业答案I.3小结评述;状态图的基本要素;状态图的元语。评述状态图、交互图和活动图:状态图适合描述跨越多个用例的单个对象的行为,不适合描述多个对象之间的协作行为。交互图适合描述单个用例中多个对象之间的协作行为。活动图适合描述多个对象跨越多个用例时的总面貌。不应对系统中的每个类都画状态图,而只应对某些关键类建立状态图;而且应将状态图与其它技术组合使用。状态图的基本要素状态:初态、中间状态、复合状态、终态和并发条。条件和转移:转移、条件、条件判断标志和历史标志。注释:注释体和注释连接。状态图的元语初态表示状态图的起始点。名称描述可视化图符中间状态表示状态图的简单状态。State状态复合状态表示状态图的复合状态,可细化为多个子状态,用“或”和“与”两种关系相连。State复合状态条件判断标志表示状态间的条件分支转移。终态表示状态图的终点。状态图的元语(续)将注释体与要描述的实体相连,说明该Note是针对该实体所进行的描述。用于对复合状态中的某个子状态做标志,说明该子状态是退出复合状态时最后所处的状态。表示并发状态。描述注释连接并发条名称用于说明两个对象间存在某种关系,如满足某个条件并当某一事件发生时,对象将从一个状态变迁到另一个状态并同时执行一些活动。转移用于对UML实体进行文字描述。注释体可视化图符历史标志HII活动图的基本要素引言;活动图的基本要素;小结。II.1引言基本概念;活动图示例;活动图的元模型。基本概念从概念层看,活动表示需要由人或计算机来完成的任务。图中描述了“人找饮料喝”这一过程。从说明层或实现层看,活动表示类中的方法。图中描述了名字为“人”的对象类中一个关于“找饮料喝”的方法。来源:活动图主要来源于JimOdell的事件图、SDL状态建模技术和Petri网技术。活动图的核心符号是活动,通过连接将活动组成活动图。活动图示例[没有可口可乐]判断条件判定活动[找到可口可乐]活动[找到咖啡][没有咖啡]同步条件找饮料将咖啡放到过滤器中取一听可口可乐加水到容器中取出咖啡杯人熄灭咖啡炉点燃咖啡炉把过滤器放到咖啡炉上冲调咖啡终点喝饮料倒咖啡活动的元模型活动的元模型基于SADT技术,它包含五个元素:输入,输出,支持,控制和活动。活动控制输入输出支持II.2活动图的基本要素活动;泳道;分支;分叉和汇合;对象流;注释体和注释连接。活动活动:活动图所描述的过程中的某一原子活动(即不可再被细分)。UML中的表示:泳道游道是活动图中的区域划分,每个泳道代表一个责任区,一个泳道可由一个或多个类实现。分支对于同一触发事件,可以根据不同的警戒条件转向不同的活动,每个可能的转移是一个分支。分叉和汇合表示系统或对象中的并发行为。分叉表示一个控制流被两个或多个控制流代替,经过分叉后,这些控制流是并发进行的;汇合正好相反。对象流在活动图中可以出现对象,对象可以作为活动的输入或输出。对象流表示活动与对象之间的关系。注释体和注释连接注释体:用于对UML实体进行文字描述。注释连接:用于将注释体与要描述的实体相连,说明该注释体是针对该实体所进行的描述。活动图例子活动图例子课堂作业某公司的设备采购流程设置为:A、由业务部门提出需求设备清单;B、将需求设备清单交采购部门建立采购采买单据;C、采购部门建立采购单据后,交财务部门,向财务部门申请款项,预支零用金;D、财务部门建立应付帐款单据后:核支款项;E、采购部门在收到款项后,进行采买;F、采买完成后,执行:(1)发票和剩余款项交财务部:(2)设备交业务部门;G、(a)采购部门:采购单据结案;(b)财务部门:帐款冲销结案;II.3小结活动图的优点和缺点;何时可使用活动图;何时不应使用活动图;UML活动图元语小结。活动图的优点和缺点优点:最适合支持并行行为,而且也是支持多线程编程的有力工具。缺点:很难清楚地描述动作与对象之间的关系。虽然在活动旁标出对象名或者采用泳道技术可以定义这种关系,但仍然没有交互图简单直接。因此,像大多数建模技术一样,最好把活动图与其他技术结合使用。何时可使用活动图分析用例。能直观清晰地分析用例,了解应当采取哪些动作以及这些动作之间的依赖关系。一张完整的活动图是所有用例的集成图。理解牵涉多个用例的工作流。在难于区分不同用例而对整个系统的工作过程又十分清楚时,可以先构造活动图,然后用切片技术派生用例图。处理多线程应用。采用“分层抽象,逐步细化”的原则描述多线程。何时不应使用活动图显示对象间的合作。用交互图显示对象间的合作更简单直观。显示对象在生命周期内的运转情况。活动图可以表示活动的激活条件,但不能表示一个对象的状态变换条件。因此,当要描述一个对象整个生命周期的运转情况时,应当使用状态图。UML活动图元语小结名称描述可视化图符起点表示活动图中所有活动的起点(一般每幅活动图有且仅有一个起点)。活动活动表示活动图所描述的过程中的某一活动。该活动是原子活动(即不可再被细分)。终点表示活动图中活动的终点。一般每幅活动图有一个或多个终点。组合活动组合活动表示活动图所描述的过程中的某一活动。该活动可再细分成多个活动(一般用另一张活动图加以描述)。若与信号流相连,表示它是与活动图中的对象进行交互(接收或发送信号)的其他对象;若与数据流相连,表示它是活动的输入产品或输出产品。对象对象UML活动图元语小结(续)同步条一种特殊活动,表示活动之间的同步。一般有一个或多个信息流向它引入,有一个或多个信息流从它引出,表示引入的信息流同时到达,引出的信息流被同时触发。条件判断一种特殊活动,表示活动流程中的判断。通常有多个信息流从它引出,表示决策后的不同活动分支。信号接收信号接收一种特殊活动,若与信号流相连,表示相应信号的接收是某个活动转移的必要条件。等价于信息流上的事件标识。信号发送信号发送一种特殊活动,若与信号流相连,表示在某个活动转移发生时向某个对象发送一个信号。等价于信息流上的发送子句。用于对活动图中的活动进行分组,同一组活动由一个或多个对象负责完成。描述名称可视化图符泳道泳道UML活动图元语小结(续)将注释体与要描述的实体相连,说明该注释体是针对该实体所进行的描述。用于连接活动与对象,表示该对象是该活动的输入或输出。描述注释连接数据流名称用于对UML实体进行文字描述。注释体可视化图符信息流用于连接活动、组合活动及特殊活动(如起点、终点、同步条及判断等),表示活动的转移。将一个信号发送(或信号接收)与一个对象相连接,表示向该对象发送(或由该对象接收)一个信号。信号流第九章构件图构件图;配置图。I构件图引言;构件图示例;构件图的基本要素;UML构件图元语小结。引言本章将讨论系统的实现图,即构件图和配置图,它们显示系统实现时的一些特性。其中:构件图显示代码的静态结构(逻辑结构);配置图显示系统运行时刻的实现结构。构件图示例构件circle类(circle.obj)square类(square.obj)依赖square类(square.cpp)circle类(circle.cpp)main类(main.cpp)main类(main.obj)图形库(graphic.dll)主执行程序(main.exe)构件图的基本要素源代码构件;二进制构件;可执行构件。软构件是一个实际文件,有以下几种:构件图显示软构件以及它们(编译、链接或执行时)相互之间的依赖关系以及接口和调用关系。UML构件图元语小结描述用于对UML实体进行文字描述。将注释体与要描述的实体相连。说明该注释体是针对该实体所进行的描述。构件代表可执行的物理代码模块。有两个构件元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。对外提供的可见操作和属性,称之为构件的界面。可视化图符构件名称注释体构件注释连接界面依赖关系构件图的工具支持1、正向工程(1)把建模语言设定为选定语言(如JAVA、C++等);(2)在类图中创建类;(3)在构件图中添加一个构件;(4)在构件图中选择生成代码;构件图例子1、生成类图2、在构件图中添加构件3、把类赋于组件4、生成代码publicclassA{publicBtheB[];/***@roseuid42455C70014B*/publicA(){}}privateclassB{/***@roseuid42455C700213*/publicB(){}}逆向工程ROSE2003支持逆向工程。可以根据源代码得到构件图和类图。II配置图引言;配置图示例;配置图的基本要素;UML配置图元语小结。引言配置图用来描述系统硬件的物理拓扑结构以及在此结构上执行的系统软件。配置图可以显示计算结点的拓扑结构和通信路径、结点上运行的软构件、软构件包含的逻辑单元(对象、类等)。配置图是描述任何基于计算机的应用系统(尤其是基于Internet和Web的分布式计算系统)的物理配置或逻辑配置的有力工具。配置图示例肝病部门配置肝病部门服务器肝病部门服务器应用程序对象数据库保健区糖尿病部门服务器对象数据库保健区一台多窗口PC肝病部门客户外观肝病部门用户界面TCP/IPTCP/IP配置医疗知识配置用户配置图的基本要素结点:配置图中的结点代表物理设备及其在上运行的软件系统。结点用一个立方体表示,结点名放在左上角。图中有“一台多窗口PC”、“肝病部门服务器”和“糖尿病部门服务器”等三个结点。连接:结点之间的连线表示系统之间的通信路径(在UML中称为连接),通信类型放在连接旁边的“《》”之间。构件:而配置图中,每个构件代表一个负责某种专门处理(即具有某种专门功能)的包。因此,配置图显示了各个包在系统中运行的分布情况。接口:一个构件可以有多个接口,以表示出哪些构件与哪一个接口进行通信。对象:配置图中的对象与对象图中的对象表示法相同。UML配置图元语小结可视化图符构件对象结点描述名称构件代表可执行的物理代码模块。对外提供的可见操作和属性,称之为构件的界面。对象是类的一个实例。一个结点代表一个物理设备以及在其上运行的软件系统。构件界面对象结点UML配置图元语小结(续)结点之间的连线表示系统之间进行交互的通信路径,在UML中称为连接。有两个构件元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。描述可视化图符名称用于对UML实体进行文字描述。将注释体与要描述的实体相连。说明该注释体是针对该实体所进行的描述。注释体注释连接连接依赖关系作业