1、软件工程期末试题(一)单项选择题1.瀑布模型的存在问题是( B )A用户容易参与开发 B缺乏灵活性C用户与开发者易沟通 D适用可变需求2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )A.软件工程 B.软件周期C.软件危机 D.软件产生3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是( B )A.数据、公共、标记、控制 B.数据、标记、控制、公共C.控制、数据、标记、公共 D.控制、数据、公共、标记4.在 SD 方法中全面指导模块划分的最重要的原则是( D )A.程序模块化 B.模块高内聚C.模块低耦合 D.模块独立性5软件测试的目的是( B )
2、。A 评价软件的质量 B. 发现软件的错误C 找出软件的所有错误 D. 证明软件是正确的6在设计测试用例时, ( A )是用得最多的一种黑盒测试方法。A 等价类划分 B. 边界值分析 C. 因果图 D. 判定表7. 需求分析最终结果是产生( B )。 A. 项目开发计划 B. 需求规格说明书C. 设计说明书 D. 可行性分析报告8. Jackson 图中,模块框之间若有直线连接,表示它们之间存在(B )。 A. 调用关系 B. 组成关系 C. 链接关系 D. 顺序执行关系9. 软件详细设计的主要任务是确定每个模块的( C )。 A. 功能 B. 外部接口 C. 算法和使用的数据结构 D. 编程
3、 10为了提高软件的可维护性,在编码阶段应注意( D )A.保存测试用例和数据 B.提高模块的独立性C.文档的副作用 D.养成好的程序设计风格11设年利率为 i,现存入 p 元,若计复利,n 年后可得钱数为(B )Ap(1+in) Bp(i+1) nCp(1+i)n Dp(i+n)12在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是( A ) 。A 状态图 B. 数据流图 C. 系统结构图 D. 时序图13. 对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。A. 结合 B. 隐藏 C. 封装
4、D. 抽象14. 软件详细设计的主要任务是确定每个模块的( A )。 A. 算法和使用的数据结构 B. 外部接口 C. 功能 D. 编程15. 软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A. 调用关系 B. 组成关系 C. 链接关系 D. 顺序执行关系16. 需求分析最终结果是产生( B )。 A. 项目开发计划 B. 需求规格说明书 C. 设计说明书 D. 可行性分析报告17. 在详细设计阶段,经常采用的工具有( A )。A. PAD B. SA C. SC D. DFD18.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( C )A.教正性维护 B.适应性
5、维护C.完善性维护 D.预防性维护20为了提高软件的可维护性,在编码阶段应注意( D )A.保存测试用例和数据 B.提高模块的独立性C.文档的副作用 D.养成好的程序设计风格1面向对象开发方法包括 OOA、OOD 和 OOP 三部分。2效益分有形效益和无形效益两种。有形效益可用纯收入、货币时间的价值、投资回收期等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。3.从应用特点的角度来看,我们可以把高级语言分为基础语言、结构语言和专用语言三类。设计题已知有如下的伪代码程序:STARTI:=1;WHILE i:AjTHEN BLOCKtemp:=min;min:=Aj;Aj
6、:=temp;ENDBLOCKENDIF;j:=j+1;ENDDOi:=i+1;ENDDOSTOP要求:请用盒图描述。 i:=1iAj ttemp:=minmin:=AiAj:=tempj:=j+1 i:=i+1软件工程期末试题(二)一, 判断题(正确的在括号内打上“,错误的打上“.每题 1.5 分,共 15 分)Warnier 方法也是一种面向数据结构的设计方法,其逻辑更严格.() PAD 图在设置了五种基本控制结构后,还允许递归调用. () 你为了加快软件维护作业的进度,应尽可能增加维护人员的数目.() 当验收测试通过,软件开发就完成了.() 完成测试作业后,为了缩短源程序的长度应删除程序
7、中的注解.() 系统结构图是精确表达程序结构的图形表示法.因此,有时也可以将系统结构图当作系统流程图使用.() 在程序调试时,找出错误的位置和性质比改正该错误更难.() 以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一.() 二,单项选择题(每小题 2 分,共 10 分) 试判断下列叙述中,哪 个(些)是正确的(D)a,软件系统中所有的信息流都可以认为是事务流 b,软件系统中所有的信息流都可以认为是变换流c,事务分析和变换分析的设计步骤是基本相似的A,a B,b C,c D,b 和 c进行需求分析可使用多种工具,但(B)是不适用的.A,数据流图 B,PAD
8、 图 C,判定表 D,数据词典在详细设计阶段,经常采用的工具有(A).A,PAD B,SA C,SC D,DFD详细设计的结果基本决定了最终程序的(C)A,代码的规模 B,运行速度 C,质量 D,可维护性使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准.A,程序的内部逻辑 B,程序的复杂程度C,该软件的编辑人员 D,程序的功能 三,多项选择题(每题 2 分,共 10 分.注:正确得 2 分,漏选得 1 分,多选,错选不得分.) (ABCD)可以作为模块.A,子程序 B,函数 C,过程 D,编译文件下面哪些测试属于黑盒测试(BCD).A,路径测试 B,等价类划分 C,边界值分析 D,
9、错误推测 E,循环测试下列属于度量效益方法的是(ABCD).A,货币的时间价值 B,投资回收期 C,收入 D,投资回报率软件维护的策略包括(BCD).A,定期检测维护 B,改正性维护 C,适应性维护 D,完善性维护下列属于软件测试过程的是(ABE).A,单元测试 B,组装测试 C,内核测试 D,法律验证 E,确认测试 四,简答题(每题 6 分,共 24 分) 1、耦合性和内聚性有几种类型 其耦合度,内聚强度的顺序如何 答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高强:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚:弱 2、请举例说明什
10、么是多态,什么是重载 答案:多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象.也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为.当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法.3、重载是指一个类中有多个同名的方法,但在操作数个数或类型上有区别.例: public class Aint age;String name;public void setValue(int i) age=i; public void setValue(String s
11、) name=s; 4、什么是数据字典 简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2 分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3 分) 5、简述编码风格的重要性.答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠
12、而又容易维护的程序,编码的风格在很大程度上决定着程序的质量. 面向对象的测试和传统开发方法的测试有什么不同 答案:(1)二者都可以分成四个阶段进行.但传统测试最小单元是模块,而在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块.(2)因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的组装策略意义不大. 每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,因为在构成类的各个部件之间存在各种直接的和非直接的交互.对于面向对象系统的组装测试,存在两种不同的测试策略. 软件工程期末试卷(三)2004 年下半年期末考试(开放教育本科)计算机科学与技术专业
13、软件工程试题 B2005 年 1 月题 号 一 二 三 四 五 六 总 分分 数一、填空题(每空 1 分,共 20 分)1 软件生存周期一般可分为_、可行性研究、_、设计编码、_、运行与维护阶段。2 IPO 图由_、_和_三个框组成。3 软件_。4 软件测试的方法有_和_(即黑盒法) 。5 Jackson 图除了可以表达程序结构外,还可以表达_ 。6 详细设计的工具有图形工具、_和_。7 _和_共同构成系统的逻辑模型。8 成本估计方法主要有_、_和算法模型估计三种类型。9 在需求分析阶段常用的图形工具有_、_、_三种。答案:填空题(每空 1 分,共 20 分)1、问题定义 需求分析 测试2、输
14、入 处理 输出3、程序 文档4、分析方法 非分析方法5、数据结构6、表格工具 语言工具7、数据流图 数据字典8、自顶向下估计 自底向上估计9、层次方框图 Warnier 图 IPO 图二、单项选择题(每小题 2 分,共 10 分)1. 系统流程图是描绘( )的传统工具。A、逻辑系统 B、数据结构 C、状态变迁 D、物理系统2. 下列模块独立性最强的是( )A、非直接耦合 B、数据耦合 C、公共耦合 D、内容耦合3. 下列哪个阶段不属于软件生存周期的三大阶段( ) 。A、计划阶段 B、开发阶段C、编码阶段 D、维护阶段4. 常见的软件概要设计方法有 3 大类,其中以数据流图为基础构造模块结构的是
15、( ) 。A、 Jackson 方法和 LCP(Wanier)逻辑构造方法B、 结构化设计方法(SD)C、 面向对象设计方法(OOD)D、快速原型法5. 使用白盒测试方法时,确定测试数据应根据( )和指定的覆盖标准。A、程序的内部逻辑 B、程序的复杂程度C、该软件的编辑人员 D、程序的功能答:1、D 2、A 3、C 4、A 5、A三、多项选择题(每题 2 分,共 10 分)1. ( )可以作为模块。A、子程序 B、函数 C、过程 D、编译文件2. 关于内容耦合的描述正确的是( ) 。A、 内容耦合是最高程度的耦合B、 高级语言一般设计成允许内容耦合的形成C、 应该尽量使用内容耦合D、 如果一个
16、模块可以直接调用另一模块,则可以称为内容耦合3. 下列属于度量效益方法的是( ) 。A、货币的时间价值 B、投资回收期B、收入 D、投资回报率4. 软件维护的策略包括( ) 。A、 定期检测维护B、 改正性维护C、 适应性维护D、 完善性维护5. 下列不属于软件测试过程的是( ) 。A、单元测试 B、组装测试 C、内核测试 D、法律验证答:1、ABCD 2、AD 3、ABC 4、BCD 5、CD四、判断题(正确的在括号内打上“” ,错误的打上“” 。每题 2 分,共 20 分)1. Warnier 方法也是一种面向数据结构的设计方法,其逻辑更严格。 ( )2. PAD 图在设置了五种基本控制结
17、构后,还允许递归调用。 ( )3. 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。( )4. 当验收测试通过,软件开发就完成了。( )5. 完成测试作业后,为了缩短源程序的长度应删除程序中的注解。( )6. 在进行总体设计时应加强模块间的联系。 ( )7. 系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。 ( )8. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 ( )9. 在程序调试时,找出错误的位置和性质比改正该错误更难。 ( )10. 以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一。 ( )
18、答:15: 610: 五、简答题(每题 5 分,共 20 分)1 什么是软件危机?为什么会产生软件危机?答:软件危机是指软件在开发和维护过程 遇到的一系统严重问题,主要包含二方面的问题,一是如何开发利用软件,三是如何维护数量不断膨胀的已有软件.产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。2 什么是软件的生存周期?包括哪几个部分?答:个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。它包括制定计划、需求分析、软件设计、程序
19、编写、软件测试、运行维护等。3 什么是黑盒测试法?答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。4 耦合性和内聚性有几种类型? 其耦合度、内聚强度的顺序如何?答:低:非直接耦合 数据耦合标记耦合 控制耦合外部耦合 公共耦合内容耦合 :高强:功能内聚 信息内聚 通信内聚 过程内聚 时间内聚 逻辑内聚 巧合内聚:弱 六、分析设计题(共 20 分)1. (8 分)假设开发某个计算机应用系统的投资额为 3000 元,该计算机应用系统投入使用后,每年可以节约 1000 元,5
20、年内可能节约 5000 元。3000 元是现在投资的钱,5000 元是 5 年内节省的钱,假定年利率为 12%,请计算该系统的纯收入,投资回收期,投资回收率。答:年 节省 利率 现在价值 累计现在价值1 1000 112 892.86 892.862 1000 1.25 800.00 1692.863 1000 1.40 714.29 2407.154 1000 1.57 636.94 3044.095 1000 1.76 568.18 3612.27计算该系统的纯收:3612.27-3000=612.27投资回收期:3+(3000-2407.15)/(3044.09-2407.15)=3.9
21、3投资回收率为 r3000=1000/(1+r)+1000/(1+r) 2+1000/(1+r)3+1000/(1+r)4+1000/(1+r)5解得 r=20%2. 求一组数组中的最大数, 数组表示为 A(n) ,n1,2n 的自然数。(12 分)1) 请画出程序流程图(4 分)2) 请画出该算法的 N-S 图(4 分)3) 请用 PAD 图来表示该算法(4 分)答:(1)(2)1. (4 分)(3)软件工程期末试卷(四)一、 简答题(25%, 每小题 5 分):1请简要说明需求分析的三个层次包括那些主要内容。软件需求包括三个不同的层次业务需求、用户需求和功能需求也包括非功能需求。业务需求反
22、映了组织机构或客户对系统、产品高层次的目标要求。用户需求文档描述了用户使用产品必须要完成的任务。功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。2为什么要设计独立性强的模块以及如何判断模块的独立性?第一3分,耦合1分,内聚1分模块独立性强,则:(1)系统容易开发(2)系统可靠性高(3)系统容易维护判断模块独立性的基本原则:“耦合小,内聚大”3若现有类已经进行了彻底的测试,为什么必须对从现有类中实例化的子类进行重新测试?使用的场景:3分 2分因为父类和子类的运行环境是不同的。另外,如果是多重继承会显著地增加派生类的复杂程度,导致一些难以发现的隐含错误。4要开发质量“非常好”的软件,请从软件工程的角度分析其利与弊。利:3分;弊:2分利:容易维护,用户比较满意弊:成本高,周期长