软件工程期末复习(8)需求的表达方法和状态转换图

需求的表达方法

系统模型

需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统 "做什么" 的问题

  • 通常软件开发项目是要实现目标系统的物理模型。
  • 目标系统的具体物理模型是由它的逻辑模型经实例化,即具体到某个业务领域而得到的。
  • 导出目标系统的逻辑模型的过程中,对系统进行建模有着不可替代的作用。

在需求分析阶段创建模型的作用:

  • 模型帮助分析员理解系统的信息、功能和行为,因此,使得需求分析任务更容易、更系统;
  • 模型是评审的焦点,因此,也成为确定规约的完整性、一致性和精确性的关键;
  • 模型是设计的基础

系统模型的分类:

  • 行为模型:这个概念包括系统的所有过程层面的内容。
    • 功能模型:描述数据的功能转换。有两种方式。
      • 其一,数据被认为在功能处理元素间流动,如数据流图(DFD)。
      • 其二,领域实体被建模成对象,通过事件触发相应的服务来处理数据元素,如面向对象方法。
    • 动态模型:描述与时间有关的变化。
  • 结构模型(静态模型):描述系统的实体结构。

需求的表达形式

最基本形式--自然语言描述:

因可能存在二义性,所以应在合适情况下选用合适的符号进行精确描述。

静态描述 :

  • 实体-关系图(ER图)
  • 数据抽象
  • 对象模型

动态描述:

  • 判定表
  • 状态迁移图
  • 时序图
  • Petri网

层次技术

Warnier图

系统的动态分析

  • 系统的需求规格说明通常可以用自然语言来叙述,但是用自然语言描述往往会出现歧义性;
  • 为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。

常用的动态分析方法

  • 状态迁移图
  • 时序图
  • Petri网

状态转换图:

  • **状态转换图(简称为状态图)**通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为
  • 状态:状态是任何可以被观察到的系统行为模式,规定了系统对事件的响应方式
  • 事件:在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象

状态转换图的符号

  • 活动表的语法格式如下: 事件名(参数表)/动作表达式
  • 事件表达式的语法如下: 事件说明[守卫条件]/动作表达式
  • 其中事件说明的语法如下: 事件名(参数表)

状态转换图举例

状态转换图和与其等价的状态转换表示例 ⬆️

例如, 当有多个申请占用CPU运行的进程时, 有关CPU分配的进程的状态迁移:

状态转换图的优点

  • 状态之间的关系能够直观地捕捉到,可以检查所有可能的状态是否都已纳入到图中,是否存在不必要的状态等。
  • 由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具,回答诸如"指定事件序列P、状态A和B,可以因为P从A向B迁移吗?"、"找出经过所有状态的事件序列"之类的问题。
相关推荐
世冠科技4 小时前
第2期汽车模型数字工程沙龙,世冠科技分享汽车控制系统开发国产应用
科技·汽车·软件工程·工业软件·仿真系统
雾江流6 小时前
LinkAndroid 0.6.0 | 支持多部手机同时连接的全能手机投屏工具
智能手机·软件工程
Clair-Sean16 小时前
【软件工程】软件复刻项目的完整流程指南
软件工程
一只鹿鹿鹿16 小时前
信息化项目验收,软件工程评审和检查表单
大数据·人工智能·后端·智慧城市·软件工程
学习菌子1 天前
第9章:【系统架构设计师】软件工程(5.系统运行与评价)
系统架构·软件工程·软考高级·系统架构师·系统维护·系统转换·系统评价
张较瘦_1 天前
[论文阅读] 人工智能 + 软件工程 | Call Me Maybe:用图神经网络增强JavaScript调用图构建
论文阅读·人工智能·软件工程
VV- Wxiaoxwen1 天前
Web3区块链有哪些岗位?
软件工程·软件构建·开源软件
筱姌11 天前
软件工程概述:核心概念、模型与方法全解析
软件工程
TOSUN同星11 天前
软件更新 | 从数据到模型,全面升级!TSMaster新版助力汽车研发新突破
汽车·软件工程
IDRSolutions_CN11 天前
在 Java 中生成 PDF 缩略图(教程)
java·经验分享·pdf·软件工程·团队开发