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

需求的表达方法

系统模型

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

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

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

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

系统模型的分类:

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

需求的表达形式

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

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

静态描述 :

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

动态描述:

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

层次技术

Warnier图

系统的动态分析

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

常用的动态分析方法

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

状态转换图:

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

状态转换图的符号

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

状态转换图举例

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

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

状态转换图的优点

  • 状态之间的关系能够直观地捕捉到,可以检查所有可能的状态是否都已纳入到图中,是否存在不必要的状态等。
  • 由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具,回答诸如"指定事件序列P、状态A和B,可以因为P从A向B迁移吗?"、"找出经过所有状态的事件序列"之类的问题。
相关推荐
大千AI助手2 小时前
SWE-bench:真实世界软件工程任务的“试金石”
人工智能·深度学习·大模型·llm·软件工程·代码生成·swe-bench
Q_Q5110082853 小时前
python的软件工程与项目管理课程组学习系统
spring boot·python·django·flask·node.js·php·软件工程
万能小锦鲤11 小时前
《软件工程导论》实验报告五 设计建模工具的使用(一)类图
软件工程·类图·实验报告·boardmix·文档资源
数据爬坡ing2 天前
过程设计工具深度解析-软件工程之详细设计(补充篇)
大数据·数据结构·算法·apache·软件工程·软件构建·设计语言
紫金桥软件2 天前
紫金桥RealSCADA:国产工业大脑,智造安全基石
安全·系统安全·软件工程
曼岛_3 天前
[系统架构设计师]软件工程基础知识(五)
系统架构·软件工程·系统架构设计师
万能小锦鲤4 天前
《软件工程导论》实验报告一 软件工程文档
软件工程·软件工程导论·实验报告·软件工程文档
数据爬坡ing6 天前
软件工程总体设计:从抽象到具体的系统构建之道
数据库·流程图·软件工程·可用性测试·软件需求
张太行_10 天前
人月神话:软件工程的永恒智慧
大数据·软件工程
snow@li10 天前
PMP项目管理:理解PMP、PMP学什么 / 适合谁学 / Project Management Professional / 项目管理专业人士
软件工程