建立动态模型-状态图.ppt_第1页
建立动态模型-状态图.ppt_第2页
建立动态模型-状态图.ppt_第3页
建立动态模型-状态图.ppt_第4页
建立动态模型-状态图.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程导论,孙旭光 灾害信息工程系,复 习,对象模型表示静态的、结构化的系统的“数据”性质。 通常,使用UML提供的类图建立对象模型。 类图的绘制:类的表示和类与类之间的关系。 创建对象模型的步骤: 确定类与对象 确定类间的关系 划分主题 确定属性和方法 优化迭代(识别继承关系),反复修改,建立对象模型练习,根据描述建立软件公司的对象模型,即画出类图。问题陈述如下:一个软件公司有许多部门,分为开发部门和管理部门两种。每个部门由部门名字唯一确定。每个开发部门开发多个软件产品,每个软件产品都由程序、数据和文档组成。该公司有许多员工,分为经理、工作人员和开发人员。开发部门有经理和多个开发人员,管理

2、部门有经理和多个工作人员。每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员。每位经理可主持多个开发项目。,本节课内容,第九章面向对象方法学引论 9.5、动态模型 第十章 面向对象分析 10.1、面向对象分析的基本过程 10.2、需求陈述 10.3、建立对象模型 10.4、建立动态模型 10.5、建立功能模型 10.6、定义服务,动态模型,动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。 对于一个对象来说,在其生命周期的每个特定阶段中,都有适合该对象的一组运行规律和行为规则,用以规范该对象的行为。 状态:是对对象属性值的一种抽象。 各对象之间相

3、互触发(即作用)就形成了一系列的状态变化。 一个触发行为称作一个事件。 一个事件分开两个状态,一个状态隔开两个事件。 事件表示时刻,状态代表时间间隔。,这就是对象的状态。,动态模型,通常,使用UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)。 每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。 动态模型是基于事件共享而互相关联的一组状态图的集合。,状态图通过建立类对象的生命周期模型来描述对象随时间变化的动态行为。,状态图,状态图适用于描述状态和动作的顺序,不仅可以展现一个对象拥有的状态,还可以说明事件如何随着时间

4、的推移来影响这些状态。 状态图表现从一个状态到另一个状态的控制流。 一般情况下,状态图可以由表示状态的节点和表示状态之间转换的带箭头的直线刻画出来。 状态图主要由元素状态、转换、初始状态、终止状态和判定等组成。,状态图,状态是状态图的重要组成部分。包括: 状态名:在状态图中状态名必须是唯一的。 入口和出口动作:进入和退出一个状态时所执行的边界动作。 一个状态可以有或者没有入口和出口动作。 内部转换:是不导致状态改变的转换。 内部转换只有源状态而没有目标状态。 组合状态:内部嵌套有子状态的状态。,状态图,转换:用带箭头的直线表示,一端连接源状态即转出的状态,箭头一端连接目标状态即转入的状态。 转

5、换可以标注与此转换相关的选项如事件、动作和监护条件。,状态图,初始状态:代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。 初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。 终止状态:是模型元素的最后状态,是一个状态图的终止点。终止状态只能作为转换的目标,而不能作为转换的源。 终止状态在一个状态图中可以有0个或多个,它用一个套有一个实心圆的空心圆表示。,状态图,判定: 用来表示一个事件依据不同的监护条件产生不同的影响,即工作流在此处按监护条件的取值而发生分支。 判定用空心小菱形表示。 因为监护条件为布尔表达式,所以通常条件下的判定只有一个入转换和两个出转换。 根据监护条件

