《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第4章 形式化说明技术
文章目录
- 第1题
- 第2题
- 第3题
- 第4题
- 第5题
- 第6题
第1题
1.举例对比形式化方法和欠形式化方法的优缺点。
形式化说明:
优点:(1)简洁准确的描述物理现象,对象获动作的结果。
(2)可以在不同软件工程活动之间平滑的过度。
(3)它提供了高层确认的手段。
缺点:大多形式化的规格说明主要关注系统的功能数据,而时序的问题,控制和行为等方面的需求却更难于表示。
非形式化说明:
优点:难度低
缺点:可能存在矛盾,二义性,含糊性,不完整性级抽象层次混乱等问题
以一个简单的俄罗斯方块游戏系统规格说明为例,用自然语言描述如下:
游戏的每个状态对应一个游戏界面,开始状态下,但变量cd_start=1是进入正常游戏的状态,cd_start=2时 进入读取游戏状态,cd_start=3是进入得分榜界面查看。在得分榜界面按任意键返回开始界面,在读取游戏界面,当游戏数据读取完成后进入正常游戏状态,正常游戏状态下,同时按下左键和右键进入储存游戏界面,数据储存结束后返回正常游戏状态,在正常游戏状态下,如果变量game_res=0,则游戏结束,进入游戏结束画面。可见,用自然语言书写的系统规格说明书,罗嗦繁杂,并且可能存在矛盾,二义性,含糊性,不完整性及抽象 层次混乱等问题。
第2题
2.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则?
在开发大型软件系统的过程中应该使用形式化说明技术。
应用形式化方法的准则:
(1)应该选用适当的表示方法。
(2)应该形式化,但不要过分形式化。
(3)应该估算成本。
(4)应该有形式化方法顾问随时提供咨询。
(5)不应该放弃传统的开发方法。
(6)应该建立详尽的文档。
(7)不应该放弃质量标准。
(8)不应该盲目依赖形式化方法。
(9)应该测试、测试再测试。
(10)应该重用。
第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。
假设有这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。试对这个有穷状态机进行规格说明。
答: 该有穷状态机的初态是“等待字符串输入”。在初态若接收到字符十、字符一、或二进制位,则进入“输入尾数”状态;在初态若接收到其他字符,则进入终态“非浮点二进制数”。在“输入尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符E,则进入“等待输入指数”状态;若接收到其他字符,则进入终态“非浮点二进制数”。在“等待输入指数”状态若接收到字符+、字符一、或二进制位,则进入“输入指数”状态;若接收到其他字符,则进入终态“非浮点二进制数”。在“输入指数”状态若接收到二进制位,则保持该状态不变;若输入其他字符,则进入终态“非浮点二进制数”;若输入结束,则进入终态“浮点二进制数”。
第4题
4.考虑下述的自动化图书馆流通系统:每本书都有一个条形码,每个借阅人都有一个带条形码的卡片。当一个借阅人想借一本书时,图书管理员扫描书上的条形码和借阅人卡片的条形码,然后在计算机终端上输入C;当归还一本书时,图书管理员将再做一次扫描,并输入R。图书管理员可以把一些书加到(+)图书集合中,也可以删除(—)它们。借阅人可以在终端上查找到某个作者所有的书(输入“A=”和作者名字),或具有指定标题的所有书籍(输入“T=”和标题),或属于特定主题范围内的所有图书(输入“S=”加主题范围)。最后,如果借阅人想借的书已被别人借走,图书管理员将给这本书设置一个预约,以便书归还时把书留给预约的借阅人(输入“H=”加书号)。
试用有穷状态机说明上述的图书流通系统。
答:(1)图书状态的有穷状态机描述
状态机J:{书在图书馆S1,书被借出S2,书被预约S3}
输入集K:{书上条形码,借阅卡条形码,终端输入各种命令}
转换函数T:如图1所示
初始态S:{书在图书馆S1,书被借出S2}
终态集F:{书被借出S2,书被预约S3}
(2)图书2、图书馆终端管理员模式的有穷状态机描述
状态机J:{管理员设置状态,书入库,书出库(删除),预约}
输入集K:{终端输入管理员命令,书的各种状态(S1,S2,S3}
转换函数T:如下图所示
初始态S:{管理员设置状态}
终态集F:{书入库,书出库(删除),预约,}
(3)图书馆终端用户模式的有穷状态机描述
状态机J:{读者查询状态,查询结果}
输入集K:{终端输入用户查询命令,书的各种状态(S1,S2,S3)}
转换函数T:如图3所示
初始态S:{读者查询状态}
终态集F:{查询结果}
第5题
5.试用Petri网说明第4题所述图书馆中一本书的循环过程,在规格说明中应该包括操作H、C及R。
答:如下图,其中P1表示书在图书馆P2表示书在读者手上,P3书被预约。C:借书操作, R:还书操作, H:预约操作
第6题
6.试用Z语言对第4题所述图书馆流通系统做一个完整的规格说明。
答:
《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第4章 形式化说明技术相关推荐
- 《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第1章 软件工程学概述
文章目录 第1题 第2题 第3题 第4题 第5题 第6题 第7题 第8题 第9题 第10题 第11题 第12题 第1题 一.什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 答:软件危机是指在 ...
- 《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第5章 总体设计
文章目录 第1题 第2题 第3题 第4题 第5题 第1题 1.为每种类型的模块耦合举一个具体例子. 耦合式对一个软件结构内不同模块之间互联程度的度量.耦合强弱取决于接口的复杂度,进入或访问某一模块的点 ...
- 《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第6章 详细设计
文章目录 第1题 第2题 第3题 第4题 第5题 第6题 第7题 第8题 第9题 第10题 第1题 1.假设只有SEQUENCE和DO_WHILE两种控制结构,怎么利用它们完成IF_THEN_ELSE ...
- 软件工程导论 第五版 张海藩 编著 总结
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 总结重点 ...
- 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第6章 集合
文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.Comparator 2.hashNext().next() 3.键.值 4.ArrayList ...
- 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第5章 Java中的常用类
文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1. String.StringBuffer 2. Date.Calendar.DateFormat ...
- 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第3章 面向对象(上)
文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.封装.继承.多态 2.this 3.private.default.protected.publ ...
- 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第10章 多线程
文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.Thread.Runnable.Callable 2.synchronized.this 3.N ...
- 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第7章 I/O流
文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1. 字节流.字符流 2. Channel.Buffer 3. InputStreamReader. ...
- 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第4章 面向对象(下)
文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.方法,抽象类2.子类.父类.基类3.final4.Object5.参数列表."-> ...
最新文章
- 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
- 记一次云服务器被入侵
- 学习笔记27—python中numpy.ravel() 和 flatten()函数
- ./configure,make,make install的作用
- 福州java培训哪里好_广州java学习哪里好?需要学多长时间
- 【计算机图形学课程】一.MFC基本绘图函数使用方法
- 【摘抄】百度分词算法详解:查询处理以及分词技术
- 一台服务部署多个tomcat注意事项
- 【转】ubuntu 下 VNCview 远程桌面无法传输文件问题
- Java内存模型常见问题
- ssm开放式教学管理系统答辩PPT模板
- unrecognized selector sent to class 0x235e7ec
- Intouch2020安装与授权
- [多媒体] 10大开源视频剪辑软件
- 什么是HyperText Transfer Protocol 超文本传输协议
- 【数字IC验证】1-systemverilog数据类型
- 一个555振荡电路及其解释
- 计算机设计大赛作品抄袭会怎么样,如何界定借鉴和抄袭?看这7位设计大咖怎么说!...
- MySQL 是如何保证一致性、原子性和持久性的!
- android 5.0 刷机教程,一加手机怎么升级安卓5.0系统?一加手机刷Android 5.0教程
热门文章
- 好玩,AI 让老照片动起来(附 APP 软件地址)
- 将视频或动态壁纸设置成桌面
- jeesite实战(三十六)——非status的其他属性In条件查询
- 远程控制工具ToDesk手机端测评,移动办公增强,pad变电脑
- 中文ocr-Benchmarking Chinese Text Recognition: Datasets, Baselines, andan Empirical Study
- JavaWeb基础教程
- c#IntPtr简例
- Python编写求100以内素数
- ssh登录工具 putty 和 生成.ppk文件的puttygen工具 如何使用puttygen生成密钥
- 工业园区与大型制造工厂企业食堂消费管理系统常见需求及解决方案