1、第第7章章 状态图、组件图、配置图状态图、组件图、配置图授课教师授课教师:付付 超超内容提纲内容提纲1.状态图状态图2.组件图组件图3.配置图配置图1.状态图状态图1.1 状态图状态图1.2 状态图的应用状态图的应用1.状态图状态图状态图状态图(Statechart Diagrams)为为系系统统的的动动态态方方面面建建模模的的5个个图图之之一一。它它主主要要是是一一个个流流图图,描描述述从从状状态态到到状状态态的的流流,包包括括一一个个特特定定对对象象的的所所有有可可能能状状态态以以及及引引起起状状态态跃跃迁迁的的事事件件。活活动动图图是是状态图的特例。状态图的特例。状态状态 (1)初始状态
2、初始状态(1个个)(2)最终状态最终状态(1个或多个个或多个)(3)中间状态中间状态 (4)复合状态复合状态1.1 状态图状态图1.状态图状态图为什么为什么要使用状态图要使用状态图状态图的作用主要体现在以下几个方面:状态图的作用主要体现在以下几个方面:(1)状状态态图图清清晰晰的的描描述述了了状状态态之之间间的的转转换换顺顺序序,通通过过状状态态的的转转换换顺顺序序也也就就可可以以清清晰晰的的看看出出事事件件的的执执行行顺顺序序。如如果果没没有有状状态态图图我我们就不可避免的要使用大量的文字来描述们就不可避免的要使用大量的文字来描述外部事件的合法顺序外部事件的合法顺序。(2)清清晰晰的的事事件
3、件顺顺序序有有利利于于程程序序员员在在开开发发程程序序时时避避免免出出现现事事件件错序的情况。错序的情况。(3)状状态态图图清清晰晰的的描描述述了了状状态态转转换换时时所所必必须须的的触触发发事事件件、监监护护条条件件和和动动作作等等影影响响转转换换的的因因素素,有有利利于于程程序序员员避避免免程程序序中中非非法法事事件的进入。件的进入。(4)状状态态图图通通过过判判定定可可以以更更好好的的描描述述工工作作流流因因为为不不同同的的条条件件发发生的分支。生的分支。1.状态图状态图状态图状态图相关概念相关概念 (1)状状态态图图:给给出出一一状状态态机机,强强调调从从状状态态到到状状态态的的控制流
4、;控制流;(2)状状态态机机:规规定定对对象象在在生生命命周周期期中中响响应应事事件件所所经经历的状态的序列以及对象对这些事件的响应;历的状态的序列以及对象对这些事件的响应;(3)状态:对象在生命周期中的一种条件或状况;状态:对象在生命周期中的一种条件或状况;(4)事事件件:重重要要发发生生事事件件的的规规范范,在在时时空空域域中中有有一一个个位位置置,主主要要包包括括:信信号号事事件件、调调用用事事件件、改改变变事事件件和时间事件等和时间事件等;1.状态图状态图状态图状态图相关相关概念概念 (5)跃迁:两个状态间的关系;跃迁:两个状态间的关系;(6)活动:状态机中正在执行的可分的执行;活动:
5、状态机中正在执行的可分的执行;(7)动作:可执行的、不可分的动作:可执行的、不可分的计算。计算。1.状态图状态图跃迁跃迁 带带箭箭头头的的连连线线,连连接接不不同同状状态态。跃跃迁迁由由事事件件触触发发,应应在在其其上上标标出出事事件件表表达达式式。无无事事件件表表达达式式表表示示源源状状态态内部活动完成后自动触发跃迁内部活动完成后自动触发跃迁。1.状态图状态图同步同步 同同步步条条是是为为了了说说明明并并发发工工作作流流的的分分支支与与汇汇合合。状状态态图图和和活活动动图图中中都都可可能能用用到到同同步步。在在UML中中,同同步步用用一一条线段来表示。条线段来表示。1.状态图状态图顺序顺序组
6、成状态组成状态 如如果果一一个个组组成成状状态态的的多多个个子子状状态态之之间间是是互互斥斥的的,不不能同时存在的,这种组成状态称为顺序组成状态。能同时存在的,这种组成状态称为顺序组成状态。一一个个顺顺序序组组成成状状态态最最多多可可以以有有一一个个初初始始状状态态和和一一个个终终态态,同同时时也也最最多多可可以以由由一一个个浅浅(shallow)历历史史状状态态和一个深(和一个深(deep)历史状态)历史状态。1.状态图状态图并发组成并发组成状态状态 在在一个组成状态中,可能有两个或者多个并发的子一个组成状态中,可能有两个或者多个并发的子状态机,我们称这样的组成状态为并发组成状态。每状态机,
7、我们称这样的组成状态为并发组成状态。每个并发子状态还可以进一步分解为顺序组成状态。个并发子状态还可以进一步分解为顺序组成状态。一一个并发组成状态可能没有初始状态,终态,或者个并发组成状态可能没有初始状态,终态,或者历史状态。但是嵌套在它们里的任何顺序组成状态可历史状态。但是嵌套在它们里的任何顺序组成状态可包含这些伪状态。包含这些伪状态。1.状态图状态图状态图实例状态图实例1.状态图状态图与与其它图区别其它图区别 交交互互作作用用图图描描述述多多个个对对象象间间的的交交互互作作用用;活活动动图图描描述述从从活活动动到到活活动动的的控控制制流流;状状态态图图描描述述单单个个对对象象在在它的整个生命
8、周期的行为,为从事件到事件的控制流。它的整个生命周期的行为,为从事件到事件的控制流。状态图应用状态图应用 通通常常用用来来描描述述事事件件驱驱动动对对象象的的行行为为。主主要要规规定定对对象稳定状态、跃迁触发事件、状态变化发生的动作。象稳定状态、跃迁触发事件、状态变化发生的动作。1.2 状态图的应用状态图的应用 1.状态图状态图为为事件驱动对象建模事件驱动对象建模 (1)选选择择状状态态机机的的上上下下文文,上上下下文文可可以以是是一一个个类类、用例、子系统或系统整体;用例、子系统或系统整体;(2)为对象选择初始状态和最终状态;为对象选择初始状态和最终状态;(3)考考虑虑对对象象存存在在一一段
9、段时时间间的的条条件件,确确定定对对象象的的稳稳定状态;定状态;(4)确定稳定状态在对象生命周期中的局部排序;确定稳定状态在对象生命周期中的局部排序;(5)确定触发从状态到状态跃迁的事件;确定触发从状态到状态跃迁的事件;1.状态图状态图为为事件驱动对象建模事件驱动对象建模 (6)确定状态变化的动作;确定状态变化的动作;(7)通通过过使使用用子子状状态态、分分支支、历历史史状状态态等等来来简简化化状状态机;态机;(8)确确定定是是否否所所有有的的状状态态都都在在事事件件的的某某个个组组合合中中可可达;达;(9)确确定定没没有有状状态态是是死死端端,死死端端即即没没有有事事件件组组合合可可以使对象
10、从这个状态中跃出;以使对象从这个状态中跃出;(10)检查状态机是否违反预想的事件顺序和响应。检查状态机是否违反预想的事件顺序和响应。1.状态图状态图状态图实例状态图实例11.状态图状态图状态图实例状态图实例21.状态图状态图JAVA代码代码int sum=0;public int register(Student s)switch(state)case Open:if(sum 40)state=Open;sum=sum+1;else state=Close;break;case Close:System.out.println(“the class is full”);return sum;1
11、.状态图状态图代码状态图代码状态图1.状态图状态图案例案例1:学生选课系统:学生选课系统1.确定状态图的实体确定状态图的实体 要要创创建建状状态态图图,首首先先要要标标识识出出哪哪些些实实体体需需要要使使用用状状态态图图进进一一步步建建模模。虽虽然然我我们们可可以以为为每每一一个个类类、操操作作、包包或或用用例例创创建建状状态态图图,但但是是这这样样做做势势必必浪浪费费很很多多的的精精力力。一一般般来来说说,不不需需要要给给所所有有的的类类都都创创建建状状态态图图,只只有有具具有有重重要要动动态态行行为为的类才需要。的类才需要。从从另另一一个个角角度度看看,状状态态图图应应该该用用于于复复杂杂
12、的的实实体体,而而不不必必用用于于具具有有复复杂杂行行为为的的实实体体。使使用用活活动动图图可可能能会会更更加加适适合合那那些些有有复复杂杂行行为为的的实实体体。具具有有清清晰晰、有有序序的的状状态态实实体体最最适适合合使用状态图进一步建模。使用状态图进一步建模。对于对于学生选课来说,需要建模的实体就是学生账号。学生选课来说,需要建模的实体就是学生账号。1.状态图状态图案例案例1:学生选课系统:学生选课系统2.确定状态图中实体的状态确定状态图中实体的状态对于一个学生账号来说,它的状态主要包括:对于一个学生账号来说,它的状态主要包括:初始状态初始状态终止状态终止状态可选课状态可选课状态不可选课状
13、态不可选课状态账号被删除状态账号被删除状态1.状态图状态图案例案例1:学生选课系统:学生选课系统3.创建相关事件完成状态图创建相关事件完成状态图 并并找找出出了了实实体体的的初初始始状状态态和和终终止止状状态态以以及及其其他他相相关关状态后,就可以着手创建状态图。状态后,就可以着手创建状态图。首首先先,我我们们要要找找出出相相关关的的事事件件和和转转换换。对对于于学学生生账账号号来来说说,当当有有新新的的同同学学入入学学时时,将将会会给给新新同同学学创创建建一一个个新新的的账账号号,下下面面新新同同学学可可以以用用这这个个账账号号去去选选课课。一一般般来来说说,每每个个人人的的选选课课数数目目
14、是是有有限限的的,比比如如说说选选择择6门门课课程程后后将将不不能能再再选选课课。如如果果已已选选了了6门门课课程程还还要要再再选选课课,就就必必须须删删除除已已选选的的课课程程。直直到到这这位位同同学学毕毕业业,将将其其账账号删除,则进入终止状态。号删除,则进入终止状态。1.状态图状态图1.状态图状态图案例案例2:远程网络教学系统:远程网络教学系统1.对对于于“远远程程网网络络教教学学系系统统”,学学生生如如果果需需要要下下载载课课件件,首首先先需需要要输输入入网网站站的的网网址址,打打开开网网站站的的主主页页。处处于于网网站站主主页页后后,输输入入用用户户名名密密码码,如如果果验验证证通通
15、过过则则进进入入功功能能选选择择页页面面,如如果果验验证证失失败败则则需需要要重重新新输输入入用用户户名名密密码码。进进入入功功能能选选择择页页面面后后可可以以选选在在下下载载课课件件进进入入课课件件选选择择页页面面,选选择择需需要要下下载载的的课课件件进进入入课课件件下下载载状状态态。课课件件下下载载完完毕毕后后,学学生生就就完完成成了了此此次次课课件件下下载载,画出学生下载课件的状态图。画出学生下载课件的状态图。1.状态图状态图1.状态图状态图案例案例2:远程网络教学系统:远程网络教学系统2.在在“远远程程网网络络教教学学系系统统”中中,一一个个课课件件被被上上传传到到网网站站后后,首首先
16、先需需要要系系统统管管理理员员对对其其进进行行审审核核,审审核核通通过过后后此此课课件件就就可可以以被被用用户户浏浏览览、下下载载。经经过过一一段段时时间间后后,系统会清除网站中过时的系统会清除网站中过时的课件。课件。画画出课件的状态图。出课件的状态图。1.状态图状态图2.组件图组件图2.1 组件图组件图2.2 组件图的应用组件图的应用2.组件图组件图组件组件图(图(Component Diagrams)描描述述组组件件及及组组件件间间的的关关系系,表表示示组组件件间间的的组组织织和和依依赖赖关关系系。它它是是用用来来为为面面向向对对象象系系统统的的物物理理方方面面建建模模的的两种图之一。还可
17、为系统的静态实现视建模。两种图之一。还可为系统的静态实现视建模。包含元素包含元素 (1)组件。组件。(2)接口。接口。(3)依赖关系、类属关系、关联关系和实现关系。依赖关系、类属关系、关联关系和实现关系。2.1 组件图组件图2.组件图组件图组件图实例组件图实例2.组件图组件图组件图的应用组件图的应用 用用组组件件图图为为系系统统的的实实现现视视建建模模,通通常常用用在在以以下下四四种种情况:情况:(1)为源代码建模;为源代码建模;(2)为可执行版本建模;为可执行版本建模;(3)为数据库建模;为数据库建模;(4)为自适应系统建模。为自适应系统建模。2.2 组件图的应用组件图的应用2.组件图组件图
18、为为源代码建模源代码建模 组组件件图图主主要要用用来来可可视视化化描描述述文文件件和和文文件件间间的的关关系系。为源代码建模时:为源代码建模时:(1)将源代码文件表示为原型为文件的组件原型;将源代码文件表示为原型为文件的组件原型;(2)大系统中,用包将源代码文件分组;大系统中,用包将源代码文件分组;(3)使使用用标标记记值值来来描描述述源源代代码码文文件件的的辅辅助助信信息息,如如版本、作者、修改日期等;版本、作者、修改日期等;(4)使用依赖关系来描述文件之间的编译依赖关系。使用依赖关系来描述文件之间的编译依赖关系。2.组件图组件图源代码建模实例源代码建模实例2.组件图组件图为为可执行版本建模
19、可执行版本建模 用用组组件件图图描描述述构构成成软软件件系系统统的的组组件件及及组组件件间间的的关关系。为可执行版本建模时:系。为可执行版本建模时:(1)找出系统的组件集;找出系统的组件集;(2)考考虑虑组组件件集集中中每每个个组组件件的的原原型型,如如可可执执行行组组件件、库组件、表组件、文档组件;库组件、表组件、文档组件;(3)考虑组件集中组件之间的关系。考虑组件集中组件之间的关系。2.组件图组件图可可执行执行版本版本组件图组件图 2.组件图组件图为为数据库建模数据库建模 为为物理数据库建模时:物理数据库建模时:(1)识别出模型中代表逻辑数据库模式的类;识别出模型中代表逻辑数据库模式的类;
20、(2)选选择择将将这这些些类类映映射射到到表表的的策策略略,兼兼顾顾考考虑虑数数据据库的物理分布;库的物理分布;(3)创创建建含含有有原原型型为为table的的组组件件的的组组件件图图,为为映映射射进行可视化建模;进行可视化建模;(4)使用工具的帮助将逻辑设计转化为物理设计。使用工具的帮助将逻辑设计转化为物理设计。2.组件图组件图数据库建模组件数据库建模组件图图 2.组件图组件图为为自适应系统建模自适应系统建模 (1)需需要要考考虑虑从从一一个个节节点点迁迁移移到到另另一一个个节节点点的的组组件件的物理分布,通过使用位置标记标出组件实例的位置;的物理分布,通过使用位置标记标出组件实例的位置;(
21、2)如如需需描描述述引引起起组组件件迁迁移移的的活活动动,需需要要创创建建含含有有组组件件实实例例的的相相应应的的交交互互作作用用图图。具具有有不不同同位位置置标标记记值值的的同同一一个个组组件件实实例例可可以以在在图图中中出出现现多多次次,以以示示出出组组件件实例的位置变化。实例的位置变化。2.组件图组件图自适应系统建模组件自适应系统建模组件图图 3.配置图配置图3.1 配置图配置图3.2 配置图的应用配置图的应用3.配置图配置图配置配置图图 用来用来描述运行软件的处理器和设备的拓扑。描述运行软件的处理器和设备的拓扑。描述描述运行处理节点和运行其上的组件配置。运行处理节点和运行其上的组件配置
22、。用来用来为面向对象系统的物理方面建模。为面向对象系统的物理方面建模。用来用来模拟系统的静态配置视。模拟系统的静态配置视。着着眼眼于于系系统统的的节节点点的的类类图图,为为系系统统中中物物理理节节点点、节节点点之之间间关关系系的的静静态态方方面面建建立立可可视视化化的的模模型型,并并规规定定构构造的细节。造的细节。3.1 配置图配置图3.配置图配置图配置图的组成配置图的组成 (1)节点节点 (2)依赖和关联关系依赖和关联关系3.配置图配置图含组件的配置图含组件的配置图3.配置图配置图网络配置图网络配置图3.配置图配置图配置图的建立环境配置图的建立环境 主要主要用于多设备、分布式情形。用于多设备
23、、分布式情形。对对于于嵌嵌入入式式、客客户户/服服务务器器和和分分布布式式系系统统的的可可视视化化建模很重要。建模很重要。软软件件系系统统需需要要与与没没有有被被主主机机操操作作系系统统控控制制的的设设备备交交互互作作用用,或或者者与与物物理理上上分分布布于于多多个个处处理理器器的的设设计计交交互互作作用用,应应使使用用配配置置图图,帮帮助助清清楚楚系系统统的的软软件件和和硬硬件件之之间的映射。间的映射。3.配置图配置图配置图的应用配置图的应用通常用来描述通常用来描述3种系统的静态配置视图:种系统的静态配置视图:(1)为嵌入式系统建模;为嵌入式系统建模;(2)为客户为客户/服务器系统建模;服务
24、器系统建模;(3)为完全的分布式系统建模。为完全的分布式系统建模。3.2 配置图的应用配置图的应用3.配置图配置图为为嵌入式系统建模嵌入式系统建模 用来用来构成嵌入式系统的设备和处理器建模:构成嵌入式系统的设备和处理器建模:(1)找找出出对对于于一一个个嵌嵌入入式式系系统统独独一一无无二二的的设设备备和和节节点;点;(2)使使用用UML扩扩充充机机制制定定义义特特定定于于系系统统的的原原型型,表表示不常见的设备;示不常见的设备;(3)规定处理器和设备间的关系;规定处理器和设备间的关系;(4)为智能化的设备提供更详细的配置图。为智能化的设备提供更详细的配置图。3.配置图配置图配置图实例配置图实例
25、13.配置图配置图为为客户客户/服务器系统建模服务器系统建模 客客户户/服服务务器器软软件件系系统统分分布布于于多多个个处处理理器器。软软件件模模型型有有多多个个变变种种,可可用用配配置置图图来来描描述述关关于于系系统统拓拓扑扑的的决决策策以以及及关关于于软软件件组组件件如如何何在在客客户户和和服服务务器器端端分分布布的的决决策。策。为客户为客户/服务器系统建模注意内容服务器系统建模注意内容 (1)确确定定代代表表系系统统的的客客户户端端处处理理器器、服服务务器器端端处处理理器的节点;器的节点;(2)强调与系统的行为有密切关系的设备;强调与系统的行为有密切关系的设备;3.配置图配置图为为客户客
26、户/服务器系统建模注意内容服务器系统建模注意内容 (3)通过原型为处理器和设备提供可视化的表示;通过原型为处理器和设备提供可视化的表示;(4)在配置图中为这些节点的拓扑建模。在配置图中为这些节点的拓扑建模。3.配置图配置图配置图实例配置图实例23.配置图配置图为为完全的分布式系统建模完全的分布式系统建模 完完全全的的分分布布式式系系统统分分布布于于地地理理上上分分散散的的节节点点。这这种种系系统统是是动动态态的的,系系统统的的拓拓扑扑可可能能变变化化,软软件件组组件件的的分布也可能变化。分布也可能变化。为为一一个个完完全全的的分分布布式式系系统统建建模模时时,通通常常将将网网络络也也具具体体化
27、化为为一一个个节节点点。如如可可将将Internet、LAN、WAN表表示示为节点原型为节点原型。3.配置图配置图配置图实例配置图实例33.配置图配置图案例案例1:远程网络教学系统:远程网络教学系统1.在在“远远程程网网络络教教学学系系统统”中中,以以系系统统管管理理员员添添加加教教师师信信息息用用例例为为例例,我我们们可可以以确确定定“Administrator”、“Teacher”、“AddTeacher”等等类类,根根据据这这些些类类创创建建关于系统管理员添加教师信息的相关构件图。关于系统管理员添加教师信息的相关构件图。3.配置图配置图案例案例1:远程网络教学系统:远程网络教学系统2.在
28、在“远远程程网网络络教教学学系系统统”中中,该该系系统统的的需需求求如如下下所所示:示:学学生生或或教教师师可可以以在在客客户户的的PC机机上上通通过过浏浏览览器器,如如IE6.0等,登录到远程网络教学系统中。等,登录到远程网络教学系统中。在在Web服服务务器器端端,我我们们安安装装Web服服务务器器软软件件,如如Tomcat等等,部部署署远远程程网网络络教教学学系系统统,并并通通过过JDBC与与数据库服务器连接。数据库服务器连接。数数据据库库服服务务器器中中使使用用SQL Server 2000提提供供数数据据服服务。务。根据根据以上的系统需求,创建系统的部署图以上的系统需求,创建系统的部署图。3.配置图配置图案例案例1:远程网络教学系统:远程网络教学系统