1、软件工程复习题一、 选择题,请从四个可选项中选择正确答案。1、下面哪个选项不是软件工程研究的内容( )。A. 生产无故障的软件 B. 精通一门编程语言C. 生产满足用户需求的软件 D.生产及时交付的软件2、软件工程的出现是由于 ( )A.软件危机 B.计算机硬件技术的发展 C.软件社会化的需要 D.计算机软件技术的发展3、软件工程的研究内容具有层次化结构,最底层是质量保证层,中间层是( ),最上层是工具层。A.过程层 B.方法层 C.过程层和方法层 D.系统层4、美国著名软件工程专家B.W.Boehm于1983年提出了软件工程的( )条基本原理。A.7 B.5 C.3 D.125、结构化分析方
2、法(SA 法)使用的主要描述工具有( )。A.数据库 B.模块结构图 C.PAD 图 D.分层的DFD 图6、源程序的效率与( )阶段确定的算法的效率直接有关。A概要设计 B. 总体设计 C. 单元设计 D. 详细设计7、可行性研究的主要任务是( )。A.确定系统做什么 B. 确定性能 C.确定功能 D. 进行一次简要的需求分析8、内容耦合是模块间最紧密的耦合,( )是模块间最松散的耦合。A数据耦合 B非直接耦合 C控制耦合 D外部耦合9、面向对象是“先”确定()“后”( )。A.属性/方法 B.数据结构/方法 C. 动作的主体/执行动作 D.动作10、UML是一种( )语言。A.高级编程 B
3、.可视化建模 C.分析方法 D.过程11、软件工程强调将( )的方法应用于软件的开发和维护过程之中。A.规范化 B.系统化 C.可度量 D.以上全部12、软件开发活动的顺序应该是( )。A.问题定义、可行性研究、需求分析、设计、编码和测试。B.问题定义、设计、可行性研究、编码和测试。C.需求分析、设计、编码和测试。D.需求分析、编码和测试、试运行。13、假定银行的存款年利率是2%,请问现在存5000元,两年后价值应为( )元。A.5202 B.4500 C.5100 D.471214、系统物理模型用( )表示。A.系统流程图 B.数据流程图 C.程序流程图 D.E-R图15、关于软件需求特性不
4、正确的描述是“软件需求具有()”。A.多变性 B.模糊性 C. 准确性 D.主观性16、DFD中的每个加工至少需要( )A.一个输入流 B.一个输出流C.一个输入或输出流 D.一个输入流和一个输出流17、PDL是描述处理过程( )。A.做什么 B.为什么做 C.怎么做 D.对谁做18、当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为( )A数据耦合 B公共耦合 C标记耦合 D内容耦合19、按照模块独立性,耦合程度由强至弱正确的顺序是( )。A.数据耦合、控制耦合、外部耦合、内容耦合B.控制耦合、数据耦合、内容耦合、外部耦合C.内容耦合、外部耦合、控制耦合、数据耦合D.外部耦合、内容
5、耦合、数据耦合、控制耦合20、UML 中,包图是一种( )。A.集合 B.数据结构 C.分组机制 D.对系统的动态描述21、反映收发消息的对象的组织结构,用于描述系统的行为是如何有系统的成分协作实现的是( )。A.顺序图 B.类图 C.合作图 D.组件图22、面向对象分析和设计的界限是( ),从分析到设计是一个逐渐扩充模型的过程。A.清晰的 B.模糊的 C.非线性的 D.确定的23、动态模型描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统“控制”特性。面向对象方法中,常用( )实现。A.状态图 B.交互图 C.活动图 D.以上全部24、不适合作为数据处理与数据库应用的语言是( )A
6、. SQL B. Cobol C. 4GL D. Lisp25软件工程中,只根据程序的功能说明而不关心程序内部逻辑的测试方法,称为( )测试。A.白盒法 B.灰盒法 C.黑盒法 D.综合法26、程序设计语言的技术特性不应包括( )。A.数据结构的描述性 B.抽象类型的描述性C.数据库的易操作性 D.软件的可移植性27、以下哪种测试方法不属于白盒测试技术( )。A.语句覆盖测试 B.边界值分析测试 C.条件覆盖测试 D.判断覆盖测试28、软件测试的主要特点是( )。 A软件测试的开销不大 B.软件测试要依靠工具 C软件不能进行“穷举”测试 D.软件测试要依靠人工 29、在软件生存期的维护阶段,继
7、续诊断和修正错误的过程称为( )。A.完善性维护 B.适应性维护 C.预防性维护 D.改正性维护30、不属于软件项目管理的是( )。A.开发机构能力评估 B.项目风险评估 C.质量监控 D.软件销售利润31、用( )模型描述和分析业务流程。A.静态 B.业务 C.数据 D.动态32、用( )描述系统与角色之间的接口。A. 表单 B.界面类 C.窗体 D.对话框33、对类进行详细设计,主要是设计类的( ),优化类之间的关系。A. 数据结构 B.处理流程 C. 属性和方法 D.算法34、面向对象设计强调定义( ),并且使它们相互协作来满足用户需求。A.软件对象 B.物理模型 C.E-R模型 D.接
8、口35、软件测试的目标是设计优秀的测试用例( )。A.最快速地找出程序中的问题B.以最小的代价、在最短的时间内尽可能多地发现软件中的错误C.保障程序的正确性D.区分出程序员的编程水平36、( )不符合软件测试原则。A.对每个测试结果进行检查,不漏掉已经出现的错误迹象B程序员应该仔细测试自己编写的程序代码C.程序员要避免测试自己编写的程序代码D.测试工作越早开始越好37、引起软件改变的原因主要有( )。A.运行环境变化 B. 需求变化 C.系统有错 D.以上全部38、( )针对开发过程中的程序、数据、文档提出使用和管理策略。A组织管理 B过程管理 C软件配置管理 D风险管理 39、现在人们更强调
9、程序代码的( )。A.可维护性 B.可移植性 C.可扩充性 D.高效性40、程序的三种基本控制结构,包括顺序结构、( )和循环结构。A.判断结构 B.说明结构 C.输入结构 D.输出结构41、软件、程序和代码是( )。 A.相同的软件概念 B.程序语言写的代码 C.计算机代码和数据 D. 三个不同的概念42、下面哪个选项不是软件工程研究的内容( )。A. 生产无故障的软件 B. 精通一门编程语言C.生产满足用户需求的软件 D.生产及时交付的软件43、SW-CMM是一种( )规范。A.编程规范 B.软件工作通用模型 C.软件设计模型 D.软件成熟度模型44、可行性研究实质上是在较高层次上、以较抽
10、象的方式进行( )的过程。A.详细软件设计 B.需求分析过程 C.深入的需求分析 D.测试设计45、与传统行业的生产相比较,软件的需求具有( )。A.主观性 B.稳定性 C.明确性 D.客观性46、源程序的效率与( )阶段确定的算法的效率直接有关。A概要设计 B. 总体设计 C. 单元设计 D. 详细设计47、画DFD 图的主要目的是( )。A.作为需求分析阶段用户与开发者之间交流信息的工具B.对系统的数据结构进行描述C.对目标系统的层次结构进行描述D.作为编码和测试的工具48、耦合度最高的是( )。A.外部耦合 B.内容耦合 C.控制耦合 D.数据耦合49、为了提高模块的独立性,模块之间最好
11、是( )。A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合50、UML是一种( )。A.建模工具 B.可视化的程序设计语言 C.可视化的建模语言 D.过程51、美国卡内基梅隆大学制定的SW-CMM是( )。A.软件工作规范 B.软件工作流描述 C.软件成熟度模型 D.软件描述的一般方法52、螺旋模型是一种考虑了( )的软件开发模型。A.效率 B.风险判断C.可移植性 D.安全性53、可行性研究的四大要素是( )。A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平C.经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性54、软件调研报告
12、是在( )提交的。A. 可行性分析之前 B. 需求分析之前 C.签合同之前 D.设计的时候55、描述软件需求通常不用哪个工具( )。A.数据流程图 B.数据字典 C.模块结构图 D.E-R图56、软件结构图中没有( )元素。A模块 B调用参数 C返回结果 D判断57、程序流程图与数据流程图的关系( )。A不确定 B数据流程图可以转换成程序流程图 C数据调用关系 D程序流程图可以转换成数据流程图58、包含关系用于构造多个用例( )。A. 关系 B.共性的部分 C.角色 D.特殊活动59、如果说用例F被用例T扩展,意思是( )。A.F是一个一般用例,T是一个特殊用例B.F是一个特殊用户,T是一个一
13、般用例C.都是一般用例D.都是特殊用例60、用( )对需要长久保存的信息进行建模。A.实体类 B.数据库表 C.E-R图 D.对象类61、面向对象程序设计的基本机制( )。A.继承 B.消息 C.方法 D.结构62表示对象相互行为的模型是( )模型。A. 动态模型 B. 功能模型 C. 对象模型 D. 状态模型63、对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,由( )实现。A.顺序图 B.类图 C.状态图 D.组件图64、对象实现了数据和操作的结合,使数据和操作( )于对象的统一体中。A结合 B隐藏 C封装 D抽象65、面向对象设计的步骤中
14、,正确的顺序是( )。A.系统构架设计、用例设计、类设计 B.系统构架设计、数据库设计和用户界面设计C.类设计、用例设计、构架设计 D.用例设计、构架设计、类设计66、软件维护过程中产生的副作用,一般是由()引起的。A.算法说明 B.修改程序 C.优先级 D.环境要求67、项目计划活动的主要任务是( )。A.估算项目的进度 B.分配工作量 C.计划资源使用 D.以上全部68、如果程序代码的( )好,则调试的成本就可以大幅度降低。A.性能比 B. 可扩充性 C. 可读性D.可移植性69、两个浮点数X0和X1比较相等时,应该用()比较。A.X0=X1 B.X1-X0 C. |X0-X1|1) AN
15、D (z=0) THEN x=x/y END IFIF(y=2) OR(x=l) THENx=x+lEND IFPRINT(x)END6、请给出软件工程七条基本原理中的任意6条基本原理。7、结构化程序设计的特征是什么?8、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与功能需求的区别?9、简述模块独立性,内聚与耦合。10、请为下面的程序设计符合判定覆盖的测试用例。int main()int a,b,c,x,y,z,t;scanf(“d%,d%,d%),&a,&b,&c,&t);if a5 & t10 y=20 else y=2;if c15 z=30 else z=3
16、;printf(“d%,d%,d%n”,x,y,z)11、什么是软件危机?试简述至少3种软件危机的典型表现。12、试分析结构化方法存在的主要问题是什么?13、面向对象的分析通常要建立三个模型,请问三个模型的作用?14、为了提高软件的可维护性,在软件开发过程的各个阶段要充分考虑软件的可维护性因素。15、设计下列伪程序的语句覆盖测试用例。BEGININPUT(A,B,C)IF A5 THEN X=10ELSE X=1END IFIF B10 THEN Y=20ELSE Y=2END IFIF C15THEN Z=30ELSE Z=3END IF PRINT(X,Y,Z) END16、 简述软件过程
17、模型17. 简述结构化分析的主要步骤18衡量模块独立性的两个标准是什么?它们各表示什么含义?19. 活动图与状态图的区别?20、一个程序片段如下,请设计符合判定覆盖的测试用例。if (a=5) & (b5) | (c1, z=0 y1, z0 y=1, z=0 y=1, z0 y=2, x=1 y=2, x1 y2, x=1 y2, x1条件组合覆盖设计测试用例: 实现1,6两种条件组合输入:x=4,y=2, z=0;实现 2,5两种条件组合输入:x=1,y=2, z=1;实现 3,8两种条件组合输入:x=2 ,y=1, z=0; 实现 4,7两种条件组合输入:x=1,y=1, z=1. 评分
18、标准:分析2分,每测试用例各1分。6. 答案原理1用分阶段的生命周期计划严格管理 原理2坚持进行阶段评审原理3实行严格的产品控制原理4采用现代程序设计技术原理5结果应能清楚地审查原理6开发小组的人员应该少而精原理7承认不断改进软件工程实践的必要性评分标准:每个原理1分7、答案结构化程序设计的特征如下:程序模块只有一个入口和一个出口、程序中只包含顺序、条件和循环三种控制结构。评分标准:6分。8、答案业务需求是用户高层领导机构决定的,它确定软件的目标、规模和范围。业务需求一般在进行需求分析之前就应该确定,需求分析阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。业务需求通常比较简洁
19、,大约三五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一部分。功能需求定义了软件开发人员必须实现的软件功能。用户从他们完成任务的角度对软件提出了用户需求,这些需求通常是凌乱的、非系统化的、有冗余的,开发人员不能据此编写程序。软件分析人员要充分理解用户需求,将用户需求整理成软件功能需求。开发人员根据功能需求进行软件设计和编码。评分标准:业务需求和功能需求各占3分。9、答案模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的。一般采用两个准则度量模块独立性。即模块间耦合和模块内聚。耦合是模块之间的互相连接的紧密程度的度量。 内聚是模
20、块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。评分标准:正确模块独立性(2分);正确说明内聚概念(2分);正确说明耦合概念(2分) 10、答案a5,t=0 a10b15c=15测试用例(不唯一):a=6 t=0 b=11 c=16; a=5 t=0 b=10 c=15评分标准:只要写出条件,不管测试用例是否给出都给3分;两组测试用例各占3分。11、答案(1)软件危机是指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。(2)典型表现: l 开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;l 软件需求分析不够充分,用户
21、不满意“已经完成”的软件系统。l 软件质量难于保证;l 软件维护困难;l 通常没有保留适当的文档资料l 开发成本逐年上升;l 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势评分标准:概念3分,表现3分(每条1分)。12、答案1) 结构化方法分析和设计阶段所应用的模型之间存在鸿沟。分析阶段的主要模型是数据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图之间需要进行转换。不同的人转换出的模块图可能不同,有很大的随意性。2) 需求分析的细化程度没有标准,只能凭借分析人员的经验自己把握;需求分析的过程是在一种瀑布形式,当需求变更时,功能变化就会导致软件模块结构发
22、生变化,造成了软件结构不稳定。3) 结构化程序设计将数据定义与处理数据的过程相分离,不利于软件复用。4) 结构化方法设计的软件结构不稳定,缺乏灵活性,可维护性差。评分标准:只要回答出以上三点即给6分。13、答案a)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。b)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构建对象模型的核心工具。c)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。面向对象方法中,常
23、用状态图、顺序图、合作图、活动图构建系统的动态模型。14、答案(1)在需求分析阶段应该明确维护的范围和责任,检查每条需求,分析维护时这条需求可能需要的支持,对于那些可能发生变化的需求要考虑系统的应变能力。(2)在设计阶段应该做一些表更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离出来,并且遵循高内聚、低耦合的原则。(3)编码阶段要保持源程序与文档的一致性、源程序的可理解性和规范性。(4)在测试阶段测试人员应该按照需求文档和设计文档测试软件的有效性和可用性,收集出错信息并进行分类统计,为今后的维护打下基础。评分标准:每条1.5分。15、答案因为每个判定表
24、达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或假各一次。下面是实现语句覆盖的典型测试用例:(1)使3个判定表达式之值全为假输入:A=1,B=1,C=1预期的输出:X=1,Y=2,Z=3 (2)使3个判定表达式之值全为真输入:A=20,B=40,C=60预期的输出:X=10,Y=20,Z=30评分标准:分析2分,每个用例各2分。16、 答案(1)软件过程是人们开发和维护软件及相关产品的活动、方法、实践和改进的集合。它明确定义软件过程中所执行的活动及其顺序,确定没一个活动内容和步骤,定义每个角色和职责。(2)软件工程将软件开发和维护
25、的过程概况为8个大的活动:问题定义、可行性研究、需求分析、总体设计、详细设计、编码、系统测试和运行维护。评分标准:每条3分。17. 答案(1)根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系图。(2)以初始数据流程图为基础,从数据流程图的输出端开始回溯。在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。(3)对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。(4)系统分析人员与用户一起对需求分析的结果进行复查。(5)根据细化的需求修订开发计划。(6)编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试
26、用的测试数据。评分标准:每条1分。18答案(1)两个定性的度量标准:耦合与内聚性。(2)耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。(3)内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。评分标准:每条2分。19. 答案(1)描述的重点不同:活动图描述的是从活动到活动的控制流;状态图描述的是对象的状态及状态之间的转移。(2)使用的场合不同:在分析用例、理解涉及多个用例的工作流、处理多线程应用等情况下,一般使用活动图;在显示一个对象在
27、其生命周期内的行为时,一般使用状态图。评分标准:每条3分。20、答案判断覆盖标准为,不仅使条语句都至少执行一次,还要使程序中每个分支都至少执行一次。也就是说,设计的测试用例使每个判定都有一次取“真”和“假”的机会。测试用例(不唯一):a=16 t=0 b=11 c=16; a=5 t=0 b=10 c=15评分标准:分析2分,每个测试用例各占2分。三、 应用题1.答案评分标准:只要画出工作量输入、审核、计算工资、工资入卡、基本信息管理和查询明细的基本流程就给满分,缺一个减1分;所用符号错误减2分,流程不通减2分。2答:参考答案3.答评分标准:只要画出申请、审计、审核、验收、结算和发票的基本流程就给满分,缺一个减1分;所用符号错误减2分,流程不通减2分。4.答:参考答案