收藏 分销(赏)

建立动态模型-状态图.ppt

上传人:w****g 文档编号:1695507 上传时间:2024-05-07 格式:PPT 页数:31 大小:1.31MB
下载 相关 举报
建立动态模型-状态图.ppt_第1页
第1页 / 共31页
建立动态模型-状态图.ppt_第2页
第2页 / 共31页
建立动态模型-状态图.ppt_第3页
第3页 / 共31页
建立动态模型-状态图.ppt_第4页
第4页 / 共31页
建立动态模型-状态图.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、软件工程导论软件工程导论孙旭光孙旭光灾害信息工程系复复 习习n n对象模型表示静态的、结构化的系统的“数据”性质。n n通常,使用通常,使用UMLUML提供的类图建立对象模型。提供的类图建立对象模型。n n类图的绘制:类的表示和类与类之间的关系。类图的绘制:类的表示和类与类之间的关系。n n创建对象模型的步骤:创建对象模型的步骤:n n确定类与对象确定类与对象n n确定类间的关系确定类间的关系n n划分主题划分主题n n确定属性和方法确定属性和方法n n优化迭代(识别继承关系),反复修改优化迭代(识别继承关系),反复修改建立对象模型练习建立对象模型练习n n根据描述建立软件公司的对象模型,即画

2、出类图。问题陈述如下:一个软件公司有许多部门,分为开发部门和管理部门两种。每个部门由部门名字唯一确定。每个开发部门开发多个软件产品,每个软件产品都由程序、数据和文档组成。该公司有许多员工,分为经理、工作人员和开发人员。开发部门有经理和多个开发人员,管理部门有经理和多个工作人员。每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员。每位经理可主持多个开发项目。本节课内容本节课内容n n第九章面向对象方法学引论第九章面向对象方法学引论 n n9.59.5、动态模型、动态模型n n第十章第十章 面向对象分析面向对象分析n n10.110.1、面向对象分析的基本过程、面向对象分析的基本过程n

3、n10.210.2、需求陈述、需求陈述n n10.310.3、建立对象模型、建立对象模型n n10.410.4、建立动态模型、建立动态模型n n10.510.5、建立功能模型、建立功能模型n n10.610.6、定义服务、定义服务动态模型动态模型n n动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。n n对于一个对象来说,在其对于一个对象来说,在其生命周期的每个特定阶生命周期的每个特定阶段段中,都有适合该对象的一组运行规律和行为规中,都有适合该对象的一组运行规律和行为规则,用以规范该对象的行为。则,用以规范该对象的行为。n n状态:是对对象属性值的一种抽

4、象。状态:是对对象属性值的一种抽象。n n各对象之间相互触发(即作用)就形成了一系列的状各对象之间相互触发(即作用)就形成了一系列的状态变化。态变化。n n一个触发行为称作一个事件。一个触发行为称作一个事件。n n一个事件分开两个状态,一个状态隔开两个事件。一个事件分开两个状态,一个状态隔开两个事件。n n事件表示时刻,状态代表时间间隔。事件表示时刻,状态代表时间间隔。这就是对象的状态。动态模型动态模型n n通常,使用通常,使用UMLUML提供的提供的状态图状态图来描绘对象的状态、来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的触发状态转换的事件以及对象的行为(对事件的响应)。响应

5、)。n n每个类的动态行为用一张状态图来描绘,各个类每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的状态图通过共享事件合并起来,从而构成系统的动态模型。的动态模型。n n动态模型是基于事件共享而互相关联的一组状态动态模型是基于事件共享而互相关联的一组状态图的集合。图的集合。状态图通过建立类对象的生命周期模型来描述对象随时间变化的动态行为。状态图状态图n n状态图适用于描述状态和动作的顺序,不仅可以展现一个对象拥有的状态,还可以说明事件如何随着时间的推移来影响这些状态。n n状态图表现从一个状态到另一个状态的控制流。状态图表现从一个状态到另一个状态的控制流。

6、n n一般情况下,状态图可以由表示状态的节点和表示一般情况下,状态图可以由表示状态的节点和表示状态之间转换的带箭头的直线刻画出来。状态之间转换的带箭头的直线刻画出来。n n状态图主要由元素状态、转换、初始状态、终状态图主要由元素状态、转换、初始状态、终止状态和判定等组成。止状态和判定等组成。状态图状态图n n状态是状态图的重要组成部分。包括:状态是状态图的重要组成部分。包括:n n状态名:在状态图中状态名必须是唯一的。状态名:在状态图中状态名必须是唯一的。n n入口和出口动作:进入和退出一个状态时所执行的入口和出口动作:进入和退出一个状态时所执行的边界动作。边界动作。n n一个状态可以有或者没

