软件工程状态图

合集下载

状态转换图 ppt课件

状态转换图 ppt课件
Software Requirement Specification
通常用自然语言+模型,完整、准确、 具体地描述系统的数据要求、功能需求、 性能需求、可靠性和可用性要求、出错 处理需求、接口需求、约束、逆向需求 以及将来可能提出的要求。
软件需求规格说明书,是需求分析阶段 得出的最主要的文档。
软件需求说明书的编写提示 (GB856T—88)
• 需求分析的任务就是借助于当前系统的逻辑模 型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。
3.1 需求分析的具体任务
1 确定对系统的综合要求
---功能需求、性能需求、可靠性和可用性 需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。
2 分析系统的数据要求
3 导出系统的逻辑模型
• 为表示实体型之间的联系,又建立两个 关系:
选课 (学号,课程号,听课出勤率, 作业完成率,分数)
教课 (职工号,课程号,授课效果) • 这五个关系,组成了数据库的模型。 • 在每个关系中,属性名下加下划线)指
明关键字。并规定关键字能唯一地标识 一个元组。
• 通常用“范式(Normal Forms)”定义消除数据冗余的 程度。第一范式(1 NF)数据冗余程度最大,第五范 式(5 NF)数据冗余程度最小。但是:

状态转换图
规范化的目的是: • 消除数据冗余,即消除表格中数据的重复; • 消除多义性,使关系中的属性含义清楚、
单一;
• 使关系的“概念”单一化,让每个数据项 只是一个简单的数或字符串,而不是一个 组项或重复组;
• 方便操作。使数据的插入、删除与修改操 作可行并方便;
• 使关系模式更灵活,易于实现接近自然语 言的查询方式。

UML图详解(八)——状态机(状态图和活动图)

UML图详解(八)——状态机(状态图和活动图)

UML图详解(⼋)——状态机(状态图和活动图)⼀、概念状态图和活动图是状态机的两种表现形式。

利⽤状态机可以精确地描述对象的⾏为。

从对象的初始状态起,开始响应事件并执⾏某些动作,这些事件引起状态的转换;对象在新状态下⼜开始响应事件和执⾏动作,如此连续进⾏直到终结状态。

⼆、状态图状态图(State Diagram)=状态(State)+迁移(Transition)⼀个状态图描述⼀个状态机。

状态图表现从⼀个状态到另⼀个状态的控制流。

<1>状态图的语法1>除了状态中的初始状态(实⼼圆)和终⽌状态(⽜眼形状),其它状态⽤⼀个圆⾓矩形表⽰转换表⽰状态间可能的路径,⽤箭头表⽰事件/动作写在由它们触发引起的转换上<2>状态2>状态⼀般是给定类对象中的⼀组属性值,在其所在的上下⽂中应该唯⼀,但可以匿名。

在对系统建模时,我们可以只关⼼那些明显影响对象⾏为的属性以及由他们表达的对象状态,⽽不⽤理睬那些于对象⾏为⽆关的状态。

表⽰⽅式:状态由⼀个带圆⾓的矩形表⽰。

应⽤标签标⽰状态的内部活动。

语法:标签/活动表达式UML提供的标签:1. entry:当进⼊⼀个状态的时候被⾃动触发,该活动在状态中其它任何活动之前被⾃动触发。

2. do:当状态处于激活时执⾏do活动,do活动在进⼊活动之后执⾏,并且⼀直运⾏到它本⾝完成为⽌。

3. exit:当离开⼀个状态的时候被⾃动触发,该活动在该状态结束之前、所有其它活动都完成后被触发。

状态可以嵌套状态图,此时状态称为组成状态,否则为简单状态。

⼊⼝事件表⽰⼀个⼊⼝的动作序列,它在进⼊状态时执⾏。

⼊⼝事件的动作是原⼦的,并且先于⼈和内部活动或转换。

出⼝事件表⽰⼀个出⼝的动作序列,它在退出状态时执⾏。

