软件工程-第四章-形式化说明技术

软件工程-第四章-形式化说明技术

  • 4. 形式化说明技术
    • 4.1 概述
      • 4.1.1 非形式化方法的缺点
      • 4.1.2 形式化方法的优点
      • 4.1.3 应用形式化方法的准则
    • 4.2 有穷状态机
    • 4.3 Petri 网
    • 4.4 Z 语言
    • 习题

4. 形式化说明技术

  1. 按形式化程度分为三类:
  • 非形式化,如用自然语言描述规格说明
  • 半形式化,如用数据流图或实体-联系图建立模型
  • 形式化,如描述系统性质是基于数学的技术

4.1 概述

4.1.1 非形式化方法的缺点

  • 矛盾性:在需求规格说明书中对同一问题前后存在不同的描述
  • 二义性:读者可以用不同的方式理解的陈述
  • 含糊性:需求规格说明书对某一问题描述不清晰,不可理解
  • 不完整性:需求规格说明书对某一问题只说明了局部,没说明整体
  • 抽象层次混乱:指在非常抽象的陈述中混入了关于低层次的细节陈述

4.1.2 形式化方法的优点

  • 能够简洁准确的描述物理现象、对象或动作的结果
  • 在不同的软件工程活动之间平滑过渡
  • 提供了高层确认的手段

4.1.3 应用形式化方法的准则

  • 选用适当的表示方法
  • 应该形式化,但不要过分形式化
  • 应该估算成本
  • 应该有形式化顾问随时提供咨询
  • 不应该放弃传统的开发方法
  • 应该建立详尽的文档
  • 不应该放弃质量标准
  • 应该测试,测试再测试
  • 应该重用

4.2 有穷状态机

利用有穷状态机可以准确地描述一个系统,因此它是表达规格说明的一种形式化方法。

4.3 Petri 网

形式化方法

4.4 Z 语言

形式化方法

习题

  1. 举例对比形式化方法和欠形式化方法的优缺点。

形式化说明:

优点:

  • 能够简洁准确的描述物理现象、对象或动作的结果。
  • 可以在不同软件工程活动之间平滑的过度。
  • 它提供了高层确认的手段。

缺点:

  • 大多形式化的规格说明主要关注系统的功能数据,而时序的问题,控制和行为等方面的需求却更难于表示。

非形式化说明:

优点:

  • 难度低

缺点:

  • 可能存在矛盾,二义性,含糊性,不完整性级抽象层次混乱等问题

以一个简单的俄罗斯方块游戏系统规格说明为例,用自然语言描述如下:
游戏的每个状态对应一个游戏界面,开始状态下,但变量cd_start=1是进入正常游戏的状态,cd_start=2时 进入读取游戏状态,cd_start=3是进入得分榜界面查看。在得分榜界面按任意键返回开始界面,在读取游戏界面,当游戏数据读取完成后进入正常游戏状态,正常游戏状态下,同时按下左键和右键进入储存游戏界面,数据储存结束后返回正常游戏状态,在正常游戏状态下,如果变量game_res=0,则游戏结束,进入游戏结束画面。可见,用自然语言书写的系统规格说明书,罗嗦繁杂,并且可能存在矛盾,二义性,含糊性,不完整性及抽象 层次混乱等问题。

  1. 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应该遵循哪些准则?

在开发大型软件系统的过程中应该使用形式化说明技术。
(在用非形式化的方式描述时,存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题时用形式化说明技术)

应用形式化方法的准则:

  • 选用适当的表示方法
  • 应该形式化,但不要过分形式化
  • 应该估算成本
  • 应该有形式化顾问随时提供咨询
  • 不应该放弃传统的开发方法
  • 应该建立详尽的文档
  • 不应该放弃质量标准
  • 应该测试,测试再测试
  • 应该重用

你可能感兴趣的:(软件工程,软件工程师)