软件工程试题

单项选择题
填空题
判断
简答题

一、 单向选择题
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. 可能的条件组合

  • 判定表
    • 判定表通常有以下四个部分组成:
      1)条件桩(Condition Stub):在左上部,列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
      2)动作桩(Action Stub):在左下部,列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
      3)条件项(Condition Entry):在右上部,列出针对它左列条件的取值。在所有可能情况下的真假值。
      4)动作项(Action Entry):在右下部,列出在条件项的各种取值情况下应该采取的动作。

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图

二、填空题

  1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)
  2. 高级语言:独立于机器,面向过程或面向(对象)
  3. 软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过程)
  4. 人机界面的风格第一代界面是命令和(询问)方式
  5. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)
  6. 在公式V(G)= E – N + 2中:E为程序图G中边的总数; N 为程序图中结点的总数。V(G)又称为图G的环形(复杂度)
  7. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型
    IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。IPO图是对每个模块进行详细设计的工具,它是输入加工输出(INPUT PROCESS OUTPUT)图的简称,它是由美国IBM公司发起并完善起来的一种工具。在系统的模块结构图形成过程中,产生了大量的模块,在进行详细设计时开发者应为每一个模块写一份说明。IPO图就是用来说明每个模块的输入、输出数据和数据加工的重要工具。
  8. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”
  9. 文档是一种数据媒体和其上所记录的(数据)
    软件的可互操作性,是指多个软件元素相互(通信)并协同完成任务的能力。

第三代语言也称为(高级)语言。

软件测试是软件投入运行(前),对软件需求分析、设计、实现的强有力的最终审查。

黑盒测试主要是测试软件是否满足(功能)需求。

(调试)的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。

软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。

软件可追踪性(traceability),是指根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行(逆向)追踪的能力。

瀑布模型是由W. Royce于1970年提出来的。又称为软件(生存周期)模型。

程序设计语言的(可维护)性通常指这种语言编写的程序被理解,被修改及调整和改进的难易程度。

三、判断题
( ×)系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等 测试。

( × )编程序时应尽可能利用硬件特点以提高程序效率.

( × )软件需求分析的任务是建立软件模块结构图。 ( 需求分析的产品是需求规格说明书

)尽可能使用高级语言编写程序

( × )以结构化分析方法建立的系统模型就是数据流图。

( × )进行总体设计时加强模块间的联系。 (高内聚低耦合的设计理念,在设计的时候应该是减少模块间的联系)

( × )编码时尽量多用全局变量.

)用CASE环境或程序自动生成工具来自动生成一部分程序.

( × )软件测试是要发现软件中的所有错误。

  1. 用户对软件需求的描述不精确,往往是产生软件危机的原因之一。(√)
  2. 目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术(PERT)和关键路径法(CPM)。(√)
  3. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。(√)
  4. 目前的绝大多数软件都不适合于快速原型技术。(X
  5. 面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;系统软件(如操作系统)等。(√)
  6. 缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。(X)
  7. 通常紧致性好的语言一致性就好。(X)
  8. 测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。(X)1401
  9. 数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一致;允许用户定做输入格式等内容。(√)
  10. 软件也会磨损和老化。(X)
  11. 完善性维护是提高或完善软件的性能。(√)
  12. McCabe建议模块规模应满足:V(G)≤20。(X)
    文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理; 运行阶段的维护。(√)

软件开发、设计几乎都是从头开始,成本和进度很难估计。(√)

适应性维护是改进软件未来的可维护性和可靠性。(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. 系统错误
    2. 加工错误(算法错误)
    3. 数据错误
    4. 代码错误
  • 程序设计语言有哪些特点?

    ​ 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)
纠错性维护
适应性维护
改善性维护
预防性维护

二、填空题

  1. 文档(document)—一种数据媒体和其上所记录的(数据)
  2. 机器语言、汇编语言:依赖于机器,面向(机器)
  3. 软件有效性(efficiency),指软件系统的时间和(空间)效率
  4. 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成
  5. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”
  6. 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)
  7. 一个软件的深度是指其控制的(层数)
  8. 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程
  9. 软件维护是软件生命周期的(最后)一个阶段

三、判断题
11. 缺乏有力的方法学的指导和有效的开发工具的支持, 这往往是产生软件危机的原因之一。(√)
12. 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X)
13. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。(√)
14. 快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。(√)
15. 流程图也称为程序(框图)是最常用的一种表示法。(√)
16. 面向数据设计方法一般都包括下列任务: 确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。(√)
17. 理想的人机界面应针对具有典型个性的特定的一类用户设计。(√)
18. 数据输入的一般准则中包括尽量(增加)用户输入的动作。(X)
19. 用穷举测试是较现实的测试方法。(X)
10、编码时应尽可能使用全局变量(X)
11、重视程序结构的设计,能使程序具有较好的层次结构(√)
12、程序中的注解越少越好( X )

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值