出⼝事件也是原⼦的,它跟在所有的内部活动之后,但是先于所有的出⼝转换。

1. 简单状态(Simple State)2. 复合状态(Composite State)复合状态可以有多组状态图,每组⽤虚线分割开来。

UML状态图的状态转换与约束条件解析

UML状态图的状态转换与约束条件解析

UML状态图的状态转换与约束条件解析UML(Unified Modeling Language)状态图是一种用于描述对象的行为和状态的图形化工具。

它是软件开发过程中的一种重要的建模技术,可以帮助开发人员更好地理解和设计系统的状态转换和约束条件。

在本文中,我们将探讨UML状态图中的状态转换和约束条件的解析。

一、状态转换状态转换是UML状态图中的核心概念之一。

它描述了对象在不同状态之间的转换过程。

在状态图中,每个状态都表示对象可能处于的一种状态,而状态之间的转换则表示对象在不同状态之间的变化。

状态转换可以通过不同的事件触发。

事件是导致状态转换的原因,可以是外部的输入、时间的变化或者是内部的条件满足。

当一个事件发生时,系统会根据一定的规则进行状态转换。

这些规则可以通过转换条件和动作来定义。

二、转换条件转换条件是状态转换的约束条件。

它描述了在什么情况下可以进行状态转换。

转换条件可以是简单的逻辑表达式,也可以是复杂的约束条件。

它们可以基于对象的属性、事件的发生、时间的变化等等。

转换条件可以使用各种逻辑运算符进行组合。

例如,可以使用AND、OR、NOT等运算符来组合多个条件。

这样可以更灵活地定义状态转换的条件。

转换条件的解析是状态图分析的一个重要步骤。

在解析过程中,我们需要确定每个状态转换的转换条件是否满足。

如果满足,则进行状态转换;如果不满足,则保持当前状态。

这样可以确保系统在不同状态之间的转换是合理的。

三、约束条件解析约束条件是对系统的行为和状态的限制。

它们可以用于描述系统的一些特定规则和要求。

在UML状态图中,约束条件可以与状态、转换条件以及动作相关联。

约束条件可以是简单的限制,也可以是复杂的规则。

它们可以基于对象的属性、事件的发生、时间的变化等等。

约束条件可以使用各种逻辑运算符进行组合,以满足不同的需求。

约束条件的解析是状态图分析的一个关键步骤。

在解析过程中,我们需要确定每个约束条件是否满足。

如果满足,则系统可以按照规定的行为和状态进行操作;如果不满足,则需要根据约束条件进行相应的处理。

软件工程各种图结构

软件工程各种图结构

软件工程各种图结构本文档旨在提供一个软件工程中各种图结构的详细说明和范例。

1.引言软件工程中的图结构是表示软件系统的重要工具之一。

通过对图结构的使用,可以清晰地描述软件系统中各个组件之间的关系,帮助开发人员理解系统的结构和功能。

本文档旨在介绍常见的软件工程图结构,并提供范例供参考。

2.需求图需求图是软件工程中最基础的图结构之一,用于表示系统的需求和功能。

需求图通常由用例图和活动图组成,用例图用于描述系统的外部行为,活动图用于描述系统的内部行为。

以下是一个需求图的范例:[插入需求图范例]3.静态结构图静态结构图用于表示系统的静态结构,主要包括类图、对象图和包图。

类图用于描述系统中的类及其关系,对象图用于描述系统中的对象及其关系,包图用于描述系统中的包及其关系。

以下是一个静态结构图的范例:[插入静态结构图范例]4.动态行为图动态行为图用于表示系统的动态行为,主要包括序列图、状态图和活动图。

序列图用于描述系统中的交互过程,状态图用于描述系统中的状态变化,活动图用于描述系统中的业务流程。

以下是一个动态行为图的范例:[插入动态行为图范例]5.部署图部署图用于表示软件系统的部署结构,包括系统中的各个节点和节点之间的关系。

节点可以是物理设备或者软件执行环境。