7、有入口和出口动作。一个状态可以有或者没有入口和出口动作。n n内部转换:是不导致状态改变的转换。内部转换:是不导致状态改变的转换。n n内部转换只有源状态而没有目标状态。内部转换只有源状态而没有目标状态。n n组合状态:内部嵌套有子状态的状态。组合状态:内部嵌套有子状态的状态。状态图状态图n n转换:用带箭头的直线表示,一端连接源状态转换:用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入即转出的状态,箭头一端连接目标状态即转入的状态。的状态。n n转换可以标注与此转换相关的选项如事件、动作和转换可以标注与此转换相关的选项如事件、动作和监护条件。监护条件。状态图状态图n

8、 n初始状态:代表状态图的起始位置,只能作为初始状态:代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。转换的源,而不能作为转换的目标。n n初始状态在一个状态图中只允许有一个,它用一个初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。实心的圆表示。n n终止状态:是模型元素的最后状态,是一个状终止状态:是模型元素的最后状态,是一个状态图的终止点。终止状态只能作为转换的目标,态图的终止点。终止状态只能作为转换的目标,而不能作为转换的源。而不能作为转换的源。n n终止状态在一个状态图中可以有终止状态在一个状态图中可以有0 0个或多个,它用一个或多个,它用一个套有一个实心圆的空

9、心圆表示。个套有一个实心圆的空心圆表示。状态图状态图n n判定:判定:n n用来表示一个事件依据不同的监护条件产生不同的影用来表示一个事件依据不同的监护条件产生不同的影响,即工作流在此处按监护条件的取值而发生分支。响,即工作流在此处按监护条件的取值而发生分支。n n判定用空心小菱形表示。判定用空心小菱形表示。n n因为监护条件为布尔表达式,所以通常条件下的判定因为监护条件为布尔表达式,所以通常条件下的判定只有一个入转换和两个出转换。只有一个入转换和两个出转换。n n根据监护条件的真假可以触发不同的分支转换。根据监护条件的真假可以触发不同的分支转换。状态图状态图n n使用状态图进行建模的目标是描

10、述跨越多个用使用状态图进行建模的目标是描述跨越多个用例的对象在其生命周期中的各种状态及其状态例的对象在其生命周期中的各种状态及其状态之间的转换。之间的转换。n n一个完整的系统往往包含很多的类和对象,这就需一个完整的系统往往包含很多的类和对象,这就需要创建几个状态图进行描述。要创建几个状态图进行描述。n n创建状态图的步骤:创建状态图的步骤:n n识别出建模实体识别出建模实体n n不需要给所有的类都创建状态图,只有具有重要动态行为不需要给所有的类都创建状态图,只有具有重要动态行为的类才需要。的类才需要。n n识别出实体的各种状态识别出实体的各种状态n n创建相关事件并创建状态图创建相关事件并创

11、建状态图状态图状态图n n练习1:图书馆中图书的状态描述如下:当图书被购置进来后,就放在图书馆中;如果读者将图书借走时,处于已借出状态;如果图书被归还,图书对象又变为在图书馆状态。图书馆如果将图书废弃,则图书对象就不再存在。试画出图书对象的状态图。状态图状态图n n练习2:在温室管理系统中,有一个环境控制器类,当没有种植作物时处于空闲状态。一旦种上了作物,就要进行温度控制,定义气候,即在什么时期应达到什么温度。当处于夜晚时,由于温度下降,要调用调节温度过程,以便保持温度;太阳出来时,进入白天状态,由于温度升高,要调用调节温度过程,保持要求的温度。当日落时,进入夜晚状态。当作物收获,终止气候的控

12、制,则进入空闲状态。建立环境控制器类的状态图。状态图状态图n n练习3:当有新同学入学时,将会给新同学创建一个新的账号,新同学可以用这个账号去选课。一般来说,每个人的选课数目是有限的,如选择6门课程后将不能再选课。如果已经选了6门课程还要再选课,就必须删除已选的课程。直到这位同学毕业,将其账号删除。请创建学生账号类的状态图。状态图状态图n n练习4:请创建一个状态图来描述航班如何从提出申请、指定航班计划、售票、起飞、飞行到着陆的状态过程。建立动态模型建立动态模型n n在开发交互式系统时,动态模型起着重要作用。n n建立动态模型的步骤:建立动态模型的步骤:n n编写典型交互行为脚本。编写典型交互

