版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务5
使用状态机图实现系统
动态行为分析
内容导图掌握状态机图在UML中的定义、作用和应用范围。掌握状态机图的基本组成元素。掌握状态机图的建模方法。能够根据系统的需求规格说明书,绘制出符合UML规范的状态机图。能够通过分析状态机图,理解系统的动态行为和工作流程。培养严谨的逻辑思维与问题分析能力,能够更加系统地分析和理解复杂系统的动态行为。培养良好的规范意识和专业素养,能绘制符合UML规范的状态机图。
通过前面章节的学习,我们完成了智慧校园系统的需求建模,得出了系统的用例图和活动图。通过这两类图我们可以了解系统的业务处理过程,但对业务处理过程的处理状态间的转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态机图能从对象的动态行为角度去描述系统的业务活动。请运用本节所学知识,完成如下任务:1.抽象出智慧校园系统用户登录的主要状态;2.分析智慧校园系统用户登录过程的主要事件;3.绘制智慧校园系统用户登录的状态机图。状态机图概述01状态机图概述状态机图是一种展示状态机的图,在UML1.x中称为状态图。状态机是一种行为,用于描述一个对象在其生命周期中的各种状态及状态的转换。状态机图用于对系统的动态方面建模。动态方面是指系统体系结构中任一对象按事件排序的行为,这些对象可以是类、接口、构件和节点。活动图强调对有多个对象参与的活动过程建模,而状态机图更强调对单个反应型对象建模。系统寝室报修维修单状态机图
通过寝室报修维修单状态机图我们可以了解到,报修维修单整个过程包含“未提交”、“已提交,待派单”、已派单,待处理”、“维修中”、“已删除”、“已完成”等6个状态。在最开始的“未提交”状态下,当用户执行删除维修单操作,则进入“已删除”状态;当用户执行提交维修单操作,则进入“已提交,待派单”状态。接下来,分派维修单,则进入“已派单,待处理”状态;接收维修单后,进入“维修中”状态;当维修单处理完毕,
最后进入“已完成”状态。状态机图的组成元素02状态状态(State)是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的条件或状况。状态机图中状态一般可以分为简单状态、初始/最终/选择状态和复合状态3种。简单状态简单状态是不包含嵌套的状态,在UML中表示为一个圆角矩形。简单状态主要组成元素有状态名称、进入/退出动作、内部转换和延迟事件。简单状态初始/最终/选择状态初始状态表示该状态机图或子状态的缺省开始位置,初始状态是用实心的圆表示。最终状态表示该状态机图或外围状态的执行已经完成,最终状态用内部含有实心圆的圆圈表示。一个状态机图中只能有一个初始状态,可以有多个最终状态。选择状态用于表示状态机图中的分支结构。初始/最终/选择状态复合状态复合状态,也被称作组合状态,是指包含有一个或多个嵌套状态机图的状态。在复合状态中,我们可以先将一部分细小的状态组合成一个状态机,把这个新的状态机作为总状态机图中的一个复合状态来呈现。复合状态又可以分为顺序复合状态和并发复合状态。顺序复合状态顺序复合状态又被称为非正交状态,是仅含一个状态机的复合状态。当顺序复合状态被激活时,只有一个子状态
(Substate)
会被激活。顺序复合状态【示例5-1】
在一个简单的咖啡机系统中,它的状态机图中包含一个顺序复合状态“冲泡”。这个顺序复合状态包含了几个子状态,如“加水”、“加热”、“冲泡”等。当用户启动咖啡机时,“冲泡”复合状态被激活,然后依次激活“加水”子状态,等待加水完成后再激活“加热”子状态,接着是“冲泡”子状态,在整个冲泡过程中,这些子状态是顺序
执行的,只有当前一个子状态完成后,才会进入下一个子状态。典型案例【示例5-1】自动咖啡机状态机图并发复合状态并发复合状态,也称正交复合状态,是包括两个或多个并发执行的子状态机的复合状态并发复合状态将复合状态分成若干个正交区域,每个区域都有一个相对独立的。并发复合状态历史状态历史状态是一个伪状态,其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入这个子状态,而不是再次从组合状态的初始状态开始。在状态机图中,历史状态使用图
表示。【示例5-2】
播放器中“继续播放上次未完成的列表”功能,播放器在顺序播放歌曲列表的模式下,如果用户停止了播放或者其他原因退出了播放器,重新播放后在上一次播放的节点(历史状态)
后继续顺序播放。典型案例【示例5-2】含历史状态的状态机图转换转换(Transition)是两个状态间的一种关系,表示对象将在当前状态中执行动作,并在某个特定事件发生或某个特定的条件满足时进入后继状态。当状态发生转变时,转换就被称为激活。在转换激活之前,称对象处于源状态;激活后,就称对象处于目标状态。转换由5部分组成:源状态(SourceState)、事件触发(EventTrigger)、监护条件(GuardCondition)、动作(Action)、目标状态(TargetState)。事件在状态机图中,使用事件来描述一个动作的产生,动作能够触发一个状态的转换。在UML中,事件可以分为信号事件、调用事件、变化事件、时间事件4种类型。调用事件时间事件变化事件信号事件【示例5-3】绘制全自动洗衣机工作过程的状态机图。典型案例【示例5-3】全自动洗衣机工作状态状态机图的建模技术03状态机图的建模技术使用状态机图对系统反应型对象建模时,应遵循如下策略:(1)选择状态机的语境(即建模对象),不管它是类、用例或是整个系统;(2)选择这个对象的初态和终态;(3)考虑对象可能在其中存在一段时间的条件,以决定该对象所在的稳定状态。从这个对象的高层状态开始,然后考虑它可能的子状态;(4)在对象的整个生命周期中,决定稳定状态的有意义的顺序;(5)决定可能触发从状态到状态的转换的事件。将这些事件建模为触发者,它触发从一个合法状态序列到另一个合法状态序列的转换;(6)把动作附加到这些转换上,并且附加到这些状态上;(7)考虑通过使用子状态、分支、汇合和历史状态,来简化状态机图;(8)核实所有的状态都是在事件的某种组合下可达的;(9)核实不存在死角状态,即不存在那种不能转换出来的状态;(10)通过手动或通过使用工具跟踪状态机,核对所期望的事件序列以及它们的响应。
智慧校园系统为确保系统信息安全,用户在进入系统前必须要登录系统,系统需要对用户身份进行校验。在智慧校园系统中用户校验在以下几种工作状态中转换:未登录、校验失败、校验码校验、用户名校验、用户口令校验和用户权限校验。状态之间转换的主要事件为:(1)未登录的用户通过登录功能成为系统中在线用户;(2)在输入用户信息之后,从未登录状态进入校验码校验状态;(3)在校验码校验状态中,当校验通过时转入用户名校验状态,否则转入校验失败状态;(4)在用户名校验状态中,当校验通过时将转入用户口令校验状态,否则转入校验失败状态;(5)在用户口令校验状态中,当口令校验成功时转入用户权限校验;(6)用户权限校验状态主要是对用户是否具有操作业务功能的权限进行判别;(7)校验失败状态是在显示校验失败信息之后返回未登录状态。①创建用户登录状态机图②添加开始元素③
重复步骤②,向状态机图添加任务分析中的其他状态。④根据任务分析中的描述,通过事件将不同的状态进行关联⑤重复步骤④,创建任务分析中的其他状态转换用户登录状态机图
状态机图是用于描述对象状态变化和事件触发的一种图形表示法。它不仅展示了对象在不同状态下的行为,还揭示了状态之间的转换关系。状态之间的转换需要明确的触发事件,我们在社会发展和个人成长中,每一次的进步和转变都需要具体的行动和努力,否则个人和社会也无法进步。其次,状态机图的构建过程中需要考虑所有可能的状态和转换,这要求我们培养全面和系统的思维方式,鼓励我们从宏观的角度审视问题,考虑各种可能性和潜在的影响,从而做出更加周全和深远的决策。通过学习和应用状态机图,我们能够更好地理解变化与稳定、行动与结果之间的关系,培养全面思考、精益求精的工匠精神,
以及对社会负责的公民意识。1.状态机图2.状态机图的组成元素3.状态机图建模任务6
使用交互图实现系统对象协作
分析内容导图理解交互图在UML中的定义、用途及其在系统分析和设计中的作用。掌握顺序图和通信图的基本组成元素。掌握交互图的建模方法。能够根据系统的需求规格说明书,绘制出符合UML规范的交互图。能够通过分析交互图,理解系统的动态行为和对象间的交互关系。培养从整体上理解和把握系统动态行为的能力,能将复杂的系统问题分解为一系列有序的对象间交互。增强沟通协作能力,能利用交互图清晰地表达设计意图和系统的动态行为。
交互图是UML中对对象间动态交互进行建模的两种主要图,包括顺序图和通信图。顺序图强调了对象间交互的时间顺序,而通信图则强调了对象间的关联关系。交互图主要用于对应用系统中对象间的动态交互行为建模。对于智慧校园系统的架构建模,我们已经完成了类图和状态机图的绘制。其中类图是用来描述智慧校园系统中类的结构和它们之间的关系,状态机图强调的是对象状态的变化过程,它帮助我们理解对象在不同条件下如何响应事件,以及如何从一个状态转换到另一个状态。当我们需要详细地描述智慧校园系统中对象之间如何交互,以及这些交互是如何随时间顺序展开的,就需要使用顺序图和通信图。请运用本节所学知识,完成如下任务:1.绘制智慧校园系统充值用例的顺序图;2.绘制智慧校园系统充值用例的通信图。顺序图概述011.基本概念
顺序图(SequenceDiagram)是强调消息时间顺序的交互图,用于描述系统中类和类之间的交互。它将这些交互建模成消息交换,也就是说,顺序图描述了类相互协作的完成预期行为的动态过程。顺序图主要包括对象、生命线、激活和消息四个元素。顺序图通过显示这些元素以及它们之间的交互,提供了一种直观的方式来描述系统中对象如何相互协作以完成某个任务或行为。这种表示方式有助于开发人员更好地理解系统的动态行为,并识别可能的问题或瓶颈。在顺序图中,参与交互的各对象在顺序图的顶端沿X轴方向排列,每一个对象的底端都会绘制一条垂直虚线,当一个对象向另一个对象发送消息时,此消息开始于发送对象底部的虚线终止于接收对象底部的虚线。这些消息用箭头表示,水平放置,沿Y轴方向排列,在垂直方向上,越靠近顶端的消息越早被发送。当对象收到消息后,它就会把消息当作触发某种动作的事件。顺序图的组成元素021.对象和生命线顺序图的每个对象都有一个与之对应的生命线,生命线用一条垂直的虚线表示,从顺序图的顶部开始,贯穿整个图表,直到图的底部。生命线表示了对象在交互过程中的存在时间,以及它们何时开始参与交互、何时结束交互。生命线的长度可以根据需要进行调整,以适应不同的交互场景。如果某个对象在整个交互过程中都存在,那么它的生命线就会贯穿整个顺序图;如果某个对象只在某个特定的时间段内参与交互,那么它的生命线就只会出现在那个时间段内。2.激活在顺序图中,激活表示了一个对象正在执行某个操作或方法。当一个对象接收到一个消息时,它就会被激活,开始执行相应的操作或方法。激活用一个细长方形表示,附着在生命线上。激活显示对象进程开始时间和对象进程的执行时间,有利于我们分析对象何时处于运行状态、何时处于空闲状态。3.消息顺序图中的消息是对象之间交互的核心内容,它表示了对象之间传递的信息或进行的操作。消息主要由发送者(Sender)、接收者(Receiver)和消息(MessageContent)内容组成,其中发送者即发送消息的对象,接收者即接收消息并执行相应操作的对象,消息内容包括调用的方法名、传递的参数等。消息用一个带有箭头的线段表示,一般分为四种类型:同步消息、异步消息、返回消息、自调用消息。(1)同步消息同步消息是一种需要接收者处理完成后才能返回的消息类型。在顺序图中,同步消息用实线箭头表示,箭头从发送者指向接收者,并在接收者处有一个实心的箭头尖端,表示接收者需要等待消息处理完成后再继续执行后续操作。同步消息常用于描述需要等待对方响应的交互场景,如函数调用、方法调用等。3.消息(2)异步消息异步消息是一种发送后不需要等待接收者处理完成的消息类型。在顺序图中,异步消息用实线带空心箭头表示,箭头从发送者指向接收者,表示发送者发送消息后可以继续执行后续操作,而不需要等待接收者的响应。异步消息常用于描述发送后不需要立即等待结果的交互场景,如事件触发、异步调用等。(3)返回消息返回消息是接收者处理完消息后返回给发送者的消息类型。在顺序图中,返回消息用虚线带空心箭头表示,箭头从接收者指向调用者。返回消息通常用于描述操作完成后返回结果或状态的情况,如函数返回值、方法调用结果等。3.消息(4)自调用消息自调用消息是一个对象向自身发送的消息类型。在顺序图中,用一条带有弯曲箭头的线段表示,箭头从一个对象出发并最终指向同一个对象,即消息的发送者和接收者是同一个对象,自调用消息常用于描述对象内部的自调用操作或方法调用。4.组合片段UML2在顺序图中加入了组合片段,组合片段用来解决交互执行的条件和方式,它允许在顺序图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程,从而描述复杂的交互场景和逻辑结构。组合片段共有13种。类型含义说明opt可选可选的交互序列,可能根据条件执行或不执行loop循环重复执行某段交互序列par并行同时执行多个交互序列alt选择根据条件选择不同的交互序列seq序列按照顺序执行多个交互序列crit临界区表示并发操作中的关键部分,只能由一个对象执行neg否定只有在特定条件不满足时才执行的交互序列assert断言验证某个条件是否为真,如果为真则继续执行strict严格表示序列图中所有消息都必须按照顺序和条件执行ignore忽略表示某个消息被忽略,不产生任何效果consider考虑表示某个消息被考虑,但不一定产生直接效果group分组将多个交互序列组合成一个逻辑单元combine组合表示将多个交互序列组合成一个更复杂的交互序列顺序图的建模技术031.顺序图的建模技术顺序图建模技术的运用场景是多元化的,包括但不限于以下几个主要方面:系统设计。顺序图在系统设计阶段扮演着重要角色,它能够清晰地展示系统内部各个组件之间是如何进行交互的,这对于构建一个高效、稳定的系统架构至关重要。需求分析。在需求分析阶段,顺序图可以帮助开发团队更好地理解和把握需求的细节,通过图形化的方式来澄清需求描述中的模糊之处,确保开发的方向与客户的需求相符合。测试计划。顺序图同样适用于测试阶段的规划,它有助于定义各种测试场景和测试用例,使得测试工作能够系统化、全面化地进行,确保系统的每个功能都能得到验证。协作和沟通。在软件开发的过程中,团队成员之间的有效沟通至关重要。顺序图作为一种图形化的沟通工具,可以帮助团队成员更好地理解系统的交互逻辑,从而提高协作效率。1.顺序图的建模技术在创建顺序图的过程中,一般会遵循以下步骤进行,以确保图形的准确性和可理解性:(1)确定参与交互的对象:首先要识别出在系统中进行交互的对象,这些对象可以是系统中的各种组件、模块或者角色。(2)确定对象之间的消息传递顺序:明确这些对象之间是如何通过消息进行交互的,包括消息的发送和接收顺序,以及消息的类型和内容。(3)添加消息和返回消息:在顺序图中,需要详细地标注出消息的传递方向和内容,以及消息的返回路径和结果。(4)使用组合片段来描述复杂的交互:对于一些复杂的交互情况,可以使用组合片段来抽象和描述,使得顺序图更加精炼且易于理解。(5)审查和优化图表:在完成顺序图的初步构建后,需要对图表进行仔细的审查和优化,确保它能够清晰、准确地表达系统中的交互逻辑。通信图的概述041.基本概念
与顺序图类似,通信图也用来表示一个交互过程的图,通信图(UML1.x规范中称之为协作图)作为另一种交互图而言,是表现对象协作关系的图,它展示了多个对象在协同工作达成共同目标的过程中相互通信的情况,通过对象和对象之间的链、发送的消息来显示参与交互的对象。通信图强调的是参加交互的对象的组织。与顺序图相比,通信图明确显示了元素之间的关系,同时,通信图没有将时间作为一个独立的维度,因此,消息的顺序和并发的线程必须通过序号来确定。1.基本概念通信图中的元素主要有对象、消息和链三种,在UML中,通信图中的对象用矩形表示(也有时用对象的图标表示),矩形内是此对象的名字。链用对象间相连的直线表示,连线可以有名字,它一般标于表示连接的直线上。如果对象间的连接有消息传递,则把消息的图标沿直线方向绘制,消息的箭头指向接收消息的对象。由于从图形上绘制的协作图无法表达对象间消息发送的顺序,因此需要在消息上保留对应时序图的消息顺序号。通信图的组成元素051.对象通信图中的对象与顺序图中对象的概念相同,都是表示类的实例。不参与通信过程的对象不应该添加在对应的通信图中,通信图只关注相互有交互作用的对象和对象关系,而忽略其他对象,由于通信图中不表示对象的创建与销毁,因此对象在通信图中的位置不做任何限制。通信图中可以使用包围对象名称的矩形来表示对象。在通信图中,有时会有多个同类对象与其他对象之间进行交互,通信图支持多重对象的表示,用来表示一组同类型的对象在交互中执行同一个操作。这种特性表示为对象的多重性,通过在对象的右上方添加多重性标记来表示。2.链通信图中的链与对象图中的链在语义以及表示法上都相同,都是两个(或多个)对象之间的独立连接,是关联的实例。链同时也是通信图中关联角色的实例,其生命受限于通信图的生命。链用一条实线段来表示,这条线段连接了两个在交互过程中发生了直接关联的对象,链连接的两个对象之间允许在交互执行过程中进行消息传递和交互。UML也允许对象自身与自身之间建立一条链。链可以通过自己命名来进行区分和说明,也可以仅仅做连接而不进行命名。3.消息通信图中使用消息来帮助描述系统的动态信息,表示从一个对象(发送者)向另外一个对象(接收者)发送信息,或由一个对象调用另外一个对象的操作。通信图的消息要附加在对象之间的链上,链用于传输或实现消息的传递。消息流代表通信图中对象间通过发送的消息。类角色之间的箭头表明在对象间交换的消息流,消息由一个对象发出由消息所指的对象接收,链接用于传输或实现消息的传递。消息流上标有消息的序列号和类角色间发送的消息。一条消息会触发接收对象中的一项操作。通信图的建模技术061.通信图的建模技术通信图建模可以采用以下思路和步骤:识别交互的语境,即交互所处的环境。识别出图中应该存在的对象,仔细分析这个通信图对应的交互过程,识别出在交互中扮演了某一个角色的对象,将这些对象作为通信图的顶点放在图中,一般比较重要的对象放在图中间,关系邻近的对象依次向外放置。识别可能有消息传递的对象并设置链。找到对象之后,分析在执行过程中哪些对象之间产生了直接关联或相互发送过消息,把这些相互之间存在直接关系的对象使用链连接在一起。设置对象之间的消息,在得到基本的消息路径后,再开始着重处理消息,依次考查存在链的对象,找出它们之间进行了怎样的调用、发送了怎样的信号或参数,把这些调用、信号、参数转换成消息,附加在各个关联关系的横线上。如果需要更多约束,如时间或空间的约束,可以使用其他的约束来修饰这些消息。绘制智慧校园系统充值用例的顺序图07在智慧校园系统中,充值用例是一个常见的业务场景,它涉及用户通过校园卡进行充值操作。首先明确参与充值用例的主要对象,包括用户、充值管理界面、充值控制类、第三方支付服务和数据库管理。用户是发起充值操作的角色,充值控制类是管理校园卡信息和充值操作的核心类,第三方支付服务负责处理支付请求和完成支付操作,而数据库管理则用于存储用户的账户信息、校园卡信息和充值记录等。接着,分析这些对象之间的交互过程。对于支付结果的处理,可以使用条件片段来描述。有支付成功和支付失败两种结果。(1)用EA打开智慧校园UML模型文件,在“项目浏览器”中选择“架构建模→顺序图”,单击鼠标右键选择“添加图”,在弹出的“新建图”对话框中,填入顺序图名称,选择“UMLBehavioral”中的“Sequence”,单击“确定”,完成充值用例顺序图的创建操作。(2)双击新建的顺序图名称打开该顺序图,从“工具箱”中的“Interaction”拖出一个“Actor”用于创建用户角色,拖出“Lifeline”用于创建其他四个对象及其生命线。(3)创建对象之间的消息。选择用户角色,鼠标左键单击“用户”角色生命线旁边的快速连接图
,拖拽鼠标至“充值管理界面”对象,这样就创建了“用户”和“充值管理界面”之间的第一条消息,双击该条消息,在弹出的页面中,输入消息内容为“点击充值”,在同步选择框中选择“同步的”。(4)根据任务分析中的交互过程,重复步骤③,创建对象之前的其他消息。需要注意的是,如果创建的消息是返回消息,在创建消息的页面中要勾选“是返回”的复选框,这样就会创建表示返回消息的虚线箭头,在不考虑充值异常的情况下创建的顺序图。(5)创建条件片段来描述不同的支付结果。从“工具箱”中拖入一个“
”,双击生成的ALT方框,在弹出的“联合分段”对话框中输入处理支付结果的详细信息。针对支付失败的条件片段,增加相应的交互过程。(6)创建可选的循环片段描述用户多次尝试充值的情况,方法与步骤⑤中创建条件片段类似,在此不再重复说明,最终的智慧校园系统充值用例的顺序图效果图。绘制智慧校园系统充值用例的通信图08在智慧校园系统中,充值用例是一个常见的业务场景,它涉及用户通过校园卡进行充值操作,现在需要绘制智慧校园系统充值用例的通信图。(1)确定交互对象创建通信图的第一步就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安全交底培训内容核心要点
- 2026年中控员消防安全培训内容重点
- 2026年工地项目安全培训内容重点
- 2026年药店日常安全培训内容全流程拆解
- 大医大中医学复习指导
- 2026年汛期防汛安全培训内容重点
- 廊坊市大城县2025-2026学年第二学期二年级语文第四单元测试卷(部编版含答案)
- 通化市东昌区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 鞍山市立山区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 安顺地区镇宁布依族苗族自治县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 数据变化趋势的刻画课件2025-2026学年冀教版数学八年级下册
- 教育强国建设三年行动计划(2025-2027年)
- 20S515 钢筋混凝土及砖砌排水检查井
- 2026季华实验室测试中心招聘5人(广东)笔试参考题库及答案解析
- 2026年吉林四平市高职单招英语试题含答案
- 2026年山区复杂地形无人机起降点选址技术指南
- 2026届苏锡常镇高三语文一模作文评分细则及标杆文:卓越源于有目的、有反馈的重复
- 《必背60题》 区域经济学26届考研复试高频面试题包含详细解答
- 律所反洗钱内部控制制度
- 2026春人教版(新教材)小学美术二年级下册《天然的形态》教学设计
- 《宋史·辛弃疾传》阅读训练及答案参考译文
评论
0/150
提交评论