模拟试题(一)

一、名名解释(20分,每小题2分)
1. 软件工程
2. 软件生存周期模型
3. 数据流
4. 模块
5. 模块独立性
6. 软件可靠性
7. 软件配置项
8. 原型
9. 类
10. 消息
二、填空题(20分,每小题2分)
1.软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。在软件开发技术中,主要研究   、   和   。
2.维护的副作用有   、   、   三种。
3.技术可行性一般要考虑的情况包括:   、   、   。
4.在需求分析阶段要进行以下几方面的工作:问题识别、   、   。
5.软件设计是一个把   转换为   的过程,包括   和   。
6.在一个模块中,   反映模块的外部特性,   反映它的内部特性。
7.面向对象有三个基本要素。它们是   、   、   。
8.软件测试时需要三类信息:   、   和   。
9.为开发一个特定项目选择程序设计语言时,必须从   、   、   几方面考虑。
10。测试用例应由   和预期的   两部分组成。这样便于对照检查。
三、选择题(20分,每小题1分)
1.进行需求分析可使用多种工具,但   是不适用的。
A。数据流图B。判定表C。PAD图D。数据词典
2.模块   ,则说明模块的独立性越强。
A。耦合越强B。扇入数越高C。耦合越弱D。扇入数越低
3.数据处理问题的工作过程大臻分为三步,即取得数据、变换数据和给出数据。
A。变换型B。事务型C。结构化D。非结构化
4.为了最乡里实现目标系统,必须设计出组成这个系统的所有程序和文件,通常分为两个阶段完成,即  和过程设计。
A。程序设计B。结构设计C。系统设计D。详细设计
5.面向数据流的设计方法把  映射成软件结构。
A。数据流B。系统结构C。控制结构D。信息流
6.Jackson方法是一种面向 的方法。
A。对象B。数据结构C。数据流D。控制流
7.模块的内部过程描述就是模块内部的 ,它的表达形式就是详细设计语言。
A。模块化设计B。算法设计C。程序设计D。详细设计
8.软件的开发与维护划分为八个阶段,其中单元测试是在 阶段完成的。
A。概要设计B。详细设计C。编码D。测试
9.在结构测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(即分支覆盖)、路径覆盖等,其中 是最强是覆盖准则。
A。语句覆盖B。条件覆盖C。判定覆盖D。路径覆盖
10.在实现阶段要完成的工作之一是单元测试,单元测试国根据在 阶段中的规格说明进行。
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.软件质量保证即为了确定、达到和 需要的软件质量而进行的所有有计划、有系统的管理活动。
A。测试B。维护C。质量D。效率
17.为了提高软件的质量和 ,软件质量保证的主要任务有:为争不重复劳动,掌握开发新软件的方法等八类任务。
A。测试B。维护C。质量D。效率
18.在配置管理中,“检出”和“登入”处理实现了两个重要的变更控制要素,即 和同步控制。
A。异步控制B。同步控制C。基线控制D。存取控制
19.版本用来定义软件配置项的 。
A。演化阶段B。环境C。要求D。软件工程过程
20.支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统称为 。
A。软件工具B。软件环境C。软件过程D。软件模型

四、简答题(30分,每小题5分)
1.软件工程目标和内容是什么?
2.什么是结构化分析方法?该方法使用什么描述工具?
3.结构化程序设计基本要点是什么?
4.非渐增式测试与渐增式测试有什么区别?
5.快速原型模型有几种?各有何特点?
6.软件质量保证策略是什么?

五、应用题(10分)
一. 名词解释题

1. 用科学知识和技术原理来定义,开发,维护软件的一门学科.

2. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.

3. 数据流是数据在系统内传播路径,因此由一组成分固定的数据项组成.

4. 模块在程序中是数据说明,可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元.

5. 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.

6. 软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度.

7. 软件配是软件工程中产生的信息项,它是配置管理的基本单位.

8. 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性.

9. 具有相同或相似性质的对象的抽象就是类.

10. 对象之间进行通信的构造叫做消息.

二. 填空题

1. 软件开发方法,软件开发过程,软件开发工具和环境

2. 编码副作用,数据副作用,文档副作用

3. 开发的风险,资源的有效性,技术

4. 分析与综合,导出软件的逻辑模型,编写文档

5. 软件需求,软件表示,概要设计,详细设计

6. 功能,状态与接口,逻辑

7. 抽象,封装性,共享性

8. 软件配置,测试配置,测试工具

9. 技术特性,工程特性,心理特性

10. 输入数据,输出数据

三. 选择题

1. C

2. C

3. A

