软件工程精彩试题及问题详解.docx
- 文档编号:23722272
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:24
- 大小:161.11KB
软件工程精彩试题及问题详解.docx
《软件工程精彩试题及问题详解.docx》由会员分享,可在线阅读,更多相关《软件工程精彩试题及问题详解.docx(24页珍藏版)》请在冰豆网上搜索。
软件工程精彩试题及问题详解
4.面向对象的分析方法主要是建立三类模型,即(D)。
A)系统模型、ER模型、应用模型B)对象模型、动态模型、应用模型
C)E-R模型、对象模型、功能模型D)对象模型、动态模型、功能模型
5.在E-R模型中,包含以下基本成分()。
A)数据、对象、实体B)控制、联系、对象C)实体、联系、属性D)实体、属性、操作
9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:
-1.001,-1.0,1.0,1.001.设计这组测试用例的方法是(c)
A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法
10、详细设计的基本任务是确定每个模块的(d)A.功能B.调用关系C.输入输出数据D.算法
11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:
(a)
A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据
13.面向数据流的设计方法把(D)映射成软件结构。
A.数据流B.系统结构C.控制结构D.信息流
14.内聚程度最低的是(A.偶然)内聚A.偶然B.过程C.顺序D.时间
15.确定测试计划是在(D)阶段制定的.A.总体设计B.详细设计C.编码D.测试
16.需求分析的产品是(D)A.数据流程图案B.数据字典C.判定表D.需求规格说明书
17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(C)
A.数据库设计B.数据通信C.数据定义D.数据维护
18.(D)引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A.增量模型B.喷泉模型C.原型模型D.螺旋模型
(× )2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。
(×)4、软件需求分析的任务是建立软件模块结构图。
(√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。
(×)7、进行总体设计时加强模块间的联系。
(×)8、编码时尽量多用全局变量.
(√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。
1.软件生命期各阶段的任务是什么?
答:
软件生命期分为7个阶段:
1、问题定义:
要解决的问题是什么
2、可行性研究:
确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:
系统必须做什么
4、总体设计:
系统如何实现,包括系统设计和结构设计5、详细设计:
具体实现设计的系统
6、实现:
编码和测试7、运行维护:
保证软件正常运行。
2、软件重用的效益是什么?
答:
1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?
答:
① 自顶而下渐增测试
优点:
不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。
缺点:
需要存根程序,底层错误发现较晚。
② 自底而上渐增测试优点与缺点和自顶而下渐增测试相反。
4、提高可维护性的方法有哪些?
答:
在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。
在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。
在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。
在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。
在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。
在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。
为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。
简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。
【解答】测试过程按4个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。
单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。
集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
与其相关的文档是集成测试计划和软件需求说明书。
确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
与其相关的文档是确认测试计划和软件需求说明书。
平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。
与其相关的文档:
用户指南、使用手册等。
四、应用题(每题8分,共40分)
1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需要再次定货的零件应该列出下述数据:
零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。
零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。
当某种零件的库存数量少于库存量临界值时就应该再次定货。
要求:
画出系统的数据流图。
答:
2、将下面给出的伪码转换为N-S图和PAD图。
voidroot(floatroot1,floatroot2){
i=1;j=0;while(i<=10){输入一元二次方程的系数a,b,c;p=b*b–4*a*c;
if(p<0)输出“方程i无实数根”;elseif(p>0)求出根并输出;
if(p==0){求出重根并输出;j=j+1;}i=i+1;}输出重根的方程的个数j;}
【解答】
(1)N-S图
(2)PAD图
3、:
输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出”不能构成三角形”.要求:
1.用程序流程图表示该问题的算法;2.计算程序复杂度;3.设计路径覆盖的测试用例。
答:
路径:
1.①—②—③—④—⑥—⑦
2.①—②—⑤—⑥—⑦
3.①—⑤—⑥—⑦
4.①—②—③—⑤—⑥—⑦
程序复杂度=3+1=4测试用例
路径
测试用例(A,B,C)
结果
1
A=3,B=4,C=5
A=3,B=4,C=5
2
A=5,B=8,C=2
不能构成三角形
3
A=2,B=2,C=5
不能构成三角形
4
A=5,B=2,C=2
不能构成三角形
4、某航空公司规定,乘客可以免费托运重量不超过30kg的行李。
当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定树表示与上述每种条件组合相对应的计算行李费的算法.答案:
5、一个软件公司有许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产品,每个部门由部门名字唯一确定。
该公司有许多员工,员工分为经理,工作人员和开发人员。
开发部门有经理和开发人员,管理部门有经理和工作人员。
每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,每位经理可主持多个开发项目,建立该公司的对象模型。
答案:
1、C2、B3、B4、D5、C6、A7、B8、D9、C10、D11、A12、D13、A14、A15、A16、D17、C18、D19、D20、DB卷
1、瀑布模型把软件生命周期划分为8个阶段:
问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:
计划阶段、开发阶段和(运行阶段)。
2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,需求分析阶段出错,对软件的影响最大。
3、在结构化的瀑布模型中,(需求分析阶段)定义的标准将成为软件测试中的系统测试阶段的目标。
4、软件工程的出现主要是由于(软件危机的出现)5软件工程方法学的目的:
使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发的环境。
6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为相互补充。
7、UML是软件开发中的一个重要工具,它主要应用于基于对象的面向对象的方法。
8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(原型化方法)。
9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(数据流)。
10、软件开发的瀑布模型,一般都将开发过程划分为:
分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(编码阶段)。
11、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。
主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。
螺旋模型将瀑布模型和演化模型相结合,并增加了(风险分析),它建立在()的基础上,沿着螺线自内向外每旋转一圈,就得到(原型)的一个新版本。
喷泉模型描述了(面向对象)的开发模型,它体现了这种开发方法创建软件的过程所固有的(递归)和(开发各阶段之间无“间隙”)的特征。
12、以下不属于白盒测试技术的是(等价类划分)。
13、为改正软件系统中潜藏的错误而进行的维护活动称为(纠错性维护)。
14、保证软件质量的手段有复审、复查、管理复审和测试等。
其中复审发生在软件生命周期的(每个阶段结束之前)。
15、完整的系统设计应包括(计算机系统设计、应用软件设计、数据库设计和网络设计)。
16、在信息系统的物理模型中,表示系统各个物理组成部分之间的数据流动情况的工具是(系统流程图)。
二、填空题(每题1分,共10分)
系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
2、成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。
3、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:
深度优先策略和(宽度优先策略)。
4、在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。
5、详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。
6、所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。
7、独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。
8、设计任何一个人机界面,一般必须考虑(系统响应时间、用户帮助机制、错误信息处理和命令方式四个方面。
9、在软件测试中,已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行的方法称为(白盒)测试法。
10、(耦合度)是对软件结构中模快间关联程度的一种度量。
1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
()
2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
()
3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
()
4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
5.流程图也称为程序框图是最常用的一种表示法。
6.面向数据设计方法一般都包括下列任务:
确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。
7.理想的人机界面应针对具有典型个性的特定的一类用户设计。
()
8.数据输入的一般准则中包括尽量增加用户输入的动作。
()9.用穷举测试是较现实的测试方法。
()
10、在软件维护过程中改善性维护是为适应环境的变化而修改软件的活动。
()
1、软件维护是软件生命周期的重要组成,而影响维护的因素较多,除了人员因素、技术因素和管理因素外,还有程序自身的因素,具体影响因素可归纳为:
a)软件系统的规模;b)软件系统的年龄;c)软件系统的结构。
试回答以下问题:
1)给出上述三项因素的解释,阐述“规模”、“年龄”和“结构”的具体含义。
(5分)
2)扼要分析影响维护工作量的因素,即分析可能增加维护工作量的因素和可能减少维护工作量的因素。
(5分)
3)简单传述软件可维护性度量的含义。
(5分)
2、可行性研究报告的主要内容有哪些?
(5分)3、系统设计的内容是什么?
(10分)
五、综合题(10分)某电器集团公司下属的厂包括技术科、生产科等基层单位。
现在想建立一个计算机辅助企业管理系统,其中:
生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间 技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。
试写出以上系统中生产科和技术科处理的软件结构图。
1.C2.C3.A4.C5.C6.B7.C8.B9.B10.C11.⑴B⑵D⑶A⑷D⑸A12、D13、A14、A15、C16、D
1、信息流动2、经济3、宽度优先策略4、中间数据结构或中间文件5、使用的数据6、软件问题
7、在其他独立路径中未有过8、系统响应时间9、白盒测试法10、耦合度
1、√2、X3、√4、√5、√6、√7、√8、X9、X10、X
1、系统的规模。
指软件系统规模的大小,系统规模越大,维护困难越大。
系统的年龄。
系统运行时间越长,可能经过多次修改,从而造成维护的困难。
系统的结构。
系统结构合理与否,会给维护带来困难。
2、增加维护工作量的因素有:
软件系统的年龄和规模、结构合理性、程序复杂性、用户的数量、应用的变化和文档的质量。
减少维护工作量的因素有:
结构化技术的使用、自动化工具的使用、数据库技术应用、高性能软件使用、新的软件技术的应用。
3、可维护性度量表示软件系统维护工作的强度或维护工作量的大小。
人们为了度量可维护性,常将可维护性度量问题分解为对:
可测试性、可理解性、可修改性、可移植性、可靠性、有效性和可用性的度量。
2、个可行性研究报告的主要内容如下:
(1)引言:
说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。
(2)可行性研究前提:
可行性研究前提。
说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:
说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:
所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。
(5)所建议系统的经济可行性分析:
说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:
说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。
(7)其他可供选择方案:
逐一说明其他可供选择的方案,并说明未被推荐的理由。
(8)结论意见:
说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。
3、系统设计阶段先从高层入手,然后细化。
系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。
系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。
每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。
分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。
后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。
各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:
估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
(4)数据存储管理。
系统中的内部数据和外部数据的存储管理是一项重要的任务。
通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。
必须确定全局资源,并且制定访问全局资源的策略。
全局资源包括:
物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。
分析模型中所有交互行为都表示为对象之间的事件。
系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计。
设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
五、综合题
画出生产科图的给6分,画出技术科的给4分。
1.软件项目的可行性研究要进行一次()需求分析。
A.详细的 B.全面的 C.简化的、压缩的 D.彻底的
2、系统流程图用于可行性分析中的()的描述。
A.当前运行系统 B.当前逻辑模型 C.目标系统 D.新系统
3、程序的三种基本控制结构的共同特点是()
A.不能嵌套使用 B.只能用来写简单程序 C.已经用硬件实现 D.只有一个入口和一个出口
4、维护中,因误删除一个标识符而引起的错误是()副作用 A.文档 B.数据 C.编码 D.设计
5、()是以提高软件质量为目的的技术活动A.技术创新 B.测试 C.技术创造 D.技术评审
6、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
A.开发过程基于功能分析和功能分解 B.强调需求分析重要性
C.把对象划分成类,每个对象类都定义一组数据和方法 D.对既存类进行调整
7、原型化方法是用户和设计者之间执行的一种交互构成,适用于()系统。
A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时
8、为了提高测试的效率,应该( )。
A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据
9、使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。
A.程序的内部逻辑 B.程序的复杂结构 C.使用说明书 D.程序的功能
11、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为()。
A.可用性B.可靠性C.正确性D.完整性
12、瀑布模型的关键不足在于()
A.过于简单B.不能适应需求的动态变更C.过于灵活D.各个阶段需要进行评审
13、软件维护的副作用主要有以下哪几种()
A.编码副作用、数据副作用、测试副作用B.编码副作用、数据副作用、调试副作用
C.编码副作用、数据副作用、文档副作用D.编码副作用、文档副作用、测试副作用
14、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高()。
A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法
15、软件工程方法学的目的是:
使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。
A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质
16、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。
主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。
螺旋模型将瀑布模型和演化模型相结合,并增加了
(1),它建立在
(2)的基础上,沿着螺线自内向外每旋转一圈,就得到
(2)的一个新版本。
喷泉模型描述了(3)的开发模型,它体现了这种开发方法创建软件的过程所固有的(4)和(5)的特征。
(1)A、系统工程B、风险分析C、设计评审D、进度控制
(2)A、模块划分B、子程序分解C、设计;D、原型
(3)A、面向对象B、面向数据流C、面向数据结构D、面向事件驱动
(4)A、归纳B、推理C、迭代D、递归
(5A、开发各阶段之间无“间隙”B、开发各阶段分界明显C、部分开发阶段分界明显D、开发过程不分段1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
()
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
()
3.JAVA语言编译器是一个CASE工具。
()。
4.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。
()
5.软件模块之间的耦合性越弱越好。
()6.数据库设计说明书是一个软件配置项()
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
()
8.过程描述语言可以用于描述软件的系统结构。
()
9.如果通过软件测试没有发现错误,则说明软件是正确的10.快速原型模型可以有效地适应用户需求的动态变化。
11.模块化,信息隐藏,抽象和逐步求精的软件设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 精彩 试题 问题 详解