面向对象的设计建模.ppt

上传人:牧羊曲112 文档编号:6442739 上传时间:2023-10-31 格式:PPT 页数:69 大小:2.35MB
返回 下载 相关 举报
面向对象的设计建模.ppt_第1页
第1页 / 共69页
面向对象的设计建模.ppt_第2页
第2页 / 共69页
面向对象的设计建模.ppt_第3页
第3页 / 共69页
面向对象的设计建模.ppt_第4页
第4页 / 共69页
面向对象的设计建模.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《面向对象的设计建模.ppt》由会员分享,可在线阅读,更多相关《面向对象的设计建模.ppt(69页珍藏版)》请在三一办公上搜索。

1、本章学习导航,本章学习导航,本章学习要点,动态建模概述 状态图及其绘制 活动图及其绘制 活动图拾遗 顺序图及其绘制 协作图及其绘制 顺序图拾遗,任务1,了解动态模型的基本功能和基本组成。,任务目标,分组教学法 资料查询法 案例教学法,教学方法,8.1 动态建模概述,动态建模概述,所有系统(包括软件系统)均可表示为两个方面:静态结构和动态行为。UML提供了状态图、活动图、顺序图和协作图来描述系统的结构和行为。状态图、活动图、顺序图和协作图则适合于描述系统中的对象在执行期间不同的时间点是如何动态交互的。一组对象为了实现一些功能而进行通信称之为交互,可以通过状态图、活动图、顺序图和协作图来描述系统的

2、动态行为。,任务2,了解状态图的基本功能和绘制方法,并绘制员工下班回家的状态图。,任务目标,分组教学法 资料查询法 案例教学法,教学方法,8.2.1 状态图概述,状态图概述,状态图(Statechart Diagram)是软件系统进行面向对象分析的一种常用工具,它通过建立对象的生存周期模型(状态)来描述对象随时间变化的动态行为。状态图主要用来描述对象、子系统、系统的生命周期。通过状态图可以了解到一个对象所能到达的所有状态以及对象收到的事件(收到消息、超时、错误和条件满足等)对对象状态的影响等。并不是对所有的对象都创建状态图,只有当行为的改变和状态有关时才创建状态图。与类图、对象图和用例图不同,

3、状态图只能对单个对象建立模型,而类图、对象图和用例图可以对一个系统或一组类建立模型。,8.2.2 状态图组成,状态图组成,状态图是由表示状态的节点和表示状态之间转换的带箭头的直线组成。若干个状态由一条或者多条转换箭头连接,状态的转换由事件触发。,8.2.2 状态图组成,状态图组成,1起点和终点 起点代表状态图的一个初始状态,此状态代表状态图的起始位置。起点只能作为转换的源,而不是作为转换的目标。起点在一个状态图中只允许有一个。终点代表状态图的最后状态,此状态代表状态图的终止位置。终点只能作为转换的目标,而不是作为转换的源。终点在一个状态图中可以有一个或多个,表示一个活动图的最后和终结状态。,8

4、.2.2 状态图组成,状态图组成,2.状态状态是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。,8.2.2 状态图组成,员工下班回家,在员工下班回家的过程中,经历的状态包括:到下班时间了,收拾东西准备回家(不考虑加班);开始等待电梯;乘坐电梯到达楼下;(发现没带家里钥匙,上楼拿)乘坐电梯上楼;去公交车站等车;乘公共汽车去菜场;买菜;回到家。,8.2.2 状态图组成,状态的特征,(1)进入/退出动作:对象本身的一个操作。如果在电梯里是一个状态的话,那员工进电梯和出电梯就是状态“在电梯里”的进入/退出动作。(2)内部转换:例如员工在去等电梯的时候发现钥

5、匙没带,此时我们不用在“等电梯”以后,而是在“准备回家”的状态中就去拿钥匙了。虽然整体的状态没有发生变化,但对于对象本身来说,前后是不一样的,一个是有钥匙,一个是没有钥匙。(3)子状态:如果需要进一步描述员工对象在电梯里聊天、打电话等状态时,这些状态就是该对象的“在电梯里”状态的子状态。(4)延迟事件:现在不立即产生的事件,该事件是在一段时间以后才产生的事件。员工必须等待到达17:50的时候,才能下班。,8.2.2 状态图组成,状态图组成,一个状态一般包含三个部分,如图所示。第一部分为状态的名称,如空闲、已付、移动、在菜场等。第二部分为可选的状态变量的变量名和变量值。属性(变量)指的是状态图中

