软件系统开发技术试题(一)一、单项选择题(本大题共10小题,每小题1分,共10分)1. 设计软件结构一般不确定( D )A.模块之间的接口B.模块间的调用关系C.模块的功能D.模块内的局部数据2. 软件结构化设计中,好的软件结构应该力求做到( B )A.顶层扇出较少,中间扇出较高,底层模块低扇入B.顶层扇出较高,中间扇出较少,底层模块高扇入C.顶层扇入较少,中间扇出较高,底层模块高扇入D.顶层扇入较少,中间扇入较高,底层模块低扇入3. 两个模块都使用同一张数据表,模块间的这种耦合称为( A )A.公共耦合B.内容耦合C.数据耦合D.控制耦合4. 划分模块时,下列说法正确的是( A )A.作用范围应在其控制范围之内B.控制范围应在其作用范围之内C.作用范围与控制范围互不包含D.作用范围与控制范围不受限制5. 重用率高的模块在软件结构图中的特征是( B )A.扇出数大B.扇入数大C.扇出数小D.内聚性高6. 面向对象建模得到的三个模型,其中核心的模型是( A )A.对象模型B.功能模型C.逻辑模型D.动态模型7. 从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是( C )A.详细设计阶段B.概要设计阶段C.需求分析阶段D.测试和运行阶段8.对UML的叙述不正确的是( D )A.UML统一了Booch方法、OMT方法、OOSE方法的表示方法。
B.UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
C.UML融入了软件工程领域的新思想、新方法和新技术。
D.UML仅限于支持面向对象的分析与设计,不支持其它的软件开发过程。
9.以下哪个软件生存周期模型是一种风险驱动的模型( C )A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型10.以下哪一项对模块耦合性没有影响( D )A.模块间接口的复杂程度B.调用模块的方式C.通过接口的信息D.模块内部各个元素彼此之间的紧密结合程度二、填空题(本大题共10小题,每空2分,共20分)1.数据流图描绘数据在系统中___流动和处理_______的过程。
P40122.为了便于对照检查,测试用例应由输入数据和预期的__输出结果(输出数据)____两部分组成。
P1623.面向对象分析的目的是对_____目标系统______进行建模。
4. 结构化方法总的指导思想是__自顶向下_____逐层分解。
5. 在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为___偶然内聚_____。
6. 用来模拟被测模块的上级调用模块的模块称为__驱动模块_____7.一个模块的作用域指受该模块内一个__判定____影响的所有模块的集合。
8. 在用况图中,关联是参与者和用况(USE CASE )之间的唯一关系。
9. RUP 的突出特点是一种以用况(Use Case )为驱动的、以体系结构为中心的、迭代增量式开发。
10. 在RUP 中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。
三、名词解释题(本大题共6小题,每小题3分,共18分)1.软件生存周期模型答:从概念上来讲,软件生存周期模型是一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。
从应用的角度来说,软件生存周期模型为组织软件开发活动提供了有意义的指导。
2.系统模型答:简单地说,模型是任一抽象,其中包括所有的基本能力、特性或一些方面,而没有任何冗余的细节。
进一步地说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内个模型元素以及它们之间的语义关系。
3.白盒测试法答:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
白盒法也不可能进行穷举测试。
4.信息隐蔽答:信息隐蔽是指在每个模块中所包含的信息(包括具有特定语义的数据和处理过程)不允许其他不需要这些信息的模块访问。
5. 测试用例答:为了发现程序中的故障而专门设计的一组或多组测试数据。
6. 类答:类是一组具有相同属性、操作、关系和语义的对象的描述。
四、简答题(本大题共5小题,每小题6分,共30分)1. 简述演化模型以及可适应的情况,为什么?答:简述演化模型如图所示:演化模型主要是针对事先不能完整定义需求的软件开发。
在用户提出待开发系统的核心需求的基础上,软件开发人员按照这一需求,首先开发一个核心系统,并投入运行,以便用户能够有效地提出反馈,接着,软件开发人员根据用户的反馈,实施开发的迭代过程。
32.答:结构化分析方法给出了5数据存储是数据的静态结构。
数据源是数据流的起点; 其他软件系统。
3. (1)方式及传递的信息。
(2))的联系越紧密,则它的内聚性就越高。
4.泛化: 泛化是用况之间的一般到USE CASE B 的泛化,指出A 是B 的特殊情况。
扩展:记为《extend 》,的一个扩展关系,指出了USE CASE B 的一个实例可以由A 说明的行为予以扩展(),并依据该扩展点定义的位置,A 说明的行为被插入到B 中。
包含:记为《include 》,USE B 的一个包含,指出A 的一个实例将包含B 说明的行为,即这一行为将包含在A 5. —系统中可标识的软件成分,以DFD 转化为MSD给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计。
五、应用题(本大题共2分,第2小题12分,共22分)14答:2.下列是某程序的N-S 图(1)请将其转换成PAD 图(2)请将其转换成伪码表示。
答:(1)PAD 图(2)伪码表示:beginif L1 thenBegin S1;while L2 dobegin S2;if L3 then S3else S4;endendelse S5;end;5软件系统开发技术试题(二)一、单项选择题(本大题共10小题,每小题1分,共10分)1.以下哪个软件生存周期模型是一种风险驱动的模型( C )A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型2.结构化分析建立功能模型的工具是( B )A.DFD B.判定树/判定表C.DD D.结构化语言3.模块中所有成分结合起来完成一项任务,该模块的内聚性是( A )A.功能内聚B.顺序内聚C.通信内聚D.逻辑内聚4.以下哪一项对模块耦合性没有影响( D )A.模块间接口的复杂程度B.调用模块的方式C.通过接口的信息D.模块内部各个元素彼此之间的紧密结合程度5.检查软件产品是否符合需求定义的过程称为( A )A.确认测试B.集成测试C.系统测试D.单元测试6.下面关于详细设计的叙述中,错误的是( B )A.程序流程图可以描述结构化程序B.程序流程图不能描述结构化程序C.NS图描述的程序一定是结构化的D.PAD图描述的程序一定是结构化的7.集成测试是为了发现( A )A.接口错误B.编码错误C.性能、质量不合要求D.功能错误8.结构化程序设计,主要强调的是( C )A.程序的执行效率B.模块的内聚C.程序的可理解性D.模块的耦合9.下面关于文档的叙述,错误的是( A )A.文档是仅用于说明使用软件的操作命令,不包括软件设计和实现细节B.文档是软件产品的一部分,没有文档的软件就不成为软件C.高质量文档对于转让、变更、修改、扩充和使用有重要的意义D.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量10.面向对象开发方法中,将在面向对象技术领域内占主导地位的标准建模语言是( C )A.Booch方法B.Coad方法C.UML语言D.OMT方法二、填空题(本大题共10小题,每小题2分,共20分)1.为了克服软件危机,1968年北大西洋公约组织的工作会议上首先提出了____软件工程___的概念。
2.变换型数据流图是由输入、和输出三部分组成的。
3.软件产品在交付使用之前一般要经过______单元测试______、集成测试、确认测试和系统测试。
674.子类自动共享父类数据结构和方法的机制是_____继承性____,这是类之间的一种关系。
5.G .J .Myers 提出:软件测试是为了发现__程序错误____而执行程序的过程。
6. 状态图反映了状态与_____事件与状态____________的关系。
7.两个或两个以上的模块共同引用一个全局数据项,这种耦合被称为公共耦合。
8. 用况之间可以具有三种关系,即泛化、扩展和包含。
泛化是用况之间的一般/特殊关系。
9. RUP 的突出特点是一种以用况(Use Case )为驱动的、以体系结构为中心的、迭代增量式开发。
10. 在RUP 中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。
三、名词解释题(本大题6小题,每小题3分,共18分)1.软件工程答:软件工程定义为:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。
2.软件生存周期答:软件生存周期是软件产品或系统的一系列相关活动的全周期。
从形成概念开始,历经开发、交付使用、在使用中不断修订和演化,直到最后被淘汰,让位于新的软件产品” 。
3.用况答:用况(use case)是对一组动作序列的描述,系统执行这些动作应产生对特定的参与者有值的、可观察的结果。
4. 软件需求分析:答:就软件需求分析而言,即为:系统化地使用问题域术语,给出该问题的模型5. 模块化:答:把一个待开发的软件分解成若干简单的、具有高内聚低耦合的模块,这一过程称为模块化。
6. 类的操作答:操作是服务的一个实现,由该类的任意对象为其行为所要求的。
四、简答题(本大题共5小题,每小题6分,共30分)1. 简述瀑布模型以及可适应的情况,为什么?答:瀑布模型如图所示:(1)软件生存周期分为若干规定阶段并规定了各开发阶段的活动,项目的开发依次经过:需求、设计、编码和单元测试、集成以及维护—这一基本路径。
(2)在每一阶段提交以下产品:软件需求规约、设计文档、实际代码、测试用例、最终产品等。
工作产品(又称可提交的产品)流经“正向”开发的基本步骤路径。
(3)“反向”步骤流表示对前一个可提交产品的重复变更(又称为“返工”)。
瀑布模型可适应的情况◆在开发中,向下、渐进的路径占支配地位。
也就是说,需求已被很好地理解;过程设计人员也很清楚:开发组织非常熟悉为实现这一模型所需要的过程(或经过培训后,熟悉什么时候来支持这一项目,以实现这一模型所需要的过程)。
2.数据字典的作用是什么,它有哪些条目?答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。