第5章 系统分析与动态行为建模教学课件.pptx
《第5章 系统分析与动态行为建模教学课件.pptx》由会员分享,可在线阅读,更多相关《第5章 系统分析与动态行为建模教学课件.pptx(129页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 系统分析与动态行为建模在线开放课程 SDUFE面向对象系统分析与设计在线开放课程第第5章章 系系统分析与分析与动态行行为建模建模 引引导导案例案例 5.2 顺顺序序图图建模建模建模建模 5.1 动态动态行行为为建模建模 5.3 通信通信图图建模建模 5.4 状状态图态图建模建模5.5 动态动态行行为为建模建模实实例例在线开放课程引导案例:赤壁之战与系统建模l“赤壁之赤壁之战”的用例的用例图4在线开放课程引导案例:赤壁之战与系统建模l“赤壁之赤壁之战”的的顺序序图5在线开放课程引导案例:赤壁之战与系统建模l“赤壁之赤壁之战”的的顺序序图(改(改进)6在线开放课程引导案例:赤壁之战与系统建
2、模l“赤壁之赤壁之战”中的中的类7在线开放课程引导案例:赤壁之战与系统建模l案例案例总结:l顺序序图是按是按时间顺序描述一个交互及消息序描述一个交互及消息传递的一种的一种方式,主要有以下三种作用:方式,主要有以下三种作用:细化用例的表达。前面已经提到,顺序图的一大用途,细化用例的表达。前面已经提到,顺序图的一大用途,就是将用例所描述的需求与功能转化为更加正式、层次就是将用例所描述的需求与功能转化为更加正式、层次更加分明的细化表达。更加分明的细化表达。有效地描述类职责的分配方式。我们可以根据顺序图中有效地描述类职责的分配方式。我们可以根据顺序图中各对象之间的交互关系和发送的消息来进一步明确对象各
3、对象之间的交互关系和发送的消息来进一步明确对象所属类的职责。所属类的职责。丰富系统的使用语境的逻辑表达。系统的使用语境即为丰富系统的使用语境的逻辑表达。系统的使用语境即为系统可能的使用方式和使用环境。系统可能的使用方式和使用环境。8在线开放课程5.1 动态行为建模l所有系统均可表示为两个方面:静态结构和动态行为;所有系统均可表示为两个方面:静态结构和动态行为;UMLUML提供多种图以捕获和描述系统的这两个方面。提供多种图以捕获和描述系统的这两个方面。l在在UMLUML中,使用中,使用类图类图描述系统的静态结构,说明系统包描述系统的静态结构,说明系统包含哪些对象类以及它们之间的关系。含哪些对象类
4、以及它们之间的关系。l在在UMLUML中,中,动态行为模型动态行为模型(也称为动态模型或行为模型)(也称为动态模型或行为模型)包括包括交互模型交互模型、状态模型状态模型和和活动模型活动模型。交互模型(顺序图和通信图)强调对象间的合作关系与时间交互模型(顺序图和通信图)强调对象间的合作关系与时间顺序,通过对象间的消息传递来完成系统的交互。顺序,通过对象间的消息传递来完成系统的交互。状态模型(状态机图)关注一个对象的生命周期内的状态及状态模型(状态机图)关注一个对象的生命周期内的状态及状态变迁,以及引起状态变迁的事件和对象在状态中的动作状态变迁,以及引起状态变迁的事件和对象在状态中的动作等。等。活
5、动模型(活动图)用于描述对象的一个活动到另一个活动活动模型(活动图)用于描述对象的一个活动到另一个活动的控制流、活动的序列、工作的流程和并发的处理行为等。的控制流、活动的序列、工作的流程和并发的处理行为等。9在线开放课程5.1 动态行为建模l建立动态行为模型的步骤:建立动态行为模型的步骤:分析所有的用例,理解系统中的交互行为,编写典型交分析所有的用例,理解系统中的交互行为,编写典型交互序列的场景,虽然场景中不可能包括每个偶然事件,互序列的场景,虽然场景中不可能包括每个偶然事件,但是至少必须保证不遗漏常见的交互行为,为系统建立但是至少必须保证不遗漏常见的交互行为,为系统建立交互模型;交互模型;从
6、场景中提取出对象之间的事件,确定触发每个事件的从场景中提取出对象之间的事件,确定触发每个事件的动作对象及接受事件的目标对象;动作对象及接受事件的目标对象;排列事件发生的次序,确定每个对象可能有的状态及状排列事件发生的次序,确定每个对象可能有的状态及状态之间的转移关系,并用状态图描述它们;态之间的转移关系,并用状态图描述它们;最后,比较各个对象的状态图,检查它们之间的一致性最后,比较各个对象的状态图,检查它们之间的一致性和完整性。和完整性。10在线开放课程5.1.1 交互模型l信息系统中的任务是通过对象之间的合作来完成的。信息系统中的任务是通过对象之间的合作来完成的。如如“赤壁之战赤壁之战”的案
7、例所示,对象之间的合作是通过的案例所示,对象之间的合作是通过对象之间的消息的传递实现的。对象之间的消息的传递实现的。l对象之间的合作在对象之间的合作在UMLUML中被称为中被称为交互交互,即交互是一组对,即交互是一组对象之间为完成某一任务(如完成一个操作)而进行的象之间为完成某一任务(如完成一个操作)而进行的一系列信息交换的行为说明。交互可以对软件系统为一系列信息交换的行为说明。交互可以对软件系统为实现某一任务而必须实施的动态行为进行建模。实现某一任务而必须实施的动态行为进行建模。l交互模型是用来描述对象之间以及对象与参与者交互模型是用来描述对象之间以及对象与参与者(actor)(actor)
8、之间的动态协作关系以及协作过程中行为次序之间的动态协作关系以及协作过程中行为次序的图形文档。它通常用来描述一个用例的行为,显示的图形文档。它通常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情该用例中所涉及的对象和这些对象之间的消息传递情况。因此,可以使用交互模型对用例图中的控制流况。因此,可以使用交互模型对用例图中的控制流(用例描述)建模,用它们来描述用例图的行为。(用例描述)建模,用它们来描述用例图的行为。11在线开放课程5.1.1 交互模型l交互模型包括交互模型包括顺序图顺序图和和通信图通信图(UML2.0UML2.0之前称协作图)之前称协作图)两种形式。两种形
9、式。l顺序图着重描述对象按照时间顺序的消息交换,通信顺序图着重描述对象按照时间顺序的消息交换,通信图着重描述系统成分如何协同工作图着重描述系统成分如何协同工作(即侧重于空间的协即侧重于空间的协作作)。l顺序图和通信图从不同的角度表达了系统中的交互及顺序图和通信图从不同的角度表达了系统中的交互及系统的行为,它们之间可以相互转化。一个用例需要系统的行为,它们之间可以相互转化。一个用例需要一个或多个顺序图或通信图,除非特别简单的用例。一个或多个顺序图或通信图,除非特别简单的用例。12在线开放课程5.1.2 状态模型l在面向对象建模中,对象的行为是通过其操作来描述在面向对象建模中,对象的行为是通过其操
10、作来描述的,而整个系统的行为主要体现于其中各个对象的行的,而整个系统的行为主要体现于其中各个对象的行为以及通过消息所发生的行为联系。然而,对那些状为以及通过消息所发生的行为联系。然而,对那些状态比较复杂,而且在不同状态下其行为将呈现许多变态比较复杂,而且在不同状态下其行为将呈现许多变化的对象,如果不分析和辨别它的各种状态,只是笼化的对象,如果不分析和辨别它的各种状态,只是笼统地来认识对象的行为,往往难以把各种情况都考虑统地来认识对象的行为,往往难以把各种情况都考虑得很周全。因此,对一些状态复杂的对象进行状态建得很周全。因此,对一些状态复杂的对象进行状态建模,将有助于准确、精细地定义对象的属性和
11、操作。模,将有助于准确、精细地定义对象的属性和操作。l在在UMLUML中,状态机图是描述一个实体基于事件反应的动中,状态机图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应,状态机图就是对一个状态模型。同的事件做出反应,状态机图就是对一个状态模型。13在线开放课程5.1.3 活动模型l活动模型描述的是从活动到活动的控制流,用于描述活动模型描述的是从活动到活动的控制流,用于描述多个对象在交互时采取的活动,它关注对象如何相互多个对象在交互时采取的活动,它关注对象如何相互活动以完成一个事务。活动以完成一个事务。
12、l活动图的主要用途有两种:一是为业务流程建模;二活动图的主要用途有两种:一是为业务流程建模;二是为对象的特定操作建模。是为对象的特定操作建模。l在在需求分析中需求分析中对活动图的介绍主要是为了分析用例,对活动图的介绍主要是为了分析用例,或理解涉及多个用例的工作流程,除此之外,活动图或理解涉及多个用例的工作流程,除此之外,活动图还可以描述具体的操作过程,比如处理多线程应用等。还可以描述具体的操作过程,比如处理多线程应用等。因此,活动图可以在系统需求分析阶段使用(描述用因此,活动图可以在系统需求分析阶段使用(描述用例),也可以在系统设计阶段使用。例),也可以在系统设计阶段使用。14在线开放课程15
13、5.2 顺序图建模l顺序序图(Sequence Diagram)(Sequence Diagram)又称又称时序序图、序列、序列图l定定义:是一种:是一种详细表示表示对象之象之间以及以及对象与参与者象与参与者之之间交互交互的的图,由一由一组协作的作的对象象(或参与者或参与者)以及它以及它们之之间可可发送的送的消息消息组成成,强调消息之消息之间的的顺序序。l对象之象之间的交互表的交互表现为一个一个对象象发送一个消息送一个消息给另另一个一个对象。通常情况下,当一个象。通常情况下,当一个对象象调用另一个用另一个对象象中的操作中的操作时,消息是通,消息是通过一个一个简单的操作的操作调用来用来实现;当操
14、作当操作执行完成行完成时,控制和,控制和执行行结果返回果返回给调用者。用者。在线开放课程umluml和和ooadooad快速入快速入门门165.2.1 顺序图概述用例图用例图类图类图顺序图顺序图动态行为动态行为(系统外在行为系统外在行为)静态结构静态结构(系统内在结构系统内在结构)动态行为动态行为(系统内在行为系统内在行为)参与者、用例参与者、用例类类对象对象(object)(object)包含、扩展包含、扩展关联关联消息消息(message)(message)类图、用例图和顺序图的比较在线开放课程175.2.1 顺序图概述双叉法顺序图关联了类图与用例图两方顺序图关联了类图与用例图两方面,表示
15、了系统在与参与者互动面,表示了系统在与参与者互动执行某一个用例期间,系统内部执行某一个用例期间,系统内部的一群小对象的协作情况。因此,的一群小对象的协作情况。因此,系统分析师可以使用双叉法,同系统分析师可以使用双叉法,同步进行类图与用例图的分析,然步进行类图与用例图的分析,然后尽快通过顺序图来整合、调整后尽快通过顺序图来整合、调整三方面的图,如右图所示。三方面的图,如右图所示。在线开放课程18 顺序图整合了用例与类既然顺序图用来表示执行既然顺序图用来表示执行期间系统内部一群对象之期间系统内部一群对象之间的互动情况,因此在实间的互动情况,因此在实际操作中,我们经常使用际操作中,我们经常使用顺序图
16、来表示某一个用例顺序图来表示某一个用例的执行期间系统内部的运的执行期间系统内部的运作情况。至于系统内部有作情况。至于系统内部有哪些对象可用,理所当然哪些对象可用,理所当然地规范在类图中。地规范在类图中。请看右图请看右图,系统系统分析师可分析师可以使用顺序图来整合用例以使用顺序图来整合用例与类。与类。5.2.1 顺序图概述在线开放课程l正是由于顺序图具备了时间顺序的概念,从而可以清晰地正是由于顺序图具备了时间顺序的概念,从而可以清晰地表示对象在其生命周期的某一时刻的动态行为。顺序图可表示对象在其生命周期的某一时刻的动态行为。顺序图可以说明操作的执行、用例的执行或系统中的一次简单的交以说明操作的执
17、行、用例的执行或系统中的一次简单的交互情节。互情节。l另外,由于在绘制顺序图之前一般已经做过了分析类的工另外,由于在绘制顺序图之前一般已经做过了分析类的工作,所以在顺序图中,可以引入类和对象的概念来帮助建作,所以在顺序图中,可以引入类和对象的概念来帮助建模。当执行一个用例行为时,顺序图中的每一条消息对应模。当执行一个用例行为时,顺序图中的每一条消息对应了一个类的操作或状态机中引起转换的触发事件。也就是了一个类的操作或状态机中引起转换的触发事件。也就是说,顺序图在一个编程人员可以理解的模型基础上对用例说,顺序图在一个编程人员可以理解的模型基础上对用例进行了翻译,把抽象的各个步骤转化成大致的消息传
18、递序进行了翻译,把抽象的各个步骤转化成大致的消息传递序列,供程序员们按图索骥。并且,图这一形式本身用来表列,供程序员们按图索骥。并且,图这一形式本身用来表达一些序列就是极为恰当的,这也就使得顺序图成为描述达一些序列就是极为恰当的,这也就使得顺序图成为描述一个过程的强有力的工具。一个过程的强有力的工具。5.2.1 顺序图概述在线开放课程lBCEBCE模式模式lBCEBCE模式(模式(Boundary-Control-Entity PatternsBoundary-Control-Entity Patterns)是用例)是用例技术的创始人技术的创始人Ivar JacobsonIvar Jacobs
19、on提出来的。提出来的。BCEBCE模式在概念上模式在概念上很浅显易懂,跟著名的很浅显易懂,跟著名的MVCMVC模式(模式(Model-View-Control Model-View-Control PatternPattern)概念相似。简单来说,在)概念相似。简单来说,在BCEBCE模式中,将对象分模式中,将对象分为三类:边界类(为三类:边界类(boundary classboundary class)、控制类()、控制类(control control classclass)和实体类()和实体类(entity classentity class)。关于类的版型在本)。关于类的版型在本书第
20、书第4 4章做了详细讲述,此处不再赘述。章做了详细讲述,此处不再赘述。5.2.1 顺序图概述在线开放课程lBCEBCE模式模式5.2.1 顺序图概述在线开放课程lBCEBCE模式模式l应用应用BCEBCE模式建立顺序图时,要注意以下几点内容:模式建立顺序图时,要注意以下几点内容:针对一个用例,可以对应生成一个控制类。针对一个用例,可以对应生成一个控制类。参与者对象只能跟边界对象互动。参与者对象只能跟边界对象互动。实体对象不能发送消息给边界对象和控制对象。实体对象不能发送消息给边界对象和控制对象。比较特别的是比较特别的是,如果只是单纯对数据表进行增加、删,如果只是单纯对数据表进行增加、删除、修改
21、和查询的话,可以不设置控制对象,让边界除、修改和查询的话,可以不设置控制对象,让边界对象直接发送消息给实体对象。对象直接发送消息给实体对象。5.2.1 顺序图概述在线开放课程l顺序图中包括的建模元素有对象顺序图中包括的建模元素有对象(参与者实例也是参与者实例也是对象对象)、生命线、生命线(lifeline)(lifeline)、控制焦点、控制焦点(focus of(focus of control)control)、消息、消息(message)(message)等。等。5.2.2 顺序图的组成在线开放课程l顺序图顺序图是一个二维图形。在顺序图中水平方向为是一个二维图形。在顺序图中水平方向为对象
22、维,沿水平方向排列的是参与交互的对象。对象维,沿水平方向排列的是参与交互的对象。其中对象间的排列顺序并不重要,但一般把表示其中对象间的排列顺序并不重要,但一般把表示参与者的对象放在图的两侧,主要参与者放在最参与者的对象放在图的两侧,主要参与者放在最左边,次要参与者放在最右边左边,次要参与者放在最右边(或表示人的参与者或表示人的参与者放在最左边,表示系统的参与者放在最右边放在最左边,表示系统的参与者放在最右边)。l顺序图中的垂直方向为时间维顺序图中的垂直方向为时间维,沿垂直向下方向按沿垂直向下方向按时间递增顺序列出各对象所发出和接收的消息,时间递增顺序列出各对象所发出和接收的消息,水平水平方向方
23、向表示不同表示不同的的对象或参与者对象或参与者。5.2.2 顺序图的组成在线开放课程umluml和和ooadooad快速入快速入门门251.对象与生命线 生命线(lifeline)对象(object)在线开放课程26顺序图中的对象是类的实例。顺序图中的对象可以是系统顺序图中的对象是类的实例。顺序图中的对象可以是系统的参与者或者任何有效的系统对象。的参与者或者任何有效的系统对象。对象由对象名和类名的矩形框来标记。对象由对象名和类名的矩形框来标记。“对象名对象名对象名对象名:类名类名类名类名”对象的名字可以被省略,表示是一个对象的名字可以被省略,表示是一个匿名对象匿名对象;在保证不;在保证不混淆的
24、情况下,对象所属的类名(包括前面的冒号)也允许混淆的情况下,对象所属的类名(包括前面的冒号)也允许被省略。被省略。1.对象与生命线对象与生命线在线开放课程27顺序图中的大部分对象是存在于整个交互过程的,即对顺序图中的大部分对象是存在于整个交互过程的,即对象创建于顺序图顶部,其生命线一直延伸至底部。如果一象创建于顺序图顶部,其生命线一直延伸至底部。如果一个对象出现在其他位置上(不在顶端),则说明这个对象个对象出现在其他位置上(不在顶端),则说明这个对象是在交互执行到某些步骤的时候被创建出来的。是在交互执行到某些步骤的时候被创建出来的。生命线生命线:表示对象在一段时间内存在表示对象在一段时间内存在
25、,垂直虚线垂直虚线,置于对象置于对象下面;下面;生命线生命线可在某处分成两条或多条并行的生命线可在某处分成两条或多条并行的生命线,也也可在某处合并;可在某处合并;但生命线不能超过销毁处。但生命线不能超过销毁处。1.对象与生命线对象与生命线在线开放课程281.对象与生命线对象与生命线在线开放课程292.激活(控制焦点、控制期)l激活表示激活表示对象的一个操作象的一个操作执行的持行的持续时间,也表示了也表示了对象和象和它的它的调用者之用者之间的控制关系。的控制关系。l同同时时,激活也表示,激活也表示该对该对象在象在这这段段时间时间内不是空内不是空闲闲的,它正在的,它正在完成某个任完成某个任务务,或
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 系统分析与动态行为建模教学课件 系统分析 动态 行为 建模 教学 课件
限制150内