13、行为脚本。n n必须保证脚本中不遗漏常见的交互行为必须保证脚本中不遗漏常见的交互行为n n从脚本中提取出事物,确定触发每个事件的动作对从脚本中提取出事物,确定触发每个事件的动作对象以及接受事件的目标对象。象以及接受事件的目标对象。n n排列事件发生的次序,确定每个对象可能有的状态排列事件发生的次序,确定每个对象可能有的状态以及状态间的转换关系,并用状态图描绘出来。以及状态间的转换关系,并用状态图描绘出来。n n比较各个对象的状态图,检查它们之间的一致性,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。确保事件之间的匹配。建立动态模型建立动态模型n n以自动取款机以自动取款机(A

14、TM)(ATM)系统为例进行为例介绍动态系统为例进行为例介绍动态模型的建立过程:模型的建立过程:n n第一步:第一步:编写脚本编写脚本n n第二步:设想用户界面第二步:设想用户界面n n用户界面的好坏直接影响用户是否接受这个系统,在分析用户界面的好坏直接影响用户是否接受这个系统,在分析阶段也不能完全忽略用户界面,要注重这种界面下的信息阶段也不能完全忽略用户界面,要注重这种界面下的信息信息交换方式。信息交换方式。n n第三步:画事件跟踪图第三步:画事件跟踪图n n确定事件确定事件n n画出事件跟踪图画出事件跟踪图建立动态模型建立动态模型n n第四步:画状态图第四步:画状态图n n通常,用一张状态

15、图描绘一类对象的行为,它确定了由事件通常,用一张状态图描绘一类对象的行为,它确定了由事件序列引出的状态序列。序列引出的状态序列。建立动态模型建立动态模型n n根据一张事件跟踪图画出状态图之后,再把其他脚本的事件根据一张事件跟踪图画出状态图之后,再把其他脚本的事件跟踪图合并到已画出的状态图中。跟踪图合并到已画出的状态图中。n n考虑完正常事件之后再考虑边界情况和特殊情况,考虑完正常事件之后再考虑边界情况和特殊情况,其中包括在不适当时候发生的事件其中包括在不适当时候发生的事件(例如例如,系统正在,系统正在处理某个事务时,用户要求取消该事务处理某个事务时,用户要求取消该事务)。建立动态模型建立动态模

16、型建立动态模型建立动态模型总行类状态图建立动态模型建立动态模型分行类状态图定义服务定义服务n n对象是由描述属性的数据,以及可以对这些数据施加的操作(即服务),封装在一起构成的独立单元。n n为了建立完整的对象模型,既要确定类中应该定义的属性,又要确定类中应该定义的服务。n n通常需要等到建立了动态模型和功能模型之后,通常需要等到建立了动态模型和功能模型之后,才能最终确定类中应有的服务,因为这两个模型才能最终确定类中应有的服务,因为这两个模型更明确地描述了每个类应该提供哪些服务。更明确地描述了每个类应该提供哪些服务。n n定义服务的方法:定义服务的方法:n n常规行为常规行为n n从事件导出的

17、操作从事件导出的操作n n与数据流图中处理框对应的操作与数据流图中处理框对应的操作n n利用继承减少冗余操作利用继承减少冗余操作类中定义的每个属性都是可以访问的,则可在每个类中定义读、写该类每个属性的操作。状态图中发往对象的事件也就是该对象接收到的消息,因此该对象必须有由消息选择符指定的操作,这个操作修改对象状态(即属性值)并启动相应的服务。数据流图中的每个处理框都与一个对象(也可能是若干个对象)上的操作相对应。利用继承机制以减少所需定义的服务数目。抽取出相似类的公共属性和操作,以建立这些类的新父类,并在类等级的不同层次中正确地定义各个服务。OMT与与UML区别区别功能模型功能模型数据模型数据

18、模型动态模型动态模型OMT数据流图数据流图类图类图 对象模型对象模型状态图状态图,有交互行,有交互行为的先画事件跟踪图为的先画事件跟踪图UML用例图用例图类图类图行为模型:状态图行为模型:状态图交互模型:时序图交互模型:时序图总总 结结n n动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。n n通常,使用通常,使用UMLUML提供的状态图来描绘对象的状态、提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的触发状态转换的事件以及对象的行为(对事件的响应)。响应)。n n创建状态图的步骤:创建状态图的步骤:n n识别出建模实体识别出建模

19、实体n n识别出实体的各种状态识别出实体的各种状态n n创建相关事件并创建状态图创建相关事件并创建状态图总总 结结n n创建动态模型的步骤:创建动态模型的步骤:n n编写典型交互行为脚本。编写典型交互行为脚本。n n从脚本中提取出事物,确定触发每个事件的动作对象从脚本中提取出事物,确定触发每个事件的动作对象以及接受事件的目标对象。以及接受事件的目标对象。n n排列事件发生的次序,确定每个对象可能有的状态以排列事件发生的次序,确定每个对象可能有的状态以及状态间的转换关系,并用状态图描绘出来。及状态间的转换关系,并用状态图描绘出来。n n比较各个对象的状态图,检查它们之间的一致性,确比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。保事件之间的匹配。作业作业n n教材P73页第6题。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服