6、的真假可以触发不同的分支转换。,状态图,使用状态图进行建模的目标是描述跨越多个用例的对象在其生命周期中的各种状态及其状态之间的转换。 一个完整的系统往往包含很多的类和对象,这就需要创建几个状态图进行描述。 创建状态图的步骤: 识别出建模实体 不需要给所有的类都创建状态图,只有具有重要动态行为的类才需要。 识别出实体的各种状态 创建相关事件并创建状态图,状态图,练习1:图书馆中图书的状态描述如下:当图书被购置进来后,就放在图书馆中;如果读者将图书借走时,处于已借出状态;如果图书被归还,图书对象又变为在图书馆状态。图书馆如果将图书废弃,则图书对象就不再存在。试画出图书对象的状态图。,状态图,练习2

7、:在温室管理系统中,有一个环境控制器类,当没有种植作物时处于空闲状态。一旦种上了作物,就要进行温度控制,定义气候,即在什么时期应达到什么温度。当处于夜晚时,由于温度下降,要调用调节温度过程,以便保持温度;太阳出来时,进入白天状态,由于温度升高,要调用调节温度过程,保持要求的温度。当日落时,进入夜晚状态。当作物收获,终止气候的控制,则进入空闲状态。建立环境控制器类的状态图。,状态图,练习3:当有新同学入学时,将会给新同学创建一个新的账号,新同学可以用这个账号去选课。一般来说,每个人的选课数目是有限的,如选择6门课程后将不能再选课。如果已经选了6门课程还要再选课,就必须删除已选的课程。直到这位同学

8、毕业,将其账号删除。请创建学生账号类的状态图。,状态图,练习4:请创建一个状态图来描述航班如何从提出申请、指定航班计划、售票、起飞、飞行到着陆的状态过程。,建立动态模型,在开发交互式系统时,动态模型起着重要作用。 建立动态模型的步骤: 编写典型交互行为脚本。 必须保证脚本中不遗漏常见的交互行为 从脚本中提取出事物,确定触发每个事件的动作对象以及接受事件的目标对象。 排列事件发生的次序,确定每个对象可能有的状态以及状态间的转换关系,并用状态图描绘出来。 比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。,建立动态模型,以自动取款机(ATM)系统为例进行为例介绍动态模型的建立过程:

9、第一步:编写脚本 第二步:设想用户界面 用户界面的好坏直接影响用户是否接受这个系统,在分析阶段也不能完全忽略用户界面,要注重这种界面下的信息信息交换方式。 第三步:画事件跟踪图 确定事件 画出事件跟踪图,建立动态模型,第四步:画状态图 通常,用一张状态图描绘一类对象的行为,它确定了由事件序列引出的状态序列。,建立动态模型,根据一张事件跟踪图画出状态图之后,再把其他脚本的事件跟踪图合并到已画出的状态图中。,考虑完正常事件之后再考虑边界情况和特殊情况,其中包括在不适当时候发生的事件(例如,系统正在处理某个事务时,用户要求取消该事务)。,建立动态模型,建立动态模型,总行类状态图,建立动态模型,分行类

10、状态图,定义服务,对象是由描述属性的数据,以及可以对这些数据施加的操作(即服务),封装在一起构成的独立单元。 为了建立完整的对象模型,既要确定类中应该定义的属性,又要确定类中应该定义的服务。 通常需要等到建立了动态模型和功能模型之后,才能最终确定类中应有的服务,因为这两个模型更明确地描述了每个类应该提供哪些服务。 定义服务的方法: 常规行为 从事件导出的操作 与数据流图中处理框对应的操作 利用继承减少冗余操作,类中定义的每个属性都是可以访问的,则可在每个类中定义读、写该类每个属性的操作。,状态图中发往对象的事件也就是该对象接收到的消息,因此该对象必须有由消息选择符指定的操作,这个操作修改对象状态(即属性值)并启动相应的服务。,数据流图中的每个处理框都与一个对象(也可能是若干个对象)上的操作相对应。,利用继承机制以减少所需定义的服务数目。 抽取出相似类的公共属性和操作,以建立这些类的新父类,并在类等级的不同层次中正确地定义各个服务。,OMT与UML区别,总 结,动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。 通常,使用UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)。 创建状态图的步骤: 识别出建模实体 识别出实体的各

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论