[软件工程导论(第六版)]第4章 形式化说明技术(课后习题详解)

简介: [软件工程导论(第六版)]第4章 形式化说明技术(课后习题详解)

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

  • (1)欠形式化方法的缺点
  • ① 存在矛盾。
  • ② 具有二义性。
  • ③ 具有含糊性。
  • ④ 具有不完整性。
  • ⑤ 抽象层次混乱。
  • (2)欠形式化方法的优点学习难度低。
  • (3)形式化方法的优点
  • ① 能保证规格说明中尽可能没有矛盾、二义性、含糊性和不完整性。
  • ② 可以在不同的软件工程活动之间平滑地过渡。
  • ③ 提供了高层确认的手段。
  • (4)形式化方法的缺点
  • ① 难于表示问题的时序、控制和行为等方面的需求。
  • ② 相比欠形式化方法,它更难学习,培训的投资过大。

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

答:

  • (1)人们在理解用自然语言描述的规格说明时,容易产生二义性。为了克服非形式化方法的缺点,人们把数学引入软件工程。创造了基于数学的形式化说明技术。
  • (2)应用形式化方法的准则:
  • ① 应该选用适当的表示方法。
  • ② 应该形式化,但不要过分形式化。
  • ③ 应该估算成本。
  • ④ 应该有形式化方法顾问随时提供咨询。
  • ⑤ 不应该放弃传统的开发方法。
  • ⑥ 应该建立详尽的文档。
  • ⑦ 不应该放弃质量标准。
  • ⑧ 不应该盲目依赖形式化方法。
  • ⑨ 应该测试、测试再测试。
  • ⑩ 应该重用。

3. 一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。例如,下列的字符串都是浮点二进制数:

110101E-101

-100111E11101

+1E0

更形式化地,浮点二进制数定义如下:

<floating-point binary>∷=[<sign>]<bitstring>E[<sign>]<bitstring>
<sign>∷=+|-
<bitstring>∷=<bit>[<bitstring>]
<bit>∷=0|1

其中:

符号∷=表示定义为;

符号[…]表示可选项;

符号a|b表示a或b。

假设有这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。试对这个有穷状态机进行规格说明。

答:

(1)自然语言描述

该有穷状态机的初态是“等待字符串输入”。在初态若接收到字符“+”、字符“-”、或二进制位,则进入“输入尾数”状态;在初态若接收到其他字符,则进入终态“非浮点二进制数”。在“输入尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符“E”,则进入“等待输入指数”状态;若接收到其他字符,则进入终态“非浮点二进制数”。在“等待输入指数”状态若接收到字符“+”、字符“-”、或二进制位,则进入“输入指数”状态;若接收其他字符,则进入终态“非浮点二进制数”。在“输入指数”状态若接收到二进制位,则保持该状态不变;若输入其他字符,则进入终态“非浮点二进制数”;若输入结束,则进入终态“浮点二进制数”。

(2)形式化图,如图所示。

4. 考虑下述的自动化图书馆流通系统:每本书都有一个条形码,每个借阅人都有一个带有条形码的卡片。当一个借阅人想借一本书时,图书管理员扫描书上的条形码和借阅人卡片上的条形码,然后在计算机终端上输入C;当归还一本书时,图书管理员将再做一次扫描,并输入R。图书管理员可以把一些书加到(+)图书集合中,也可以删除(-)它们。借阅人可以在终端上查找到某个作者所有的书(输入“A=”和作者名字),或具有指定标题的所有书籍(输入“T=”和标题),或属于特定主题范围内的所有图书(输入“S=”加主题范围)。最后,如果借阅人想借的书已被别人借走,图书管理员将给这本书设置一个预约,以便书归还时把书留给预约的借阅人(输入“H=”加书号)。试用有穷状态机说明上述的图书流通系统。

答:

图书馆流通系统的有穷状态机描述如下:

(1)图书状态的有穷状态机描述

状态机J:{书在图书馆S1,书被借出S2,书被预约S3}

输入集K:{书上条形码,借阅卡条形码,终端输入各种命令}

转换函数T:如图示。

初始态S:{书在图书馆S1,书被借出S2}

终态集F:{书被借出S2,书被预约S3}

(2)图书馆终端管理员模式的有穷状态机描述。

状态机J:{管理员设置状态,书入库,书出库(删除),预约}

输入集K:{终端输入管理员命令,书的各种状态(S1,S2,S3)}

转换函数T:如图所示。

初始态S:{管理员设置状态}

终态集F:{书入库,书出库(删除),预约}

(3)图书馆终端用户模式的有穷状态机描述

状态机J:{读者查询状态,查询结果}

输入集K:{终端输入用户查询命令,书的各种状态(S1,S2,S3)}

转换函数T:如图所示

初始态S:{读者查询状态}

终态集F:{查询结果}

5. 试用Petri网说明第4题所述图书馆中一本书的循环过程。在规格说明中应该包括操作H、C及R。

答:图书馆流通系统中一本书的循环过程的Petri网如图所示。其中

P1表示书在图书馆,P2表示书在读者手上,P3表示书被预约。

6. 试用Z语言对第4题所述图书馆图书流通系统做一个完整的规格说明。

相关文章
|
算法 程序员 Go
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
|
测试技术 项目管理
软件测试基础理论选择题(含答案)(4)
软件测试基础理论选择题(含答案)(4)
1827 0
|
算法 数据挖掘 数据库
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
|
算法 图计算
[软件工程导论(第六版)]第6章 详细设计(课后习题详解)
[软件工程导论(第六版)]第6章 详细设计(课后习题详解)
|
自然语言处理
[软件工程导论(第六版)]第4章 形式化说明技术(复习笔记)
[软件工程导论(第六版)]第4章 形式化说明技术(复习笔记)
|
测试技术 BI uml
[软件工程导论(第六版)]第9章 面向对象方法学引论(课后习题详解)
[软件工程导论(第六版)]第9章 面向对象方法学引论(课后习题详解)
|
存储 算法 测试技术
[软件工程导论(第六版)]第9章 面向对象方法学引论(复习笔记)
[软件工程导论(第六版)]第9章 面向对象方法学引论(复习笔记)
|
算法 BI 数据库
[软件工程导论(第六版)]第5章 总体设计(课后习题详解)
[软件工程导论(第六版)]第5章 总体设计(课后习题详解)
|
数据安全/隐私保护
[软件工程导论(第六版)]第3章 需求分析(课后习题详解)
[软件工程导论(第六版)]第3章 需求分析(课后习题详解)
|
数据可视化 程序员 开发工具
[软件工程导论(第六版)]第1章 软件工程学概述(课后习题详解)
[软件工程导论(第六版)]第1章 软件工程学概述(课后习题详解)