6、类的属性。第三部分为可选的活动表,列出有关的事件和活动。,8.2.2 状态图组成,状态图组成,3.事件事件是对一个在时间和空间上占有一定位置的有意义的事情的规格说明。在状态机中,一个事件是一次激发的产生,激发可以触发一个状态转换。“事件”指的是发生的且引起某些动作执行的事情,即事件表示在某一特定的时间或空间出现的能够引发状态改变的运动变化。,8.2.2 状态图组成,状态图组成,4.转换转换表示当一个特定事件发生或者某些条件满足时,一个源状态下的对象完成一定的动作后将发生状态转变,转向另一个称之为目标状态的状态。当发生转换时,转换进入的状态为活动状态,转换离开的状态变为非活动状态。,8.2.3

7、绘制员工下班回家状态图,绘制状态图,(1)打开工程WebShop.mdl。(2)新建状态图。在视图区域中右键单击“Logical View”节点,依次选择【New】【Statechart Diagram】,默认的状态图的名称为“NewDiagram”,输入新的状态图的名称(如员工下班回家),8.2.3 绘制员工下班回家状态图,绘制状态图,(3)添加状态选择状态图绘图工具栏上的相应按钮,在绘图区域中单击鼠标左键,就可以绘制状态。,8.2.3 绘制员工下班回家状态图,绘制状态图,(4)添加状态之间添加状态转换单击状态图绘制工具栏上的按钮,在状态之间添加转换,由此得到的员式下班回家的状态图及其状态转

8、换,8.2.3 绘制员工下班回家状态图,绘制状态图,(5)设置状态转移事件在不同的状态之间进行转换时,需要指定从一种状态转换到另一种状态的事件。右键单击表示状态转换的箭头,选择【Open Specification】,如图所示。打开状态转换属性设置对话框,在【General】选项卡中输入【Event】中的内容,即可完成状态转移事件的设置,8.2.3 绘制员工下班回家状态图,绘制状态图,(6)添加活动在绘制状态图时,一般情况下需要指定状态的活动。右键单击对应的状态(如:等待电梯),选择【Open Specification】,如图8-11所示。打开状态属性设置对话框,选择【Actions】选项卡

9、,右键单击中间空白区域,选择【Insert】菜单,完成活动的添加。,8.2.3 绘制员工下班回家状态图,绘制状态图,(6)调整大小和位置最后,遵循美观、实用的原则,调整状态图的大小和位置,得到的员工下班回家的状态图。,8.2.3 绘制员工下班回家状态图,WebShop商品状态图,课堂实践 1,(1)绘制图书管理系统的图书状态图,并对不同状态间的转换进行描述(参照书中的提示)。(2)绘制WebShop电子商城系统的前台购物用户帐号的状态图,并对不同状态间的转换进行描述(参照书中的提示)。(3)阅读如图所示的学生选课系统中的课程状态图,试着对不同状态间的转换进行描述(参照书中的提示)。,操作要求,

10、课堂实践 1,(1)maxstudents表示选修某一门课程的最多人数。(2)students表示选修了某一门课程的人数。(3)after this term表示学期结束,操作提示,任务3,了解活动图的基本功能和绘制方法,并绘制WebShop电子商城系统中前台购物用户购买活动的活动图。,任务目标,分组教学法 案例教学法 SDSPR教学法,教学方法,8.3.1 活动图概述,活动图概述,活动图(Activity Diagram)显示活动动作及其结果,着重描述操作(方法)实现中所完成的工作以及用例实例或对象中的活动。活动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也可以是软件系

11、统某个类对象的一个操作。活动图与常用的程序流程图相似,它们的主要区别在于程序流程图一般用来表示串行过程,而活动图则可以用来表示并行过程。,使用活动图主要目的是:描述一个操作执行过程中(操作实现的实例化)所完成的工作(动作);描述对象内部的工作;显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;显示用例的实例是如何执行动作以及如何改变对象状态;说明一次商务活动中的参与者、工作流、组织和对象是如何工作的。,8.3.1 活动图概述,典型活动图,8.3.2 活动图组成,活动图组成,1动作状态动作状态是指执行原子的、不可中断的动作,并在此动作完成后转换到另一个状态。动作状态有如下特点:动作