以下是一个部署图的范例:[插入部署图范例]6.附件本文档附带的附件包括需求图范例、静态结构图范例、动态行为图范例和部署图范例。

7.法律名词及注释在本文档中,涉及到的法律名词及其注释如下:●著作权:指创作作品的权利,包括复制、发行等权利。

●商标:指标识商品来源的标志,可以是图形、文字、颜色等。

●专利:指对发明的技术解决方案的专有权利。

软件工程---UML动态分析-活动图

软件工程---UML动态分析-活动图

Make Plan
entry/ SetGoal
2020/5/4
26
动作流
与状态图不同,活动图的转换一般都不需要特 定事件的触发。
一个动作状态执行完本状态需要完成的动作后 会自发转换到另外一个状态。
2020/5/4
27
动作流
一个活动图有很多动作或者活动状态,
活动图通常开始于初始状态,然后自动转换到 活动图的第一个动作状态,一旦该状态的动作 完成后,控制就会不加延迟地转换到下一个动 作状态或者活动状态。
7
活动图与流程图的区别
⑴ 流程图着重描述处理过程,它
的主要控制结构是顺序、分支 和循环,各个处理过程之间有 严格的顺序和时间关系
找饮料 [ 发现咖啡 ]
活动图描述的是对象活动的顺序
把咖啡放入 滤器
关系所遵循的规则,它着重表 将滤器放入 现的是系统的行为,而非系统 机器
的处理过程。
往容器里加 水
开机器
活动图着重表现从一个活动到另一个活动的控制流, 是内部处理驱动的流程。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
[ 没有可乐 ]
开机器 冲咖啡
倒咖啡
喝饮料
2020/5/4
12
活动的图形表示
在UML中,活动表示成圆角矩形,与状态的圆角矩 形相比,活动的矩形的圆角更柔和,看上去接近椭 圆。
不能中断,一直运行到结束。 ⑶ 动作状态是瞬时的行为,它所占用的处理时
间极短,有时其至可以忽略。
2020/5/4
19
动作状态
动作状态有如下特点:

软件工程设计状态图

软件工程设计状态图

设计
编码
测试
交付
我们的进度,在这里
用例编号 用例名 用例描述
参与者 前置条件 基本路径
ORS_001
登陆
本系统需要参与者输入账号和密码进行系统登陆,该用例页面是系 统启示页面,账号和密码是系统已经分配的。
各省队用户,赛艇协会管理员

1. 选择用户身份 2. 输入账号、密码、验证码 3. 点击“登陆” 4. 验证用户权限
可行性研究 领域分析 需求分析
设计
编码
测试
交付
我们的进度,在这里
状态图展示了一个特定对象的所有可能状态 以及由于各种事件的发生而引起的状态间的转移。
1 状态机 2 状态 3 转移 4 状态图的建模技术
状态机用于对具有事件驱动的特性的动态行为建模。
状态机是展现状态与状态转换的图。
状态机由状态组成,各状态由转移链接在一起。状 态是对象执行某项活动或等待某个事件时的条件。 转移是两个状态之间的关系,它由某个事件触发, 然后执行特定的操作或者评估,并导致特定结束状 态。
其他路径 异常事件 后置条件
ORS_003
新增运动员报名 省队用户填写报名运动员信息提交报名信息
省队用户 浏览赛事信息点击报名
1. 点击“新增人员报名” 2. 输入参赛人员信息(姓名,性别,年龄,赛事名称,参赛单位,
运动员注册号,竞赛项目名称,备注) 3. 点击“报名提交” 4. 显示已有报名人信息,报名成功。 无
可行性研究 领域分析 需求分析
设计
编码
测试
交付
我们的进度,在这里
根据阅读习惯,在绘制状态图的时候,把初始状态 放置在左上角,把最终状态放置在右下角。
状态图:用来描述对象,子系统,系统的生命周期。通过 状态图可以了解一个对象所能达到的所有状态,以及对象 收到的事件对对象状态的影响。

软件工程——软件开发过程中用到的各种图

