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

需求的表达方法

系统模型

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

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

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

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

系统模型的分类:

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

需求的表达形式

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

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

静态描述 :

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

动态描述:

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

层次技术

Warnier图

系统的动态分析

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

常用的动态分析方法

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

状态转换图:

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

状态转换图的符号

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

状态转换图举例

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

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

状态转换图的优点

  • 状态之间的关系能够直观地捕捉到,可以检查所有可能的状态是否都已纳入到图中,是否存在不必要的状态等。
  • 由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具,回答诸如"指定事件序列P、状态A和B,可以因为P从A向B迁移吗?"、"找出经过所有状态的事件序列"之类的问题。
相关推荐
互联网推荐官7 小时前
上海小程序开发实践:技术选型、场景分化与平台能力的全面审视
人工智能·软件工程
a里啊里啊7 小时前
软考-软件评测师:知识点整理(七)——软件工程
设计模式·软件工程·软考·uml·结构化开发·软件评测师·软件模型
互联网推荐官1 天前
上海小程序开发:从技术架构到工程落地的完整拆解
人工智能·物联网·软件工程
故事还在继续吗1 天前
二进制小型化优化
软件工程
weixin_446260851 天前
软件工程工具链机制的认知模型:打造可持续、可复现的开发工作流
软件工程
Ting.~1 天前
软件设计师备考笔记【day2】-软件工程
笔记·软件工程
互联网推荐官2 天前
上海物联网应用开发的协议选型与平台架构实践
人工智能·物联网·软件工程
j_xxx404_2 天前
我用 Codex 做了一个智能围棋机器人系统:从 AI 引擎接入到前后端联调的完整实战
c++·人工智能·python·机器人·软件工程·团队开发·react
互联网推荐官3 天前
上海APP开发公司的技术路径选择:从架构设计到工程落地
大数据·人工智能·物联网·软件工程
早日退休!!!3 天前
《软件工程之美》读书笔记
软件工程