软件工程导论第五版 第六章
- 格式:doc
- 大小:418.00 KB
- 文档页数:13
《软件工程导论》课后习题答案第三章需求分析习题答案1.需求分析的描述工具有哪些?有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier 图、IPO图和需求描述语言等。
2.需求分析的基本任务是什么?准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?建立目标系统的逻辑模型的过程也就是数据流图的分解过程。
它的导出过程如图:10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。
(2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
(3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。
房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。
用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据流、文件和加工说明。
第四章总体设计习题答案9. 比较层次方框图与结构图是的异同?(1) 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构。
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
第6章详细设计6.1结构程序设计图6.1 3种基本的控制结构图6.2其他常用的控制结构6.2人机界面设计6.2.1设计问题1. 系统响应时间2. 用户帮助设施3. 出错信息处理2软件工程导论(第五版) 4. 命令交互6.2.2设计过程6.2.3人机界面设计指南1. 一般交互指南2. 信息显示指南3. 数据输入指南6.3过程设计的工具6.3.1程序流程图6.3.2盒图图6.3程序流程图中使用的符号软件工程导论(第五版) 3图6.4盒图的基本符号6.3.3PAD图图6.5PAD图的基本符号4软件工程导论(第五版)图6.6使用PAD图提供的定义功能来逐步求精的例子6.3.4判定表6.3.5判定树6.3.6过程设计语言图6.7用判定树表示计算行李费的算法软件工程导论(第五版) 5 6.4面向数据结构的设计方法6.4.1Jackson图1. 顺序结构2. 选择结构图6.8A由B、C、D 3个元素顺序组成图6.9根据条件A是B或C或D中的某一个3. 重复结构图6.10A由B出现N次(N≥0)组成6.4.2改进的Jackson图6软件工程导论(第五版)图6.11改进的Jackson图6.4.3Jackson方法图6.12表示输入输出数据结构的Jackson图图6.13描绘统计空格程序结构的Jackson图软件工程导论(第五版) 7图6.14把操作和条件分配到程序结构图的适当位置6.5程序复杂程度的定量度量6.5.1McCabe方法1. 流图8软件工程导论(第五版)图6.15把程序流程图映射成流图软件工程导论(第五版) 9图6.16由PDL翻译成的流图图6.17由包含复合条件的PDL映射成的流图2. 计算环形复杂度的方法3. 环形复杂度的用途10软件工程导论(第五版)6.5.2 Halstead方法6.6小结习题61. 假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成IF-THEN-ELSE 操作?2. 假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO-W HILE操作?3. 画出下列伪码程序的程序流程图和盒图:4. 图6.18给出的程序流程图代表一个非结构化的程序,问:(1) 为什么说它是非结构化的?(2) 设计一个等价的结构化程序。
软件工程导论?课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所碰到的一系列严峻咨询题。
这些咨询题表现在以下几个方面:(1)用户对开发出的软件非常难满足。
(2)软件产品的质量往往靠不住。
(3)一般软件非常难维护。
(4)软件生产效率非常低。
(5)软件开发本钞票越来越大。
(6)软件本钞票与开发进度难以估量。
(7)软件技术的开展远远满足不了计算机应用的普及与深进的需要。
2.什么原因会产生软件危机?(1)开发人员方面,对软件产品缺乏正确熟悉,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定方案盲目、编程草率,不考虑维护工作的必要性。
(2)软件本身方面,关于计算机系统来讲,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和标准指导,造成软件维护困难。
(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、本钞票过高、研制周期不易估量、维护困难等一系列咨询题更为突出,技术的开展差不多远远不能习惯社会需求。
3.怎么样克服软件危机?(1)充分汲取和借鉴人类长期以来从事各种工程工程中积存的行之有效的有效原理、概念、技术与方法,特殊是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。
(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期开展时期形成的一些错误概念和作法。
(3)依据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个时期使用的软件工具集合成一个整体,形成一个非常好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。
4.构成软件工程的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
第6章详细设计6.1结构程序设计
图6.1 3种基本的控制结构
图6.2其他常用的控制结构
6.2人机界面设计
6.2.1设计问题
1. 系统响应时间
2. 用户帮助设施
3. 出错信息处理
2
软件工程导论(第五版) 4. 命令交互
6.2.2设计过程
6.2.3人机界面设计指南
1. 一般交互指南
2. 信息显示指南
3. 数据输入指南
6.3过程设计的工具
6.3.1程序流程图
6.3.2盒图
图6.3程序流程图中使用的符号
软件工程导论(第五版) 3
图6.4盒图的基本符号
6.3.3PAD图
图6.5PAD图的基本符号
4
软件工程导论(第五版)
图6.6使用PAD图提供的定义功能来逐步求精的例子6.3.4判定表
6.3.5判定树
6.3.6过程设计语言
图6.7用判定树表示计算行李费的算法
软件工程导论(第五版) 5 6.4面向数据结构的设计方法
6.4.1Jackson图
1. 顺序结构
2. 选择结构
图6.8A由B、C、D 3个元素顺序组成
图6.9根据条件A是B或C或D中的某一个
3. 重复结构
图6.10A由B出现N次(N≥0)组成
6.4.2改进的Jackson图
6
软件工程导论(第五版)
图6.11改进的Jackson图
6.4.3Jackson方法
图6.12表示输入输出数据结构的Jackson图
图6.13描绘统计空格程序结构的Jackson图
软件工程导论(第五版) 7
图6.14把操作和条件分配到程序结构图的适当位置
6.5程序复杂程度的定量度量
6.5.1McCabe方法
1. 流图
8
软件工程导论(第五版)
图6.15把程序流程图映射成流图
软件工程导论(第五版) 9
图6.16由PDL翻译成的流图
图6.17由包含复合条件的PDL映射成的流图
2. 计算环形复杂度的方法
3. 环形复杂度的用途
10
软件工程导论(第五版)
6.5.2 Halstead方法
6.6小结
习题6
1. 假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成IF-THEN-ELSE 操作?
2. 假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO-W HILE操作?
3. 画出下列伪码程序的程序流程图和盒图:
4. 图6.18给出的程序流程图代表一个非结构化的程序,问:
(1) 为什么说它是非结构化的?
(2) 设计一个等价的结构化程序。
(3) 在(2)题的设计中使用附加的标志变量flag了吗?若没用,再设计一个使用flag的程
序;若用了,再设计一个不用flag的程序。
软件工程导论(第五版) 11
图6.18一个非结构化程序
5. 研究下面的伪码程序:
要求:
(1) 画出程序流程图。
(2) 程序是结构化的吗?说明理由。
(3) 若程序是非结构化的,设计一个等价的结构化程序并且画出程序流程图。
(4) 此程序的功能是什么?它完成预定功能有什么隐含的前提条件吗?
6. 用Ashcroft_Manna技术可以将非结构化的程序转换为结构化程序,图6.19是一个转换的例子。
12
软件工程导论(第五版)
图6.19用Ashcroft-Manna技术的例子
(a) 非结构化设计;(b) 转换成的等价的结构化设计
(1) 能否从这个例子总结出Ashcroft-Manna技术的一些基本方法?
(2) 进一步简化图6.19(b)给出的结构化设计。
7. 某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易
中的每股价格和股数有关的附加手续费。
如果交易总金额少于1000元,则基本手续费为交易金额的8.4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。
当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。
当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。
当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。
要求:
(1) 用判定表表示手续费的计算方法。
(2) 用判定树表示手续费的计算方法。
8. 画出下列伪码程序的流图,计算它的环形复杂度。
这个程序的逻辑有什么问
题吗?
软件工程导论(第五版) 13
9. 把统计空格程序的Jackson图(图6.13)改画为等价的程序流程图和盒图。
10. 人机对话由操作员信息和系统信息交替组成。
假设一段对话总是由操作员信息开始
以系统信息结束,用Jackson图描绘这样的人机对话过程。