软件工程——软件开发过程中用到的各种图

软件工程——软件开发过程中用到的各种图本文档涉及附件:本文所涉及的法律名词及注释:1·版权:指知识产权法律框架下对创作作品的独立权利,包括复制、分发、演绎和展示等权利。

2·商标:指公司、品牌或产品的标识,用于区分同类或相似产品或服务的来源。

3·专利:指对发明的一种技术解决方案的独占权,包括发明专利、实用新型专利和外观设计专利等。

4·法律责任:指违反法律法规或合同规定所引起的法律后果,例如赔偿、罚款等。

5·保密协议:指当事人之间为保护双方的商业机密而达成的协议,规定了保密信息的范围、保密义务以及违约责任等。

1·引言本文档旨在介绍软件工程中常用的图形表示方法,包括用例图、类图、流程图、数据流图、状态转换图、部署图、时序图和甘特图等。

这些图形可以帮助开发团队更好地理解和描述系统的功能和结构。

2·用例图用例图是描述系统功能和用户之间交互的图形表示方法。

它主要包含了参与者、用例和关联关系等元素。

用例图帮助开发团队更好地了解系统需要实现哪些功能,并作为需求分析的重要工具。

3·类图类图是描述系统中类、接口、实例和它们之间关系的图形表示方法。

它主要包含了类、属性、方法和关联关系等元素。

类图帮助开发团队更好地了解系统的结构和模块之间的关系,并作为设计和编码的参考依据。

4·流程图流程图是描述系统中过程和步骤的图形表示方法。

它主要包含了开始和结束节点、操作步骤、条件判断和循环等元素。

流程图帮助开发团队更好地了解系统的执行流程和操作过程,并作为编码和测试的重要工具。

5·数据流图数据流图是描述系统中信息流动和处理的图形表示方法。

它主要包含了数据流、处理节点和数据存储等元素。

数据流图帮助开发团队更好地了解信息的流动和处理过程,并作为系统设计和优化的参考依据。

6·状态转换图状态转换图是描述系统中状态和状态转换的图形表示方法。

软件工程状态图

软件工程状态图

构成状态图的元素
外部转换

外部转换是一种改变状态的转换,也是最普通最常见的一种转换。在 UML中,它用从源状态到目标状态的带箭头的线段表示,其他属性以文 字串附加在箭头旁。
构成状态图的元素
内部转换


内部转换只有源状态,没有目标状态,不会激发入口和出口动作, 因此内部转换激发的结果不改变本来的状态。如果一个内部转换 带有动作,它也要被执行。内部转换常用于对不改变状态的插入 动作建立模型。要注意的是内部转换的激发可能会掩盖使用相同 事件的外部转换。 内部转换的表示法与入口动作和出口动作的表示法很相似。他们 的区别主要在于入口和出口动作使用了保留字“entry”和“exit”, 其它部分两者的表示法相同。
创建项目中的状态图
2. 确定状态图中实体的状态

对于一个学生账号来说,它的状态主要包括: 初始状态 终止状态 可选课状态 不可选课状态 账号被删除状态

何谓状态图
终止状态

终止状态是一个状态图的终点,一个状态图可以拥有一个或者多 个终止状态。 对象可以保持在终止状态,但是终止状态不可能有任何形式的触 发转换,它的目的就是为了激发封装状态上的完成转换。
何谓状态图
判定

活动图和状态图中都有需要根据给定条件进行判断,然后根据不 同的判断结果进行不同的转换的情况。 实际就是工作流在此处按监护条件的取值发生分支,在UML中判 定用空心菱形表示。
构成状态图的元素
触发器事件


触发器事件就是能够引起状态转换的事件。如 果此事件有参数,这些参数可以被转换所用, 也可以被监护条件和动作的表达式所用。触发 器事件可以是信号、调用和时间段等。 对应与触发器事件,没有明确的触发器事件 的转换称作结束转换(或无触发器转换),是 在结束时被状态中的任一内部活动隐式触发的。