12、状态是原子的,它是构造活动图的最小单位,无法分解为更小的部分;动作状态是不可中断的,它一旦运行就不能中断,一直运行到结束;动作状态是瞬时的行为,它所占用的处理时间极短,有时甚至可以忽略;动作状态有入转换,入转换可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关;动作状态与状态图中的状态不同,它不能有入口动作和出口动作,也不能有内部转移;动作状态允许多处出现在同一活动图中。,8.3.2 活动图组成,活动图组成,2活动状态活动状态用于表达状态机中的非原子的运行。活动状态有如下特点:活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作

13、或操作的组合,所以可以被中断;活动状态的内部活动可以用另一个活动图来表示;活动状态可以有入口动作和出口动作,也可以有内部转移;动作状态是活动状态的一个特例,如果某一个活动状态只包括一个动作,那么它就是一个动作状态。,8.3.2 活动图组成,活动图组成,3动作流:动作流是指所有动作状态之间的转换。4.分支与合并分支是软件系统流程中很常见的一种逻辑,它一般用来表示对象所具有的条件行为。合并包括两个带条件的入转换和一个出转换(即两个入口和一个出口),用来表示从对应的分支开始的条件行为的结束。,8.3.2 活动图组成,活动图组成,5.分叉与汇合 分叉用于将动作流分为两个或多个并发运行的分支 汇合则用于

14、将不同的分支汇聚一起,8.3.2 活动图组成,活动图组成,6泳道泳道的本义是用来分隔游泳池的,以保证不同的选手可以在指定的区域中进行比赛,而不会互相干扰。,8.3.2 活动图组成,活动图组成,7对象流对象可以在活动图中显示,表示动作状态或者活动状态与对象之间的依赖关系。对象可以作为动作的输入或输出,或简单地表示指定动作对对象的影响。对象用矩形符号来表示,在矩形的内部有对象名或类名。对象流用带有箭头的虚线表示。对象流中的对象有如下特点:一个对象可以由多个动作操纵;一个动作输出的对象可以作为另一个动作输入的对象;同一个对象可以多次出现在活动图中,每一次出现表明该对象正处于对象生存期的不同时间点。,

15、8.3.2 活动图组成,活动图组成,8组合活动在UML的活动图中,一个大的活动可以分为若干个动作或子活动,这些动作或子活动本身又可以组成一个活动图。,8.3.3 绘制WebShop电子商城活动图,完成步骤,(1)打开工程WebShop.mdl。(2)新建活动图。在视图区域中右键单击“Logical View”节点,依次选择【New】【Activity Diagram】,默认的状态图的名称为“NewDiagram”,输入新的活动图的名称(如:前台购物),8.3.3 绘制WebShop电子商城活动图,完成步骤,(3)添加购物用户活动图的起点和终点。选择活动图工具栏上的起点和终点图标,在绘图区域中单

16、击鼠标左键,即可绘制活动图的起点和终点。(4)添加动作状态或活动状态。基本操作方式同状态图。(5)增加分支与合并。在WebShop电子商城中,购物用户通过网上系统进行购物时,如果没有登录系统,则需要进行登录才能完成商品的购买操作。,8.3.3 绘制WebShop电子商城活动图,完成步骤,(6)增加分叉与汇合。购物用户进入网上系统后,在未登录状态下可以搜索并查看商品,并查询商品的详细情况。用户登录系统后,既可以查看商品信息,购买商品,也可以修改个人信息和查看个人信息。因此,查看并购买商品和修改/查看个人信息属于并行流。,8.3.3 绘制WebShop电子商城活动图,修改泳道,8.3.3 绘制We

17、bShop电子商城活动图,图书管理员活动图,8.4 活动图拾遗,活动图VS流程图,UML中的活动图用来描述系统使用的活动、判定点和分支,与传统的流程图的功能非常类似。传统的流程图所能表示的程序逻辑,大多数情况下也可以使用活动图表示,但活动图与流程图有着本质的区别:流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系;活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程;活动图能够表示并发活动的情形,而流程图不能;活动图是面向对象的,而流程图是面向过程的。,8.4 活动图拾遗,活动图VS状态图,状态图描述了一个特

