单项选择题
填空题
判断
简答题
一、 单向选择题
1、软件的发展经历了(D)个发展阶段。
A. 一 B.二 C.三 D.四
2、 需求分析的任务不包括(B)。
A.问题分析 B.系统设计 C.需求描述 D.需求评审。
3、一个软件的宽度是指其控制的(C)。
A.模块数 B.层数 C.跨度 D.厚度
4、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。
A .判定表和判定树 B.盒图 C.流程图 D.关系图
5、以下不属于逻辑覆盖的是(D)
A.语句覆盖 B.判定覆盖 C.条件覆盖 D.基本路径
1.软件需求规格说明的内容不应包括( B )。
A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能
2.软件生命周期中所花费用最多的阶段是( D )
A.详细设计 B.软件编码 C.软件测试 D.软件维护
3.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,
如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( A )
A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据
4…确定测试计划是在( A )阶段制定的.
A.总体设计 B.详细设计 C.编码 D.测试
5.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )
A.数据库设计 B.数据通信 C.数据定义 D.数据维护
6.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A.增量模型 B.喷泉模型 C.原型模型 D.螺旋模型
7.高级语言通常被分成三类,其中不包括(D)
A. 通用高级语言 B. 面向对象的语言 C. 专用语言 D. 自然语言
8.Jackson方法在需求分析阶段的主要步骤不包括(A)
A. 了解实体行为 B. 标识实体与行为 C. 生成实体结构图 D. 创建软件系统模型
9.实践表明,确定发生错误的位置和内在原因所需的工作量几乎占整个调试工作量的(D)%
A. 30 B. 50 C. 70 D. 90
10.为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为(D)
A. 纠错性维护 B. 适应性维护 C. 改善性维护 D. 预防性维护
11.从事物的组成部件及每个部件的属性、功能来认识事物。这种方法被称为(A)的方法。
A、面向对象 B、面向数据 C、面向过程 D、面向属性
12.判定表由四部分组成:左上部列出(B)。
A. 条件组合与动作之间的对应关系 B. 所有条件 C. 所有可能的动作 D. 可能的条件组合
13.面向对象的分析和设计(OOA&OOD)方法出现在20世纪(C)年代中期。
A. 50 B. 60 C. 70 D. 80
14、耦合度也可以分为七级:其中最松散的耦合是(A)。
A. 非直接耦合 B. 数据耦合 C. 特征耦合 D. 控制耦合
15.面向对象方法是将现实世界的事物以对象的方式( B )到计算机世界的方法。
A. 对应 B. 映射 C. 反映 D. 反射
16、盒图也称为(D)或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
A. 流程图 B. 框图 C. 判定表 D. N-S图
二、填空题
第三代语言也称为(高级)语言。
软件测试是软件投入运行(前),对软件需求分析、设计、实现的强有力的最终审查。
黑盒测试主要是测试软件是否满足(功能)需求。
(调试)的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。
软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。
软件可追踪性(traceability),是指根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行(逆向)追踪的能力。
瀑布模型是由W. Royce于1970年提出来的。又称为软件(生存周期)模型。
程序设计语言的(可维护)性通常指这种语言编写的程序被理解,被修改及调整和改进的难易程度。
三、判断题
( ×)系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等 测试。
( × )编程序时应尽可能利用硬件特点以提高程序效率.
( × )软件需求分析的任务是建立软件模块结构图。 ( 需求分析的产品是需求规格说明书)
( √ )尽可能使用高级语言编写程序
( × )以结构化分析方法建立的系统模型就是数据流图。
( × )进行总体设计时加强模块间的联系。 (高内聚低耦合的设计理念,在设计的时候应该是减少模块间的联系)
( × )编码时尽量多用全局变量.
( √ )用CASE环境或程序自动生成工具来自动生成一部分程序.
( × )软件测试是要发现软件中的所有错误。
软件开发、设计几乎都是从头开始,成本和进度很难估计。(√)
适应性维护是改进软件未来的可维护性和可靠性。(X)这是预防性维护
由于软件是逻辑产品,软件质量较容易直接度量。(X)
V(G)值越高的程序往往是越不复杂、越不容易出问题的程序。(X)
目前我国还没有颁布软件开发标准。(X)
按照功能,软部件可划分为系统软件和应用软件两类。(√)
如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解,是创建用户需求的数据流模型应遵循的规则。(√)
耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。(X) 设计软件时追求低耦合高内聚
在面向对象设计阶段则着重完成“如何做”的问题,也就是着重考虑对象的实现细节。(√)
随着软件复杂性的不断提高,软件的维护难度越来越大。(√)
软件的可维护性差是软件维护工作量和费用激增的直接原因。(√)
四、简答题(每小题4分,共20分)
软件生命期各阶段的任务是什么?
答:软件生命期分为7个阶段:
1、问题定义:要解决的问题是什么
2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性
3、需求分析:系统必须做什么
4、总体设计:系统如何实现,包括系统设计和结构设计
5、详细设计:具体实现设计的系统
6、实现:编码和测试
7、运行维护:保证软件正常运行。
软件重用的效益是什么?
1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
1、程序设计语言的三种类型和特点是什么?
1) 机器语言、汇编语言:依赖于机器,面向机器
2) 高级语言:独立于机器,面向过程或面向对象
3) 面向问题语言:独立于机器,非过程式语言(4GL) (2分)
2、软件危机
是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题
3、软件项目的质量管理——制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量
4、好的编程风格应遵循哪四条规则?
1)节简化
2)模块化
3)简单化
4)文档化
5、软件测试中按照错误的性质和范围进行分类可分为:“功能错误”及其它哪些错误?
程序设计语言有哪些特点?
1、一致性:指语言中采用的标记(Token)法协调一致的程度
2、二义性:指语言是否允许使用具有二义性的语句。允许使用二义性语句的语言在可理解性和可修改性上都要差一些。
3、紧致性:指程序员写程序时必须记忆的关于语言的信息总量。
4、局部性:指语言的模块化和信息隐藏特性。局部性差的语言必然会导致程序的复杂性增加。
可将软件生存周期划分为哪3个过程和哪9个阶段?
(1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。
(2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。
Coad/Yourdon面向对象的方法除了包含识别对象外还包括哪4个步骤?
标识对象的属性
标识对象的行为
识别对象所属的类
定义主题词
Jackson系统开发方法其核心思想是什么?
设计人机界面,必须考虑哪四个方面。
什么是测试用例?
SD方法能方便地将数据流图转换为软件结构,其过程分为哪五步?
1. 确定信息流的类型;
2. 划定流界;
3. 将数据流图映射为程序结构;
4. 提取层次控制结构;
5. 通过设计复审和使用启发式策略进一步精化所得到的结构。
已知有一个软件项目的记录,开发人员M=6人,其代码行数=20.2KLOC,工作量E=43PM,成本S=314000美元,错误数N=64,文档页数Pd=1050页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。0201
解:根据给出的已知数据,可得:
P = L / E =20.2 KLOC /43 PM = 0.47 KLOC / PM
= 470 LOC / PM
C = S / L = 314000美元 / 20.2 KLOC
= 15.54 美元 / LOC
EQR = N / L = 64个 / 20.2KLOC = 3.17 个 / KLOC
D = Pd / L = 1050 页 / 20.2 KLOC = 51.98 页 / KLOC
五、综合题(每小题10分,共20分)
1、选择语言时要考虑的因素有:项目的应用领域、项目中算法、计算的复杂性和其余哪些内容?
答:
1)项目中数据结构的复杂性
2)用户的性能需求
3)软件运行的环境
4)软件开发人员开发水平
5)可用的编译器和交叉编译器
2、已知一个软件项目的记录,开发人员M=3人,其代码行数=12.1KLOC,工作量E=24PM,成本S=168000美元,错误数N=29,文档页数Pd=365页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D
解: 1.软件开发的生产率P为:
P = L / E = 12.1×103LOC / 24PM = 504 LOC/PM
2.开发每行代码的平均成本C为:
C = S / L = 168000美元 / 12100LOC=13.9美元/LOC
3.代码出错率EQR为:
EQR = N / L = 29个/12.1KLOC=2.4个/KLOC
4.软件的文档率D为:
D = Pd / L = 365页 / 12.1KLOC = 30页/ KLOC
一、单向选择题
1、对在数据流图中每一个命令的图形元素均给以定义是(B)
A、条目定义
B、数据字典
C、数据定义
D、数据说明
2、软件的可行性研究中不包括(D)
A、法律可行性
B、技术可行性
C、经济可行性
D、政治可行性
3、根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为(C)
A. 纠错性维护
B. 适应性维护
C. 改善性维护
D. 预防性维护
4、人机界面的风格大致经过了(B)代的演变
三
四
五
六
5、以下不属于白盒测试技术的是(D)
逻辑覆盖
基本路径测试
循环覆盖测试
等价类划分
6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)
纠错性维护
适应性维护
改善性维护
预防性维护
二、填空题
三、判断题
11. 缺乏有力的方法学的指导和有效的开发工具的支持, 这往往是产生软件危机的原因之一。(√)
12. 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X)
13. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。(√)
14. 快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。(√)
15. 流程图也称为程序(框图)是最常用的一种表示法。(√)
16. 面向数据设计方法一般都包括下列任务: 确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。(√)
17. 理想的人机界面应针对具有典型个性的特定的一类用户设计。(√)
18. 数据输入的一般准则中包括尽量(增加)用户输入的动作。(X)
19. 用穷举测试是较现实的测试方法。(X)
10、编码时应尽可能使用全局变量(X)
11、重视程序结构的设计,能使程序具有较好的层次结构(√)
12、程序中的注解越少越好( X )