软件工程---UML状态图和活动图的绘制

软件工程---UML状态图和活动图的绘制

软件工程---UML状态图和活动图的绘制内容: UML状态图和活动图的绘制作业提交时间:20 年月日姓名:学号:班级:计算机短号:1 在操作系统中,进程包括就绪、运行、阻塞、挂起等状态,以及初态就绪和程序运行结束后的终态。

就绪状态获得CPU时间片转为运行态;运行态时间片用完转为就绪态;运行态不满足所需资源转为阻塞态,阻塞态若资源满足则回到就绪态。

考虑到内存空间,还有挂起和唤醒行为。

请结合操作系统上上述相关知识,给出一般进程的可能的状态图,并要求给出每个状态具体的进入工作、退出动作以及驻留改状态时可能执行的动作。

答:首先确定好进程的基本状态以及个状态之间的转换关系。

进程的基本状态:就绪,运行,阻塞,挂起,终止。

进程各个状态之间的转换关系如下图所示:2 在图书管理系统中,"新增读者信息"用例属于读者信息管理中的一个功能,主要用于在系统中增加新的读者信息,其具体的办理流程是:(1)"读者"填写申请表,并交给"图书管理员";(2)"图书管理员"将申请表中的信息通过录入界面,输入到图书管理系统;(3)系统中的"业务逻辑"组件将判断输入的信息是否合法;(4)如果不合法则转入步骤(5),否则转入步骤(6);(5)显示"添加错误信息",转到(8);(6)在“数据库”添加相信的用户信息;(7)显示"添加成功信息";(8)结束。

请绘制该过程的活动图。

答:按照题目要求画出读者增添信息活动图如下所示:作业心得:通过本次作业更深的了解了状态图和活动图的基本概念。

结合实际问题画出对应的状态图和活动图给人一种特别形象的流程感觉。

通过开始到结束之间的状态之间的转换关系清楚的体现出一个工作的循序以及各种判断。

两种图主要用于描述用例内部的工作流程。

显示如何执行一组相关的动作,以及这些动作如何影响周围对象的基本路线。

软件工程---状态图

软件工程---状态图
发生的动作。
语法形式: exit/动作名
3.内部转移---Do动作(do action),用于标 记内部活动,用来指定处于该状态时执行的 动作。 语法形式: do/动作名
内部转移不会改变对象的状态,内部转移在 入口动作执行完毕后开始执行。
4. 还可以添加其他事件和动作
event用来指定当特定事件触发时发生指定动 作,但此事件不会激发状态的改变,属于内部 活动。
(2)中间状态----由一个带圆角的矩形表示。
内部活动
注意:由于入口动作和
与状态相关的动作
出口动作是隐式地激活, 因此它们既没有参数也
在一个状态中允许有多个动作。没有守卫条件。
1.入口动作 (entry action),用来指定进入状态时
发生的动作。
语法形式: entry/动作名 2.出口动作(exit action),用来指定离开该状态时
状态图
状态和状态图 状态图的组成 转换的种类 状态图建模技术
用例图(功能模型): 从用户的角度描述系统能提供哪些功能。
• 结构模型视图(静态): 类图:描述系统的静态结构; 对 象图:描述系统在某个时刻的静态结构; 包图:将类分组成更高层次的静态结构。
• 行为模型视图(动态) 顺序图:按时间顺序描述系统元素之间的交互; 协作图:从时间和空间的顺序描述系统元素之间的交互; 状态图:描述系统元素对事件的响应引起的状态转换; 活动图:描述系统元素的活动。
图 带有历史指示器的软件安装过程状态图
2.2 转换(转移)
转换用带箭头的直线表示,一端连接源状态即转 出的状态,箭头一端连接目标状态即转入的状态。
转移连接了源状态和目标状态。但需要各种条件 才能激活转移。这些条件包括事件、监护条件和 动作。

UML各种图总结-精华

UML各种图总结-精华

UML各种图总结-精华UML(UnifiedModelingLanguage)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。

