《软件工程复习试题及答案.doc》由会员分享,可在线阅读,更多相关《软件工程复习试题及答案.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、填空题(在下划线上填写正确的答案,每题2分,共20分)1 等价划分 是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。2 数据流图 和数据字典共同构成了系统的逻辑模型。3盒图也称为 N-S图 。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。4软件有效性,指软件系统的时间和 空间 效率。5IPO图的中文意思是 结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output) 。6数据流图有四种基本成分: 源、终点,处理,存储,数据流 。7数据字典有以下四种条目: 数据流、数据项、数据存储、基本加工 ,其中数据项是组成数据流和数据存储的
2、最小元素。8软件工程中的结构化分析SA是一种面向 数据流 的分析方法。9软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个 由下而上 的过程。10耦合性 与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到 高内聚、 低 耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。1常用的软件开发模型有 瀑布模型、原型模型 、 增量模型、 螺旋模型 、喷泉模型 。2软件生存周期一般可分为 问题定义、可行性研究、 需求分析 、设计、编码、 单元测试 、运行与维护阶段。3软件测试的步骤:单元 、 集成 、 系统 、 验收 。4数据流图的基本符号包括 加工 、 数据流 、 数据存
3、储文件、 汇点 。5IPO图由 输入 、处理和 输出 三个框组成。这个图的特点是能够直观的显示三者之间的关系。6面向对象方法是一种运用 类 、 实例 、 属性 、 重载 、消息传送、多态性等概念来构造系统的软件开发方法。7分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的 逆向工程 。8程序测试是对编码阶段的语法错、 语义错 和 运行错 进行查找的编码执行活动。9为了获得较高的模块独立性,尽量设计出具有 高内聚和 低藕合 性能的模块。10常用的测试方法有 黑盒测试 和 白盒测试 。1. 可行性研究,应从技术可行性 、 经济可行性 、 运行可行性 和法律和社会效益可行性等方面研究。2
4、. 构化程序设计中程序主要的3种基本控制结构是顺序结构 、选择结构、循环结构。3. 软件生存周期中时间最长、花费精力和费用最多的一个阶段是 维护 阶段。4. 需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是 功能需求 。7分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的 逆向工程 。8程序测试是对编码阶段的 语法错、 语义错 和 运行错 进行查找的编码执行活动进行查找的编码执行活动。9为了获得较高的模块独立性,尽量设计出具有 低耦合 和 高内聚 性能的模块。1若年利率为i,n年后可得钱数为F则现在的价值 F/(1+N*i) 。2在结构化分析中用来描述加工逻辑的主要工具
5、是结构化语言、判定表、 判定树 。3软件测试的步骤:制定测试计划、设计测试用例、实施测试、测试后调试、做测试报告4自顶向下结合的渐增测试法,在组合模块时有两种组合策略:深度优先策落和 宽度优先策略 。7结构化方法总的指导思想是 自顶向下 逐层分解。1软件工程的三要素包括方法、工具和过程。2面向对象方法用对象行为和属性的分解取代了传统方法的功能分解。3HIPO图是由一组IPO图和一张H图组成。4在前期需求明确、资料完整的情况下尽量采用瀑布模型。5用例图中,如果在完成某个功能时,偶而会执行另一个功能,则用扩展关系来表示。6UML中用一端为空心三角形的连接表示泛化关系。7类是类图的主要的主要部件,由
6、类名、属性、操作3部分组成。8UML中的泛化关系就是通常所说的继承关系。9部署图用连接实线关系表示各节点之间的通信路径。10选择关系命令,可以看到Rose中对应图形的分类。1软件危机具有下列表现( D )。1、对软件开发成本估计不准确 2、软件产品的质量往往靠不住3、软件常常不可维护 4、软件成本逐年上升A、 1、2和3 B、 1、3 和4 C、 2、3和4 D、 以上都正确2 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。A 运行和维护阶段 B、设计阶段 C、代码实现阶段 D、测试阶段3下列属于软件的特点的是( D )。A、软件是一种逻辑实体,具有
7、抽象性 B、软件在使用过程中没有磨损、老化C、软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D、以上都正确4软件开发技术不包含( D )。A、 软件开发方法学 B、 软件工程环境 C、软件工具 D、 软件质量度度量5需求分析阶段最重要的技术文档是( B )。A、 设计说明书 B、 需求规格说明书 C、 可行性分析报告 D、 用户手册6数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C )A、数据库设计 B、 数据通信 C、 数据定义 D、 数据维护7需求分析阶段的研究对象是(C )。A、系统分析员要求 B、用户要求 C、软硬件要求 D、 系统要求8结构化方法的基本
8、原则是(B )。A 、模块化 B、抽象与分解 C、信息隐藏 D、 逐步求精9耦合度最高的是(B )耦合。A、环境耦合 B、内容耦合 C、控制耦合 D、 数据耦合10画软件结构图时应注意调用关系只能是( B )A、从下到上 B、 从上到下 C、从左到右 D、 从右到左11软件设计中划分模块的一个准则是(C)A、低内聚低耦合 B、低内聚高耦合 C、高内聚低耦合 D高内聚高耦合12Jackson设计方法是由英国的M.Jackson提出的,它是一种面向(C)的软件设计方法。A、对象 B、数据流 C、数据结构 D、控制结构13使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。A、程序内部逻辑
9、 B、程序的复杂程度 C、该软件的编辑人员 D、程序的功能14软件维护工作的最主要的部分是(A)。A、校正性维护 B、适应性维护 C、完善性维护 D、预防性维护15PDL是(B)语言。A、高级程序设计语言 B、伪码式 C、中级程序设计语言 D、低级程序设计语言16下列哪个阶段不属于软件生存期的三大阶段( C )。 A、定义阶段 B、开发阶段 C、编码阶段 D、维护阶段17可维护性的特性中相互促进的是( A )A、可理解性和可测试性 B、效率和可移植性 C、效率和可修改性 D、效率和结构好18软件测试的目标是(B)A、证明软件是正确的 B、发现错误、降低错误带来的风险 C、排除软件中所有的错误
10、D、与软件调试相同19软件生命周期中所花费用最多的阶段是( D )A、详细设计 B、软件编码 C、软件测试 D、软件维护20详细设计的基本任务是确定每个模块的(D)设计。A、功能 B、调用关系 C、输入输出数据 D、算法22下列哪个图不是N-S图的构件( C )。 23对于下列各图,有关描述中正确的是( A )。 A、数据A和B同时输入变成C B、数据A变换成B和C C、数据A或数据B(不能同时)输入,变换成C D、数据A变换成B和C24下列哪种方法不是度量效益的方法( B )。 A、货币的时间价值 B、算法模型估计 C、投资回收期 D、纯收入25下列描述错误的是( D )。 A、数据流图将各
11、种信息流抽象成数据流的形式 B、数据流图不反映控制关系、调用关系 C、数据流图不反映处理逻辑的先后顺序 D、数据流图不反映数据的流向26软件是(C)A、 处理对象和处理规则的描述 B、程序C、程序及文档D、计算机系统27软件需求规格说明的不应包括(B)。A、主要功能 B 算法的详细描述 C、用户界面及运行环境 D、软件性能28程序的三种基本控制结构是(B)。A、过程、子程序和分程序 B、顺序、选择和循环 C、递归、迭代和回溯D、调用、返回和转移29面向对象的分析方法主要是建立三类模型, 即(D)。A、 系统模型、ER模型、应用模型 B、对象模型、动态模型、应用模型B、 ER模型、对象模型、功能
12、模型D、动态模型、功能模型、对象模型30ER模型中,包含以下基本成分(C)。A、数据、对象、实体 B、控制、联系、对象 C、实体、联系、属性 D、实体、属性、操作1快速原型模型的主要特点之一是 (B)A开发完毕才见到产品 B及早提供工作软件 C及早提供全部完整软件 D开发完毕才见到工作软件2软件工程学的一个重要目标是 (D )A提高程序的执行效率 B降低程序对存储空间的要求C定义各种软件开发过程模型 D提高软件的可维护性3需求分析最终结果是产生 ( B )A项目开发计划 B需求规格说明书C设计说明书 D可行性分析报告4数据存储和数据流都是处于不同状态的 (D)A 分析结果 B 事件 C 动作
13、D 数据5数据字典是对数据定义信息的集合,它所定义的对象都包含于 ( A ) A数据流图 B程序框图 C软件结构 D方框图6、结构化设计是一种面向(A )的设计方法。A数据流 B数据库 C数据结构 D程序7下列可哪个组件不是用例图的基本组件 (D)A参与者 B用例 C系统 D文档8用例图中用例之间存在各种关系,但不包括 (B)A包含 B关联 C泛化 D扩展9常用动词或动词词组来表示 (C )A对象 B类 C关联 D属性10组件图中通常不包括下列哪个元素 (A)A对象 B组件 C接口 D依赖11好的软件结构应该是 (B )A高耦合、高内聚 B低耦合、高内聚C高耦合、低内聚 D低耦合、低内聚12静
14、态模型不包括 (C )A类图 B组件图 C状态图 D部署图13动态模型不包括 (D)A交组图 B活动图 C状态图 D部署图14Rose模型文件的扩展名为 (A)Amdl Bvsd Cpdf Dswf15逆向工程是什么过程 ( C )A模型到代码 B设计到实现C代码到模型 D类图到包图三、判断题(正确的在括号内打上“”,错误的打上“”。每小题2分,共20分)1软件开发的主要任务是写程序。 ( F )2测试只能证明程序有错误,不能证明程序没有错误。( T )3模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 ( F )4在编制程序时,首先应该对程序的结构充分考虑
15、,不要急于开始编码,而要写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排等等。( F )5程序设计风格指导原则提出,尽量多使用临时变量。 ( F )6用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 ( F )7发现错误多的程序模块,残留在模块中的错误也多。 ( T )8为了加快软件维护作业的进度,应尽可能增加维护人员的数目。( F )9软件维护就是改正软件中的错误。 ( F )10质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动。( T )11螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示。( F )12模块越多,开发成本越小
16、。 ( F )13内聚是指一个软件结构内各个模块之间互连程序的度量。 ( F )14结构化设计属于面向数据流的设计方法。 ( T )15详细设计是在概要设计之后进行的。它利用概要设计的结果,对系统中的每个模块给出足够的过程性描述。 ( T )16程序运行过程中出现错误叫做容错。 ( F )17软件测试的目的是证明程序没有错误。 ( F )18白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程。 ( F )19 PAD图在设置了五种基本的控制结构后,还允许递归调用。 ( T )20独立编译是指一个大程序的不同程序单元分别编译,然后重新连接整个程序段。 ( T )31开发软件
17、就是编写程序(F)32 系统测试的主要方法是白盒测试法,主要进行功能、性能测试、安全性测试及可靠性测试等(F)33编程时应尽可能利用硬件特点以提高程序效率(F)。34软件需求分析的任务是建立软件模块结构图(F)。35尽可能使用高级语言编写程序(T)。36以结构化方法建立的系统模型就是数据流图(F)。37进行总体设计时加强模块间的联系(F)。38编码时尽量多用全局变量(F)。39用CASE环境或程序自动化生成工具来自动生成一部分程序(T)40软件测试是要发现软件中所有错误(F)( T )41、软件开发、设计几乎都是从头开始,成本和进度很难估计。( F )42、V(G)值越高的程序往往是越不复杂、
18、越不容易出问题的程序。( F )43、适应性维护是改进软件未来的可维护性和可靠性。( F )44、软件是逻辑产品,软件质量较容易直接度量。( T )45、随着软件复杂性的不断提高,软件的维护难度越来越大。( F )46、软件也会磨损和老化。( F )47、用穷举法测试是较现实的测试方法。( T )48、面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和循环三种基本形式表示数据等步骤。( F )49、测试计划、测试用例,出错统计和有关的分析报告一般不用长期保存。( F )50、McCabe建议模块规模应满足:V(G)20。( T )61总体设计阶段要设计软件体系结构。( F )
19、62、软件即程序。( T )63采用对象设计系统时,首先建立系统的物理模型。( T )64用例图中,扩展关系表示为虚线箭头加“extend”。( T )65实现关系指定两个实体之间的一个合同。( T )66状态图通常作为对类图的补充。( F )67聚集关系是关联的一种形式,表示两个类之间的一般与特殊关系。( T )68一个完整的模型必然描述系统的静态和动态两个方面。( F )69状态图是对多个对象建模。( T )70在UML中,组件是指系统中可替换的物理部分。四简述题(每小题5分,共10分)1. 测试用例测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,
20、以便测试某个程序路径或核实是否满足某个特定需求。2. 模块化模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。3. 对象指行动或思考时作为目标的事物4. 软件生命周期各阶段的任务是什么? 答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、 运行维护:保证软件正常运行。5软件重用的效益是什么?答:1、软件重用可以显著地改善软件的质量和可
21、靠性。2、软件重用可以极大地提高软件开发的效率。3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。6结构化程序设计方法的基本要点。1.采用自顶向下、逐步求精的程序设计方法:在需求分析、概要设计中,都采用了自定向下、逐层细化的方法。2.使用三种基本控制结构构造程序,分别是顺序、选择和循环,这三种基本结构的共同点是、单入口、单出口,为自顶向下、逐步求精的设计方法提供了具体的实施手段。3.采用主程序员的组织形式:指开发程序的人员组织方式应用由一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加上一些专家、其他技术人员组成小组。7什么是软件生命周期?8简述什么是回归测试?回归测试
22、-在集成测试过程中每当一个新模块结合进来时,程序就发生了变化:建立了新的数据流路径,可能出现新的I/O操作,激活新的控制逻辑。这样变化有可能使原来正常的功能出现了问题;所谓回归测试是指重新执行已经做过的测试的某个子集,以保证上述变化没有带来非预期的错误。9简述软件危机有哪几种表现?软件开发和维护的过程中常遇到的问题(1)对于软件开发的成本和进度的估计很不准确。(2)开发的软件产品不能完全满足用户要求。(3)开发的软件可靠性差,软件产品质量差。(4)软件通常没有适当的文档资料。(5)软件的可维护性差。(6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势,效率低。(7)软件价格昂贵。
23、10什么是软件工程?(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。11简述需求分析的任务?需求分析的任务就是:确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册12详细设计的主要任务是什么?答:详细设计的基本任务包括:1、为每个模块进行详细的算法设计 2、为模块内的数据结构进行设计 3、对数据库进行物理设计 4、其他设计 5、编写详细设计说
24、明书 6、评审13自顶而下渐增测试与自底向上渐增测试各有何优缺点答:自顶而下渐增测试 优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。 缺点:需要存根程序,底层错误发现较晚。 自底而上渐增测试 优点与缺点和自顶而下渐增测试相反。14软件生存期各阶段的主要任务。15简述需求分析工作可以分成哪四个方面?软件需求分析有三个基本原则?需求分析阶段的基本过程包括四个方面:对问题的识别,分析与综合,制定规格说明以及评审。(1)问题识别,系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计划。然后进行功能需求、性能需求、环境需求、可靠性需
25、求安全保密需求、用户界面需求、资源使用需求等方面的工作。(2)分析与综合,分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析他们是否满足功能需求,是否合理。(3)制定规格说明,编写需求分析的文档。(4)需求分析评审。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格执行。需求分析的原则 1.必须能够传达和理解问题的数据域和功能域2.必须按自顶向下、逐层分解的方式对问顺进行分解和不断细化3.给出系统的逻辑模型和物理模型16以G.J.Myers的观点,简述对软件测试的目的。1、为了发现错误而执行程序的过程2、一个好的用例能
26、够发现至今尚未发现的错误的测试3、一个成功的测试是发现至今尚未发现的错误的测试17在面向对象的系统开发过程中,每个阶段需要建造的模型各有什么作用?1、在面向对象的系统开发过程中,每个阶段要建造不同的模型2、需求分析阶段建造的模型用来捕获系统需求分析3、设计阶段的模型是分析模型的扩充,为实现阶段作指导性和技术性的解决方案4、实现阶段的模型是真正的源代码及编译后的组件5、发布阶段是描述系统物理上的架构18 .软件工程的原则是什么?软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。五、应用题(20分)1某厂对部分职工重新分配工作的政策是:年龄有20岁以下者,初中文化
27、程度脱产学习,高中文化程度当电工;年龄有20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度者当技术员;年龄有40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用结构化语言,判定树或判定表描述上述问题的加工逻辑。职工重新分配工作的政策可描述为:若年龄在20岁以下 则初中文化程度脱产学习 高中文化程度当电工 若年龄在20-40岁之间 则中学文化程度男性当钳工女性当车工 大学文化程度都当技术员 若年龄在40岁以上者 则中学文化当材料员 大学文化当技术员年龄条件40初中高中中学大学中学大学男女操作脱产学习电工钳工车工技术员材料员初中脱产学习年龄40中学村料员高中技术员2假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的乘客超重部分每公斤收费6元,对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表表示每种条件组合相对应的计算行李费的算法。用判定树表示计算行李费的算法用判定树表示计算行李费的算法3以自己开发软件(可以是C、C+、VC+、VF、甚至是汇编、等其他语言)的一个自选项目为背景,应用软件工程方法进行策划,要求必须给出项目描述,主要的软件工程过程的描述以及各阶段的主要内容
限制150内