4. B

5. A

6. B

7. B

8. C

9. D

10. B

11. A

12. A

13. A

14. A

15. A

16. B

17. D

18. D

19. A

20. A

四. 简答题

1. 答:软件工程的目的是成功地建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要软低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高.

软件工程研究的主要内容是软件开发技术和软件开发管理两个方面.在软件开发技术中,主要研究软件开发方法,软件开发过程,软件开发工具和环境.在软件开发管理中,主要是研究软件管理学,软件经济,软件心理学等.

2. 答:结构化分析(SA)是面向数据流进行需求分析的方法.是一种建模活动,该方法使用简单易读符号,根据软件内部数据传递,交换的关系,自顶向下逐层分解,描绘出满足功能要求的软件模型.

结构化分析的主要思想是采取自顶向下逐层分解的分析策略,即面对一个复杂的问题析人员不可能一开始就考虑到问题所有方面以及全部细节,采取的策略往物主 是分解,把一个复杂的问题分成若干小问题后再分别解决,将问题的复杂性降低到人可以掌握的程度.分解可分层进行,先考虑问题本质的方面,忽略细节,形成问题高层概念,然后再逐层添加细节,即在分层过程中采用不同程度的”抽象”级别,最高层的问题抽象,而低层的软为具体.

结构化分析方法利用图形等半形式化的描术方式表达需求,简明易懂,用它们形成需求说明书中的主要部分.这些描述工具是:

1) 数据流图

2) 数据字典

3) 描述加工逻辑的结构化语言,判定表,判定树.

其中,”数据流图”描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等等.”数据字典”定义了数据流图中每一个图形元素.结构化训言,判定表或判定树则详细描述数据流图中不能被再分解的每一个加工.

3. 答:结构化程序设计方法的基本要点有三点:

1) 采用自顶向下,逐步求精的程序设计方法.在需求分析,概要设计中,都采用了自顶向下,逐导细化的方法.在详细设计中,虽然处于”具体”设计阶段,但在设计上模块内部处理过程中,仍可以逐步求精,降低处理细节的复杂程度.

2) 使用三种基本控制结构构造程序.任何程序都可由顺序,选择,重复三种基本控制结构构造.这三种基本结构的共同点是单人口,单出口,不但能有效的限使用GOTOygk句,还创立了一种新的程序设计思想,方法和风格,同时为自顶向下,逐步求精的设计方法提供了具体的实施手段

3) 主程序员组的组织形式.指开发程序的人员组织方式应采用由一个主程序员,一个后备程序员和一个程序管理员三人为核心,再加上一些专家和其他技术人员组成小组.这种组织形式突出了主程序员的领导,设计责任集中在少数人身上,有利于提高软件质量,并且能有效地提高软件生产率.

结构化程序设计方法是综合应用这些手段来构造高质量程序的思想方法.

4. 答:集成测试的方法主要有两种:非渐增式测试和渐增式测试.

1) 非渐增式测试:首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试.

2) 渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试.每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕.

渐增式与非渐增式测试的方法有以下区别:

1) 非渐增方式把单元测试和集成8测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试.而渐增式测试往往把单元测试与集成测试俣在一起,同时完成.

2) 非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少.

3) 渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现.

4) 渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错.

5) 渐增式比较彻底,已测试的模块和新的模块再测试.

6) 渐增式占用的时间较多,但非渐增式需更多的驱动模块.桩模块也占用一些是境.

7) 非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义.

5. 答:原型模型又称快速原型模型,它是增量模型的另一种形式.它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作.根据原型的不同作用,有三类原型模型:

1) 探索型原理.这种类型的原型是把原型用于开发的需求分析阶段,目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性.它主要针对开发目标模糊,用户与开发都对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求.

2) 实验型原型.这种原型主要用于设计阶段,考核;实现方案是否合适,能否实陋.对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性.

3) 演化型原型.这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统.它将原型的思想扩展到软件开发的全过程.

6. 答:质量保证策略的发展大致以分为以下三个阶段:

1) 以检测为重.产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量.

2) 以过程管理为重.把质量保证工作重点放在过程管理上,对制造过程的每一道工序都进行质量控制.

3) 以新产品开发为重.许多产品的质量问题源于新产品的开发设计阶段,因此在产品开发设计阶段就应采取有力措施来消灭由于设计原因而产生的质量隐患.

由上可知,软件质量应从产品计划和设计开始,贯穿于投稿售后服务的软件生存期的每一阶段中的每一步骤

posted on 2008-04-24 23:30  小顾问  阅读(2012)  评论(0)    收藏  举报