静态图分为:用例图,类图,对象图,包图,构件图,部署图。

动态图分为:状态图,活动图,协作图,序列图。

1、用例图(UseCaseDiagrams):用例图主要回答了两个问题:1、是谁用软件。

2、软件的功能。

从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。

2、类图(ClassDiagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。

在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量2.4.聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。

软件工程图题整理

软件工程图题整理

软件工程图题整理
结构化分析方法步骤示例
商店业务处理系统
•这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能
•数据流图绘制步骤
•首先确定系统的输入与输出
•根据商店业务,画出顶层数据流图,以反映最要紧业务处理流程
•通过分析,商店业务处理的要紧功能应当有销售、采购、会计三大项。

要紧数据流输入的源点与输出终点是顾客与供应商。

•然后从输入端开始,根据商店业务工作流程,画出数据流流经的各
加工框,逐步画到输出端,得到第一层数据流图第一层数据流图
销售细化
采购细化
状态转换图(电话系统的状态图)
图中说明,没有人打电话时电话处于闲置状态;有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音并计时;这时假如拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重又回到闲置状态;假如拿起听筒很长时间不拨号(超时),则进入超时状态;……。

保险箱的状态转换图
层次方框图(描绘一家计算机公司全部产品的数据结构)
Warnier图
IPO图
改进的IPO图的形式
PAD图
使用PAD图提供的定义功能
来逐步求精的例子。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实际就是工作流在此处按监护条件的取值发生分支,在UML中判 定用空心菱形表示。
何谓状态图
2. 为什么要使用状态图
状态图的作用主要体现在以下几个方面: (1)状态图清晰的描述了状态之间的转换顺序,通过状态的转换顺 序也就可以清晰的看出事件的执行顺序。如果没有状态图我们就 不可避免的要使用大量的文字来描述外部事件的合法顺序。 (2)清晰的事件顺序有利于程序员在开发程序时避免出现事件错序 的情况。 (3)状态图清晰的描述了状态转换时所必须的触发事件、监护条件 和动作等影响转换的因素,有利于程序员避免程序中非法事件的 进入。 (4)状态图通过判定可以更好的描述工作流因为不同的条件发生的 分支。
一个状态图只能有一个初始状态,用一个实心的圆表示。
何谓状态图
终止状态
终止状态是一个状态图的终点,一个状态图可以拥有一个或者多 个终止状态。
对象可以保持在终止状态,但是终止状态不可能有任何形式的触 发转换,它的目的就是为了激发封装状态上的完成转换。
何谓状态图
判定活Βιβλιοθήκη 图和状态图中都有需要根据给定条件进行判断,然后根据不 同的判断结果进行不同的转换的情况。
构成状态图的元素
外部转换
外部转换是一种改变状态的转换,也是最普通最常见的一种转换。在 UML中,它用从源状态到目标状态的带箭头的线段表示,其他属性以文 字串附加在箭头旁。
构成状态图的元素
内部转换
内部转换只有源状态,没有目标状态,不会激发入口和出口动作, 因此内部转换激发的结果不改变本来的状态。如果一个内部转换 带有动作,它也要被执行。内部转换常用于对不改变状态的插入 动作建立模型。要注意的是内部转换的激发可能会掩盖使用相同 事件的外部转换。
内部转换的表示法与入口动作和出口动作的表示法很相似。他们 的区别主要在于入口和出口动作使用了保留字“entry”和“exit”, 其它部分两者的表示法相同。
构成状态图的元素
完成转换
完成转换没有明确标明触发器事件的转换是由状态中 活动的完成引起的。完成转换也可以带一个监护条件, 这个监护条件在状态中的活动完成时被赋值,而不是 活动完成后被赋值。
构成状态图的元素
监护条件
转换可能具有一个监护条件,监护条件是一个布尔表达式,它是 触发转换必须满足的条件。当一个触发器事件被触发时,监护条 件被赋值。如果表达式的值为真,转换可以激发;如果表达式的 值为假,转换不能激发;如果没有转换适合激发,事件会被忽略, 这种情况并非错误。如果转换没有监护条件,监护条件就被认为 是真,而且一旦触发器事件发生,转换就激活。
从一个状态引出的多个转换可以有同样的触发器事件。若此事件 发生,所有监护条件都被测试,测试的结果如果有超过一个的值 为真,也只有一个转换会激发。如果没有给定优先权,则选择哪 个转换来激发是不确定的。
何谓状态图
初始状态
每个状态图都应该有一个初始状态,它代表状态图的起始位置。 初始状态是一个伪状态(一个和普通状态有连接的假状态),对 象不可能保持在初始状态,必须要有一个输出的无触发转换(没 有事件触发器的转换)。通常初始状态上的转换是无监护条件的, 并且初始状态只能作为转换的源,而不能作为转换的目标。
状态图
学习内容
何谓状态图 构成状态图的元素 状态图的组成 使用Rose创建状态图 创建项目中的状态图
何谓状态图
1. 状态图的概念
状态图由状态、转换、事件、活动和动作5部分组成: (1)状态指的是对象在其生命周期中的一种状况,处于某个特定状态中的 对象必然会满足某些条件、执行某些动作或者是等待某些事件。一个状 态的生命周期是一个有限的时间阶段。 (2)转换指的是两个不同状态之间的一种关系,表明对象将在第一个状态 中执行一定的动作,并且在满足某个特定条件下由某个事件触发进入第 二个状态。 (3)事件指的是发生在时间和空间上的对状态机来讲有意义的那些事情。 事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态, 如信号、对象额度创建和销毁等。 (4)活动指的是状态机中进行的非原子操作。 (5)动作指的是状态机中可以执行的那些原子操作,所谓原子操作指的是 它们在运行的过程中不能被其他消息所中断,必须一直执行下去,最终 导致状态的变更或者返回一个值。
何谓状态图
状态
状态用于对实体在其生命周期中的各种状况进行建模,一个实体 总是在有限的一段时间内保持一个状态。状态由一个带圆角的矩 形表示,状态的描述应该包括:名称、入口和出口动作、内部转 换和嵌套状态。
何谓状态图
转换
• 在UML的状态建模机制中,转换用带箭头的直线表示,一端连接 源状态,箭头指向目标状态。转换还可以标注与此转换相关的选 项,如事件、监护条件和动作等,如果转换上没有标注触发转换 的事件,则表示此转换自动进行。
入口和出口动作:状态可能具有入口和出口动作。这些动作的目的是封装 这个状态,这样就可以不必知道状态的内部状态而在外部使用它。入口 动作和出口动作原则上依附于进入和出去的转换,但是将它们声明为特 殊的动作可以使状态的定义不依赖状态的转换,因此起到封装的作用。
历史状态:组成状态可能包含历史状态(History state)。
构成状态图的元素
2. 转换
转换用于表示一个状态机的两个状态之间的一种关系, 即一个在某初始状态的对象通过执行指定的动作并符 合一定的条件下进入第二种状态。
在这个状态的变化中,转换被称作激发。在激发之前 的状态叫做源状态,在激发之后的状态叫做目标状态。 简单转换只有一个源状态和一个目标状态。复杂转换 有不止一个源状态和(或)有不止一个目标状态。
构成状态图的元素
1. 状态
状态名:在实际使用中,状态名通常是直观、易懂、能充分表达语义的 名词短语,其中每个单词的首字母要大写。
内部活动:状态可以包含描述为表达式的内部活动。当状态进入时,活 动在进入动作完成后就开始。如果活动结束,状态就完成,然后一个从 这个状态出发的转换被触发。
内部转换:状态可能包含一系列的内部转换,内部转换因为只有源状态 而没有目标状态,所以内部转换的结果并不改变状态本身。如果对象的 事件在对象正处在拥有转换的状态时发生,那内部转换上的动作也被执 行。
相关文档
最新文档