关键词:状态图,软件工程,动态模型

动态模型着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时序和改变的状态。动态模型包括事件跟踪图和状态图。事件跟踪图则侧重于说明系统执行过程中的一个特点“场景”(scenarios),也叫做脚本。脚本通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件。状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。状态图通过描绘系统的状态和引起系统状态转换的事件来表示系统的行为,是行为建模或动态建模的主要工具。

事件:在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象。简言之、事件就是引起系统做动作或状态转换的控制信息。对象到对象的单个消息叫做一个事件。

脚本或场景(scenarios):系统在一个特定的环境下发生的一系列事件。在一个场景中,这一系列事件和交换事件的对象都可以放在一个事件跟踪图中表示。

建立动态模型的主要步骤:

(1)准备典型的交互序列场景即脚本;
    编写脚本的过程简要概括如下:
    第一步 编写正常情况下的脚本(基本事件流)
    第二步 编写特殊情况下及出错情况下的脚本(被选事件流)

(2)确定对象之间的事件,为每个场景建立事件跟踪图;
    注 意:事件发生的先后顺序和事件的发送对象和接收对象
    第一步 确定事件,从脚本中抽取事件,事件包括系统与用户交互的所有信号、输入、输出、中断和动作等。
    第二步 画事件跟踪图,竖线代表一类对象,箭头线代表发生的事件。
   
(3)为具有重要动态行为的类建立状态图;

   状态图表示
    初态:用实心圆表示,只有一个初态
    末态:用同心圆表示,有零或多个末态
    中间态:用圆角矩形表示
    触发事件:用箭头符号表示,其中箭头表示状态转换方向,箭头上文字表示触发的事件,箭头未标文字表示当源状态的内部活动执行完后自动触发转换到目标状态。

三种标准事件:
    do/事件:指定在该状态下执行的动作
    entry/事件:指定进入该状态的动作
    exit/事件:指定退出该状态的动作

根据事件跟踪图画状态图的注意事项:
    a:先考虑有重要交互行为的类、对象
    b:考查事件时先考查正常情况下的基本事件,然后考虑被选事件
    c:排除系统外部因素或对象
    d:射入箭头:研究某个对象的状态时,事件跟踪图中射入到该对象(用竖线表示的对象)的箭头事件属于外部事件,在状态图中箭头旁边明确标注该事件。
    e:射出箭头:事件跟踪图中从该对象(用竖线表示的对象)射出的箭头线代表该对象达到下一个状态时所做的行为动作,或引起另一类对象状态转换的事件,在状态图中常常需画出该事件对应的下一个状态。

(4)检验不同状态图中共享的事件的一致性和完整性。

参考来源:
《软件工程》清华大学 张海潘
http://bbs.zbitedu.com/thread-27808-1-32.html

第七周作业——用面向对象方法分析研究书中习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型

