8.多于三位数字。 后缀 4.四位数字。 9.有非数字字符;10.少于四位数字; 11.多于四位数字。
设计测试方案 方案 1 2 3 4 5 6 7 8 9 地区码 空白 三位数字 内容 前缀 200~999之间的三位数字 后缀 四位数字 四位数字 ()276-2345 (635)805-9321 (20A)723-4567 (33)234-5678 (5555)345-6789 (345)5A2-3456 (345)012-3456 (345)132-3456 (345)92-3456 (345)4562-3456 输入 预期 输出 有效 有效 无效 无效 无效 无效 无效 无效 无效 无效 无效 无效 无效 有非数字字符 少于三位数字 多于三位数字 有非数字字符 起始位为‘0’ 起始位为‘1’ 少于三位数字 多于三位数字 10 11 12 13 有非数字字符 (345)342-3A56 少于四位数字 (345)342-356 多于四位数字 (345)562-34567
第八章软件维护习题答案
1.为什么说软件的维护是不可避免的?
因为软件的开发过程中,一般很难检测到所有的错误,其次软件在应用过程中需
要随用户新的要求或运行环境的变化而进行软件的修改或完成功能的增删等,为了提高软件的应用水平和使用寿命,软件的维护是不可避免的。 2.软件的维护一般分为哪几类?
改正性维护:满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的。
适应性维护:对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件的活动;
完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作;
预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。 3.影响软件维护的因素有哪些?
开发方法:采用模块化详细设计文档有助于理解软件的结构、界面功能和内部流程;开发过程中严格而科学的管理规划及清晰可靠的文档资料对发生错误后的理解与纠错是至关重要的;开发过程中模块的独立程度越高,对软件修改越容易,对软件的改进和移植越方便。
开发条件:软件开发及维护人员的水平决定了软件开发的质量和维护的效率;开发过程中使用标准的程序设计语言和标准的操作系统接口,可以大大提高软件的可维护性;在测试过程中用例的有效性,可极大地减少软件存在的错误;其次使用规范化的文档资料可为维护提供更好的依据。 4.软件维护困难主要表现在什么方面?
(1)一般来讲,维护人员对开发人员写的程序及文档,理解都比较困难,对维护工作不会喜欢;
(2)维护持续时间都很长,在开发人员不在现场的轻快下,维护软件通常是很困难的;
(3)绝大多数软件在设计时对将来的软件修改都没有考虑或考虑不多,尤其未能在设计中强调并认真解决好模块的独立性,使软件的修改既困难又易发生差错。 5.决定软件可维护性的因素?
(1)软件的可理解性、可测试性、可修改性;
(2)文档描述符合要求、用户文档简洁明确、系统文档完整并且标准。 6.软件价格应该计入维护成本吗?为什么?
在软件的生命周期中,软件维护的工作量非常大,不同应用领域的维护成本差别也很大。一般大型软件的维护成本远远高于开发成本若干倍。因此软件价格中应该计入维护成本。
7.对前面各章中分析的各应用系统,提出改进和扩充功能的要求? (1)教材销售采购系统; (2)图书管理系统; (3)房产管理系统。 (略)
第九章软件工程管理习题答案 1.软件工程管理的内容?
(1)费用管理:对软件开发进行成本核算,使软件生产按照商品生产的规律办事。包括:以简单、科学方法估算软件开发费用,作为签定开发合同的根据;管理开发费用的有效使用,即用经济手段来保证产品如期按质完成。
(2)质量管理:按项目的质量保证计划,确保各个开发阶段的开发和维护工作全部按软件工程的规范进行,保证软件产品的质量。
(3)配置管理:通过对于程序、文档和数据的各种版本所进行的管理,保证资料的完整性与一致性。
(4)项目管理:制定《项目实施计划》,按照计划的内容组织和实施软件的工程化生产。最终目标是以合理的费用和进度,圆满完成计划所规定的软件项目。 2.软件项目有哪些特点?
(1)软件项目与其他任何产业项目不同,它是算法、思想、概念、组织、流程、效率、优化等的融合体;
(2)开发软件项目产品,在多数情况下,用户给不出明确的想法和要求。
(3)在开发过程中,程序及其相关的文档资料常常需要修改,在修改过程中又可能带来新的问题,且这些问题要在很久以后才会发现。
(4)在研制开发过程中,文档资料是不可缺少的,但工作量又是巨大的,往往也是人们不愿去作的。
(5)参加软件项目的工作人员,要求具有一定的业务水平和实际工作经验,而很难完全避免的人员流动,对工作的影响是很大的。离开的人员不仅带走了重要的信息,而且带走了工作经验。 3.软件成本估算的一般方法?
自顶向下估计:首先估算出项目总的开发成本,然后在项目内部进行成本分配。由少数专家参与,依靠他们过去的经验,将要开发的软件与过去开发过的软件进行\类比\,以估计新的软件开发所需要的工作量和成本。
自底向上估计:将开发任务分成若干子任务,子任务又分成子子任务,直到每一个单元内容足够明确为止;把各个任务单元的成本估计出来,汇合成项目的总成本。该
方法得到的结果比较接近实际。
4.为什么在软件开发中,不能用简单增加人员的方法来缩短开发时间? 大量软件开发实践说明:向一个已经延迟的项目追加开发人员,可能使它完成得更晚。因为当开发人员以算术级数增长时,而人员之间的通信将以几何级数增长,往往\得不偿失\。
5.影响软件质量的主要因素有哪些?
(1)产品运行:正确性、风险性、效率、完整性、健壮性和可用性; (2)产品修改:可理解性、可维护性、灵活性、可测试性; (3)产品转移:可移植性、可重用性和互运行性。 6.本章第四节的例子是某个软件项目的PERT图。 (1)找出关键路径和完成项目的最早时间;
(2)标出每项活动的最早起止时间与最迟起止时间。 (见该章教案举例)
7.将上题的内容改用Gantt图来表示。 (见该章教案举例)
第十章软件工程环境习题答案
1.软件工具是什么?按照软件生存周期可将其分为几类?
软件工具是指为支持计算机软件及其文档的开发、维护、模拟、移植或管理而研制的程序系统。按照软件生存周期可将其分为如下几类:
(1)需求分析:如数据流图绘制与分析工具、状态转换图绘制与分析工具、面向对象的模型和分析工具、快速原型构造工具、数据字典与数据库工具等。
(2)软件设计:如HIPO图、PDL(程序设计语言)或PAD(问题分析图)支持工具等。 (3)编码:集成化的程序员工作平台。如各种正文编辑器和常规的编译程序、汇编程序、连结程序及符号调试器等。
(4)软件测试:如静态分析器、动态覆盖率测试器、测试用例生成器、测试报告生成器及环境模拟器等。
(5)软件维护:如反汇编程序、反编译程序、程序结构分析器、源程序格式化工具、文档生成工具、源程序至PAD(问题分析图)或流程图的自动转换工具等。 2.评价软件工具的原则?
(1)易用性:友好的用户界面,用户乐于使用;
(2)对开发方法的支持:能满足预期的任务和功能需求,且能支持完成该任务所遵循的方法学;
(3)稳健性:具备自检测机制,即使在故障情况下也不会导致严重后果;
(4)性能:能使资源得到充分有效的利用;
(5)工具结构柔性:工具结构是柔软的、可修改的和可扩充的。 3.什么是软件开发环境?按技术发展方向分为哪几类环境?
将一组相关的软件工具按照一定的软件开发方法、软件生产和维护模型有机的组合起来,为特定的领域所使用,以支持从需求分析、设计、编码、测试直到维护的整个软件生命周期的计算机辅辅助开发程序系统称为软件开发环境。 按技术发展方向软件开发环境可分为以语言为中心的环境、面向结构化的环境和工具箱环境。
4.工具箱类软件工具的基本特点?
(1)在某种OS基础上通过一组小的实用工具构成;
(2)虽然各工具之间相互独立,但系统能提供统一的用户命令界面及工具之间统一的数据交换方式;
(3)工具箱中各工具之间是相互独立的,用户可根据需要进行灵活的增加和裁减; (4)工具箱环境中一般除了包括支持编码阶段的工具(如编辑程序、编译程序、汇编程序、连结程序调试程序等)外,还可包括支持大型软件开发方面的工具; (5)由于工具箱环境具有较强的通用性和灵活性,因而目前商品化的算机系系统上配置的软件环境大多属于这一类。如:UNIX程序设计环境、及VAX/VNSSET、PCDE、APCE等程序设计环境。 5.软件开发环境的组成与各成分的作用?
软件开发环境的构成:交互式人机界面、工具集及软件环境数据库。
交互式人机界面:人机界面(也称用户界面或人机对话)是用户与计算机系统之间相互交流的中间媒介。
工具集:工具集中软件工具是构成软件开发环境的基本成分。包含在软件开发环境中的工具不是各自封闭和分离的,而是与某种软件开发方法或某种软件加工模型相适应,并以一种综合的、一致的和整体连贯的形态来支持软件开发的全过程。 软件环境数据库:是各个软件工具之间共享数据及相互连结的统一媒介。 6.软件开发环境数据库在软件开发中的作用?
软件环境数据库是用于支持软件项目的大型数据库;软件环境数据库中主要存储软件开发过程中产生的有关产品或半成品的数据及各种项目数据,如源程序、测试数据和各种文档等,它构成软件开发和维护过程中所有项目数据的集中化的存储设施,是集成化软件开发环境的核心组成部分,也是各个软件工具之间共享数据及相互连结的统一媒介。
7.集成化项目支持环境IPSE的主要特征是什么?
(1)集成化和相互兼容的工具集; (2)支持项目的管理和控制; (3)支持配置管理;
(4)支持多种语言的软件开发; (5)支持硬件开发;
(6)允许宿主机和目标机使用分布式系统。 8.CASE的含义是什么?
CASE是计算机辅助软件工程的简称。简单的说,可以将CASE理解为:CASE=软件工程+自动化工具.从狭义角度解释它是一组工具和方法的结合;从广义角度解释它是辅助软件开发的任何计算机技术;从学术研究角度解释:它是软件开发方法、软件开发管理和软件工具等方面多年研究和发展的产物;从软件产业角度解释它是种类繁多的软件开发和系统集成的产品和软件工具的集合。 9.CASE工具一般分为几类?有什么区别?
CASE工具可以理解为除OS外的所有软件工具的总称。按对软件过程的支持范围CASE工具分为三类:一是工具:支持单个任务;二是工作台:支持某一软件过程或一个过程中的某些活动;三是环境:支持某些软件过程及相关的大部分活动。 10.工作台实现软件工具集成的方式?
工作台实现软件工具集成的方式是通过共享文件、共享仓库或共享数据结构来集成。