软件工程-状态转换图笔记+例题

一、为何要用状态转换图(STD)

在制定需求分析任务的时候,要编写软件需求规格说明书,其中可能会用到结构化分析方法的几个主要模型,当中就应该建立软件系统的行为模型(即状态转换图)

二、何为STD

为了反映事物的变化规律,在需求分析中要建立系统的动态模型。
状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态转换图还指明了作为特定事件的结果,系统将做哪些动作(例如,处理数据)。

三、状态、事件

状态是可以被观察到的系统行为模式,规定了系统对事件的响应方式,既可以是做一个(一系列)动作,也可以是仅仅改变系统本身的状态,或者都包括。
事件是在某个特定时刻发生的事情,对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象。如移动或点击鼠标,内部时钟表明某个规定时间段已经过去。

四、符号

下面介绍的概念有些抽象(嘿嘿照本宣科搬过来的),可以从实际例子中去体会实际用法

初态:实心圆
终态:同心圆
中间状态:圆角矩形,可用水平横线分为上中下三部分,上部分(必有)是状态名称,中间部分(可选)是状态变量的名字和值,下部分(可选)是活动表(下文做语法解释)
活动表语法格式:事件名 /动作表达式,事件名经常使用下述3种标准事件:entry事件指定进入该状态的动作;exit事件指定退出该状态的动作,do事件指定在该状态下的动作。动作表达式描述应做的具体动作。
状态转换:带箭头的连线,状态变化通常由事件触发,应标出触发转换的事件表达式(下文做语法解释),不标明则代表在源状态内部活动执行完自动触发转换。
事件表达式语法格式:事件说明 【布尔表达式】/动作表达式

注:[]中括号的意思代表可有可无

五、实际例子

例一

电话系统状态图:没有人打电话时电话处于闲置状态,有人拿起听筒则进入拨号状态,到达此状态后,电话行为是响起拨号音并计时;若拿起听筒的人不想打了把听筒放下(挂断),又回到闲置状态;若拿起时间比较长不拨号(超时),则进入超时状态…
在这里插入图片描述

例二

复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;
如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;
如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。
在这里插入图片描述

  • 16
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`vue-property-decorator` 是一个用于在 Vue 中使用装饰器语法的库,它提供了一些装饰器来简化 Vue 组件的开发过程。这些装饰器可以用于定义组件的属性、方法、计算属性、生命周期钩子等。 以下是一些常用的装饰器和它们的用法: - `@Component(options?: ComponentOptions)`:将一个类声明为一个 Vue 组件。可以传入一个可选的 `ComponentOptions` 对象来配置组件选项,例如 `template`、`props`、`computed` 等。 - `@Prop(options?: (Vue.PropOptions | Vue.Constructor[] | Vue.Constructor)[] | Vue.PropOptions)`:定义一个组件的 prop 属性。可以传入一个可选的 `PropOptions` 对象来配置 prop 的类型、默认值等。 - `@Watch(path: string, options?: WatchOptions)`:监听一个属性或表达式的变化,并在变化时执行相应的方法。可以传入一个可选的 `WatchOptions` 对象来配置监听选项,例如 `deep`、`immediate` 等。 - `@Emit(event?: string)`:将一个方法标记为触发事件的方法,并指定要触发的事件名。可以传入一个可选的事件名,默认为方法名。 - `@Ref(refKey?: string)`:获取子组件或 DOM 元素的引用,并将其赋值给指定的属性。可以传入一个可选的引用键,默认为属性名。 - `@Inject(key?: string | symbol)`:注入一个父组件提供的属性或方法。可以传入一个可选的注入键,默认为属性名。 - `@Provide(key?: string | symbol)`:在组件中提供属性或方法,以供子组件注入使用。可以传入一个可选的提供键,默认为属性名。 - `@Model(event?: string, options?: (PropOptions | Constructor[] | Constructor)[] | PropOptions)`:将一个 prop 属性设置为组件的 v-model。可以指定要触发的事件名和 prop 的配置选项。 这些装饰器可以与 `vue-class-component` 一起使用,帮助我们更清晰、简洁地定义 Vue 组件,并提供更好的类型支持和可读性。 希望这些笔记对你有所帮助!如有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值