软件工程试题及答案课件Word文档格式.docx
《软件工程试题及答案课件Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程试题及答案课件Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?
① 自顶而下渐增测试
优点:
不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。
缺点:
需要存根程序,底层错误发现较晚。
② 自底而上渐增测试
优点与缺点和自顶而下渐增测试相反。
4、提高可维护性的方法有哪些?
在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。
在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。
在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。
在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。
在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。
在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。
为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。
简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。
【解答】
测试过程按4个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。
单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。
集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
与其相关的文档是集成测试计划和软件需求说明书。
确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
与其相关的文档是确认测试计划和软件需求说明书。
平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。
与其相关的文档:
用户指南、使用手册等。
36.简述容错技术的四种主要手段,并解释。
结构冗余:
包括静态冗余、动态冗余和混合冗余。
信息冗余:
为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
时间冗余:
指重复执行指令或程序来消除瞬时错误带来的影响。
冗余附加技术:
指为实现上述冗余技术所需的资源和技术。
36.可行性报告的主要内容有哪些?
解:
一个可行性研究报告的主要内容如下:
(1)引言:
说明编写本文档的目的;
项目的名称、背景;
本文档用到的专门术语和参考资料。
(2)可行性研究前提:
说明开发项目的功能、性能和基本要求;
达到的目标;
各种限制条件;
可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:
说明现有系统的处理流程和数据流程;
工作负荷;
各项费用支出;
所需要各类专业技术人员的数量;
所需要各种设备;
现有系统存在什么问题。
(4)所建议系统的技术可行性分析:
所建议系统的简要说明;
处理流程和数据流程;
与现有的系统比较的优越性;
采用所建议系统对用户的影响;
对各种设备、现有软件、开发环境、运行环境的影响;
对经费支出的影响;
对技术可行性的评价。
(5)所建议系统的经济可行性分析:
说明所建议系统的各种支出,各种效益;
收益投资比;
投资回收周期。
(6)社会因素可行性分析:
说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;
说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:
逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:
说明项目是否能开发;
还需要什么条件才能开发;
对项目目标有什么变动等。
[解析]做软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为八个基本内容。
37.系统设计的内容是什么?
系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:
估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
(4)数据存储管理。
系统中的内部数据和外部数据的存储管理是一项重要的任务。
通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。
必须确定全局资源,并且制定访问全局资源的策略。
全局资源包括:
物理资源,如处理器、驱动器等;
空间,如盘空间、工作站屏等;
逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;
如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。
分析模型中所有交互行为都表示为对象之间的事件。
系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计。
设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
38.什么是软件危机?
软件危机的表现是什么?
其产生的原因是什么?
软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。
一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。
在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下四个方面:
(1)经费预算经常突破,完成时间一再拖延。
由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。
主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。
由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。
(2)开发的软件不能满足用户要求。
开发初期对用户的要求了解不够明确,未能得到明确的表达。
开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。
(3)开发的软件可维护性差。
开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。
程序结构不好,运行时发现错误也很难修改,导致维护性差。
(4)开发的软件可靠性差。
由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。
造成软件危机的原因是:
(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用不断增加。
(4)软件开发技术落后。
(5)生产方式落后。
6)开发工具落后,生产率提高缓慢。
39.软件质量保证应做好哪几方面的工作?
软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:
(1)采用技术手段和工具。
质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。
(2)组织正式技术评审。
在软件开发的每一个阶段结束时,都要组织正式的技术评审。
国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。
(3)加强软件测试。
软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。
(4)推行软件工程规范(标准)。
用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。
(5)对软件的变更进行控制。
软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。
(6)对软件质量进行度量。
即对软件质量进行跟踪,及时记录和报告软件质量情况。
[解析]软件的质量保证是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,是软件工程管理中的重要内容。
40.请使用PAD图和PDL语言描述在数组A
(1)~A(10)中找最大数的算法。
解:
PDL语言:
N=1
WHILEN<
=10DO
IFA(N)<
=A(N+1)MAX=A(N+1);
ELSEMAX=A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD图:
[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。
四、应用题(每题8分,共40分)
42.某电器集团公司下属的厂包括技术科、生产科等基层单位。
现在想建立一个计算机辅助企业管理系统,其中:
生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间
技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。
试写出以上系统中生产科和技术科处理的软件结构图。
画出生产科图的给6分,画出技术科的给4分。
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3。
1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需要再次定货的零