建立软件工程之动态模型(状态图)步骤相关推荐

  1. (软件工程复习核心重点)第九章面向对象分析-第三节:面向对象分析之建立动态模型和功能模型

    文章目录 一:建立动态模型 (1)概念 A:适用性 B:步骤 (2)编写脚本 A:定义 B:目的 C:内容 D:方法 (3)设想用户界面 A:重要性 B:目的 C:方法 (4)画事件跟踪图 A:必要性 ...

  2. 第七章 面向对象分析---建立动态模型

    建立动态模型 开发交互式系统,动态模型非常重要 步骤: 编写典型交互行为脚本(依据用例描述) 从脚本中提取事件及相关对象,用顺序图表达 确定对象状态及状态间转换关系,用状态图描绘 结合ATM系统的实例 ...

  3. (软件工程复习核心重点)第八章面向对象方法学-第四节:面向对象建模之动态模型和功能模型

    文章目录 一:动态模型 (1)概念 (2)建模 二:功能模型 (1)概念 A:定义 B:组成 (2)用例图 A:定义 B:表示 ①:系统 ②:用例 ③:行为者 ④:用例间关系 三:三种模型比较(了解) ...

  4. 数学建模学习笔记(第五章:6个动态模型-微分方程的建立与分析)

    第五章:动态模型(微分方程建模) ·  预报与决策类型 ·  描述对象特征随时间或空间的演变过程: ·  分析对象特征的变化规律: ·  预报对象特征的未来特征: ·  研究控制对象特征的手段等. 这 ...

  5. 软件工程实验报告八UML建模-动态模型

    一.实验目的 1 学习使用CASE工具绘制UML动态模型: 2 学习顺序图.协作图.状态图.活动图的绘制方法,理解模型含义. 二.实验环境(工具.配置等) 应用Microsoft Visio .Pow ...

  6. OSGI(面向Java的动态模型系统)和它的实现Equinox

    equinox  报错 英 ['ikwnks; 'ekw-] 美 ['ikwnɑks] 全球发音 跟读 口语练习 n. 春分:秋分:昼夜平分点 OSGi(Open Service Gateway In ...

  7. 建立分析模型和设计模型

    OOA面向对象分析 面向对象分析产生三种分析模型 功能模型(即用例模型à作为输入) 对象模型:对用例模型进行分析,把系统分解成互相协作的分析类,通过类图/对象图描述对象/对象的属性/对象间的关系,是系 ...

  8. 代码详解:手把手教你建立自己的视频分类模型

    本文转自『读芯术』(AI_Discovery) 视频正以前所未有的速度融入我们的生活,对于数据科学家而言,这个领域有很大的开发潜力.那么在计算机视觉中,建立图像分类模型的方法是否在视频分类中也具有普适 ...

  9. 软件工程,开发模型,软件开发流程

    软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模 ...

  10. 【软考软件评测师】第十章节 软件工程之开发模型与方法

    [软考软件评测师]第十章节 软件工程之开发模型与方法 第十章节 软件工程之开发模型与方法 [软考软件评测师]第十章节 软件工程之开发模型与方法 第一部分 知识点集锦 1.瀑布模型 2.螺旋模型 3.增 ...

最新文章

  1. server.mapPath(.mdb)
  2. linux c 客户端与 golang 服务端通信(网络字节序)
  3. 《Selenium2自动化测试实战基于Python语言》读书笔记
  4. 贷款100万到手97万,这样合理吗?
  5. 操作系统上机作业--使用条件变量解决生产者、计算者、消费者问题(多线程)
  6. Java实现发送邮件(可配置)忘记密码,发送邮件
  7. 【华为云技术分享】低代码开发平台发展趋势:低代码——炒作还是趋势?
  8. 活用这25种图表效果,你的数据可视化也能变得高级炫酷!
  9. linux 内核代码怎么下载,centos的linux内核源码下载方法
  10. 自动控制原理4.4---系统性能分析
  11. 在一个窗口显示多个视频子窗口
  12. eeglab和matlab,Matlab之EEGLAB工具箱脑电数据预处理
  13. 计算机考试打字小作文,打字练习作文(通用5篇)
  14. Python实现回文
  15. Masked Image Modelling(MAE,iBOT,Data2vec,SimMIM,CAE,BEVT)
  16. 苹果开发者账号官方翻译篇-账号简介
  17. pytorch报错:PicklingError: Can’t pickle <function at 0x000001EA6923EAF0>: attribute lookup on main fai
  18. 华为hcia-datacom 学习日记
  19. 图像分割(六) —— STransFuse
  20. 了解多层交换中的CEF FIB CAM TCAM

热门文章

  1. 从零开始:微信小程序零基础入门宝典
  2. 高等数学费马定理的证明
  3. 快手打开后不显示画面_快手打开不显示图像怎么办
  4. 【转】codelite
  5. ila、dbg_hub、jatg时钟关系
  6. 京东登录滑条验证破解 -- 纯js方法
  7. 打造一款属于自己的短视频webApp(Vite搭建React Hooks+Recoil+Antd)
  8. 474922-22-0,DSPE-PEG2000-Mal,DSPE-PEG2k-Maleimide,
  9. hgame 2022 逆向 reverse 部分题目 Writeup
  10. Service(LoadBalancer)