软件工程导论(第六版)课后习题答案 下载本文

可行性分析-逻辑图: 开始 医生输出病患标准数据 服务器 采集病人生理数据 在预 测范 围内

对比大小 不在预测范围警报 结束 医生 D1:标准数据

技术可行性;

虽然生理数据的采集需要涉及大量的专业精密仪器,软件工程师并不精通,但是可以在专业人士的帮助下完成。

经济可行性:

支出方面由医院方面承担,是否可行取决于医院方面是否能支付所需的费用。

操作可行性:

医生并不具有软件维护的能力,在数据库的维护上需要专业人士来进行,因为病患数目并不会太多,所以只需一个人或者几个人定期对数据库进行管理和维护就行了。

5北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第一位数字不是0.校外电话又分为本市电话和外地电话两类。拨校外电话需要先拨0,若是本市电话则接着拨8位数字(第一位不是0),若是外地电话则拨3位区码后再拨8位电话号码(第一位不是0)。 答:

电话号码= [校内电话号码|校外电话号码] 校内电话号码= 非零数字+ 3 位数字 校外电话号码= [本市号码|外地号码] 本市号码= 数字零+ 8 位数字

外地号码= 数字零+ 3 位数字+ 8 位数字

非零数字= [1 |2 |3 |4 |5 |6 |7 |8 |9] 数字零= 0

3位数字= 3{数字}3

8位数字= 非零数字+ 7 位数字 7位数字= 7{数字}7

数字= [0 |1 |2 |3 |4 |5 |6 |7 |8 |9]

其中,[ ]意思是或,从校内电话号码或校外电话号码中选择一个;{ }表示重复,两边的数字表示重复次数的下限和上限;=意思是定义为;+意思是和,连接两个分量。

第三章

(1).为什么要进行需求分析?通常对软件系统有哪些要求?

答: 1) 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。 2)确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。

(2)怎样与用户有效地沟通以获取用户的真实需求? 答案 :

与用户沟通获取需求的方法:访谈;面向数据流自顶向下求精;简易的应用规格说明技术;快速建立软件原型

3 银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址、身份证号码等存款信息,并打印出存款存单给储户;如果是取款且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。

答案: 用ER图描绘系统中的数据对象。

住址电话号码姓名身份证号码名称电话号码地址储户M存取款N储蓄所到期日期数额

(5)分所析习题2中第4题的患者监狱系统。试用实体-联系图描述本系统中的数据对象并用数据流程描绘本系统的功能。

类型利率密码

(6 )复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。

请用状态转换图描绘复印机的行为。

答案: 从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。

完成复印命令

do /复印 装满纸 卡纸 do /警告

第四章

1,举例说明形式化说明技术和欠形式化方法的优缺点。 答: 形式化说明 优点 1,简洁准确的描述物理现象,对象获动作的结果 2,可以在不同软件工程活动之间平滑的过度。 3,它提供了高层确认的手段 非形式化说明 难度低 可能存在矛盾,二义性,含糊性,不完整性级抽象层次混乱等问题

以一个简单的俄罗斯方块游戏系统规格说明为例,用自然语言描述如下:

游戏的每个状态对应一个游戏界面,开始状态下,但变量cd_start=1是进入正常游戏的状态,cd_start=2时 进入读取游戏状态,cd_start=3

据储存结束后返回正常游戏状态,在正常游戏状态下,如果变量game_res=0,则游戏结束,进入游戏

缺点 大多形式化的规格说明主要关注系统的功能和数据,而时序的问题,控制和行为等方面的需求却更难于表示 是进入得分榜界面查看。在得分榜界面按任意键返回开始界面,在读取游戏界 面,当游戏数据读取完成后进入正常游戏状态,正常游戏状态下,同

时按下左键和右键进入储存游戏界面,数

用有穷状态的描述如下:

结束画面。 可见,用自然语言书写的系统规格说明书,罗嗦繁杂,并且可能存在矛盾,二义性,含糊性,不完整性及抽象 层次混乱等问题。

状态机J:{开始,正常游戏(游戏进行中),得分榜,读取游戏,储存游戏,游戏结束}

输入集K:{按键UP,按键DOWN,按键LEFT,按键RIGHT,寄存器变量cd_start ,寄存器变量game_res} 转换函数T:如图4.1所示 初始态S:{开始} 终态集F:{游戏结束} 读取游戏 Cd_start=2 EEPROM读取完成后 得分榜 按任意键 Cd_start=3 游戏进行中 开始 Cd_start=1 LEFT&RIGHT Game_res=0 游戏结束 EEPROM写入完成后 储存中 图4.1游戏状态转换图

可见用形式化语言描述,更加简洁,准确,无歧义。

2,在什么情况下应该使用形式化说明技术?使用形式化说明技术应遵守哪些规则? 答:

在用非形式化的方式描述时,存在矛盾,二义性,含糊性,不完整性级抽象层次混乱等问题时用形式化说明技术。 应用形式化方法的准则: A,应该选用适当的表示方法; B,应该形式化,但不要过分形式化; C, 应该估算成本;

D, 应该有形式化的方法顾问随时提供咨询; E, 不应该放弃传统的开发方式; F,应该建立详尽的文档; G,不应该放弃质量标准; H,不应该盲目依赖形式化方法; I,应该测试,测试再测试; J,应该重用。

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。

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