18、定对象的所有可能状态,以及由于各种事件的发生而引起的状态之间的转移;用来描述一个对象在其生命周期的行为,主要强调外部动作的影响。活动图是一种描述工作流的方式,它用来描述采取何种动作、做什么、何时发生以及在何处发生。活动图是由状态图扩展而来的,主要强调对象本身状态的变化。状态图和活动图的主要区别在于:状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图;而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。,课堂实践 2,(1)阅读图

19、书管理系统的系统管理员维护图书用户信息的活动图,试着对系统管理员的维护读者活动进行描述。(2)绘制WebShop电子商城系统中订单处理的活动图。,操作要求,课堂实践 2,(1)通过学习小组讨论和上网查询资料形式完成。(2)在绘制活动图的同时,也可绘制相应的流程图,再将流程图与活动图进行比较。,操作提示,任务4,了解顺序图的基本功能和绘制方法,并绘制WebShop电子商城系统中购物用户查看历史订单的顺序图。,任务目标,分组教学法 案例教学法 SDSPR教学法,教学方法,8.5.1 顺序图概述,顺序图概述,顺序图(Sequence Diagram)描述了对象之间传送消息的时间顺序,它用来表示用例中

20、的行为顺序,当执行一个用例行为时,顺序图中的每条消息对应了一个类操作中引起转换的触发事件。顺序图可供不同的用户使用,以帮助他们进一步了解系统:用户。帮助他们进一步了解业务细节;分析人员。帮助他们进一步明确事件处理流程;开发人员。帮助他们进一步了解需要开发的对象和对这些对象的操作;测试人员。通过过程的细节开发测试案例。,8.5.1 顺序图概述,典型顺序图,8.5.2 顺序图组成,顺序图组成,1对象顺序图中的对象的符号与对象图中的对象的符号是一样的,都是使用矩形将对象名称包含起来,并且在对象名称下加下划线,如图所示。在顺序图中将对象放置在顶部意味着在交互开始时,对象就已经存在了,如果对象的位置不在

21、顶部,那么表示对象是在交互过程中被创建的。2生命线生命线是一条垂直的虚线,表示顺序图中的对象在一段时间内的存在。,8.5.2 顺序图组成,顺序图组成,3消息消息是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤消。,8.5.2 顺序图组成,常见消息类型,8.5.2 顺序图组成,顺序图组成,4激活顺序图可以描述对象的激活和钝化,激活表示该对象被占用以完成某个任务,钝化表示对象处于空闲状态,在等待消息。在UML中,通过将对象的生命线拓宽为矩形,表示对象是激活的,其中的矩形称为激活条。对象就是在激活条的顶部被激活的。对象在完成自己的工作后处于钝化状态,通常发生的当一个消息

22、箭头离开对象生命线的时候。,8.5.3 绘制WebShop电子商城顺序图,完成步骤,(1)打开工程WebShop.mdl。(2)新建顺序图。在视图区域中右键单击“Logical View”节点,依次选择【New】【Sequence Diagram】,默认的顺序图的名称为“NewDiagram”,输入新的顺序图的名称(如查看历史订单)。,8.5.3 绘制WebShop电子商城顺序图,完成步骤,(3)选择类,创建对象,并指定对象名。选择顺序图工具栏上的按钮,在绘图区域中单击鼠标左键,将指定对象添加到顺序图,8.5.3 绘制WebShop电子商城顺序图,完成步骤,(4)添加对象间传递的消息。选择顺序

23、图工具栏上的按钮,在绘图区域中两个对象生命线之间拖动鼠标左键,完成对象之间消息的添加。,的,8.5.3 绘制WebShop电子商城顺序图,完成步骤,设置消息属性,8.5.3 绘制WebShop电子商城顺序图,完成步骤,如果要取消消息的编号或取消激活条显示,可以依次选择主菜单栏下的【Tools】【Options】,选择【Diagram】选项卡,通过取消选择【Sequence numbering】复选框和【Focus of control】复选框完成,8.5.3 绘制WebShop电子商城顺序图,完成步骤,(5)完成绘制。最终完成的WebShop电子商城前台购物用户查看当前订单的顺序图如图8-40

24、所示,课堂实践 3,(1)阅读如图所示学生选课系统中的管理员维护课程的顺序图,试着描述不同对象间的消息传递顺序。(2)绘制图书管理系统中读者借阅图书的顺序图。,操作要求,课堂实践 3,(1)通过学习小组讨论和上网查询资料形式完成。(2)在顺序图中通常要用到控制类和边界类。,操作提示,任务5,了解协作图的基本功能和绘制方法,并绘制WebShop电子商城系统的协作图。,任务目标,分组教学法 案例教学法 SDSPR教学法,教学方法,8.6.1 协作图概述,协作图概述,协作图(Collaboration Diagram)是顺序图之外的另一种表示交互的方法。主要描述协作对象间的交互和链接,强调的是对象结

25、构相关的信息。顺序图和协作图都描述交互,但是顺序图强调的是时间,而协作图强调的是空间。协作图中包含3个元素:对象、链接和消息。,8.6.2 协作图组成,协作图组成,1对象协作图中的对象与顺序图中的对象的概念是一样的,图形表示方法也是一样的。但是与在顺序图中不同的是,协作图中不能表示对象的创建和撤消,所以对象在协作图中没有位置的限制。2链接一条链接是两个对象间的连接。协作图中的链接的符号和对象图中的链接符号相同,即一条连接两个类角色的实线。,8.6.2 协作图组成,协作图组成,3消息协作图中的消息与顺序图中的消息相同。但是为了能够在协作图中表示交互过程中消息的时间顺序,需要给消息添加顺序号。,8

26、.6.3 绘制WebShop电子商城协作图,完成步骤,(1)打开工程WebShop.mdl。(2)新建协作图。在视图区域中右键单击“Logical View”节点,依次选择【New】【Collaboration Diagram】,默认的协作图的名称为“NewDiagram”,输入新的顺序图的名称(如:用户注册协作图)。,8.6.3 绘制WebShop电子商城协作图,完成步骤,(3)添加对象。选择协作图工具栏上的按钮,在绘图区域中单击鼠标左键,将指定对象添加到顺序图。(4)添加消息。在协作图中可以添加对象间的消息,也可以添加反身消息;既可以添加正向消息,也可以添加反向消息,消息类型见表8-9。(

27、5)添加数据流。这里的数据流是描述一个对象向另一个对象发送消息时返回的消息。可以添加数据流,也可以添加反向数据流,数据流类型见表8-9。,8.6.3 绘制WebShop电子商城协作图,完成步骤,(6)完成绘制。最终完成的WebShop电子商城购物用户注册的协作图如图8-45所示。,8.7 顺序图拾遗,顺序图VS协作图,顺序图与协作图都是交互图,其区别主要表现在:顺序图强调按时间展开的消息的传递,清晰地显示了时间次序;对简单的迭代和分支的可视化要比协作图好,常用于场景显示;可以不要顺序号。协作图强调交互中实例之间的结构关系以及所传送的消息,清晰地显示了对象间关系;对复杂的迭代和分支的可视化以及对

28、多并发控制流的可视化要比顺序图好,常用于显示过程设计细节;有路径和顺序号。,8.7 顺序图拾遗,顺序图与协作图互换,(1)打开要转换的顺序图或协作图(如:用户注册协作图)。(2)依次选择主菜单栏中的【Browse】【Go To Sequence Diagram】,即可将当前的协作图转换成顺序图。,课堂实践 4,(1)阅读如图8-47所示的学生选课系统中的维护课程信息的协作图,描述维护课程过程中对象之间消息的传递,并与图8-41进行比较。(2)试着将【课堂实践3】中绘制的顺序图转换成协作图。(3)绘制电子商务系统中后台订单处理的协作图。,操作要求,课堂实践 3,(1)通过学习小组讨论和上网查询资

29、料形式完成。(2)通过比较进一步理解顺序图和协作图的侧重点。,操作提示,课外拓展,(1)小组为单位进行讨论,分析系统的实体类、边界类和控制类。(2)根据绘制的模型图,对系统的动态形为进行描述。(3)充分理解动态建模中各图形适用的场合和侧重点。,操作提示,(1)绘制图书管理系统中图书状态图。(2)绘制图书管理系统中读者帐号的状态图。(3)绘制图书管理系统中读者借书的活动图。(4)绘制图书管理系统中系统管理员维护图书信息的活动图。(5)绘制图书管理系统中系统管理员添加图书信息的顺序图。(6)绘制图书管理系统中图书管理员处理还书的顺序图。(7)将(5)和(6)中得到的顺序图转换为序列图。,操作要求,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号