[课程复习] 软件工程导论之经典题目回顾 (一)选择题、填空题1

2023-11-15

作者最近在复习考博,乘此机会分享一些计算机科学与技术、软件工程等相关专业课程考题,一方面分享给考研、考博、找工作的博友,另一方面也是自己今后完成这些课程的复习资料,同时也是在线笔记。基础知识,希望对您有所帮助,不喜勿喷~

《软件工程导论 · 张海藩》


一.概述

题目:

1、软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( )。
A. 维护阶段
B. 设计阶段
C. 代码实现阶段
D. 测试阶段

2、软件工程的出现是由于____________________。

3、计算机软件不仅仅是程序,还应该有一整套_______________。

4、传统的软件生存期模型是______________。

5、软件按照功能的不同可以划分为3大类型_______、________ 和 ________。

6、软件工程由方法、工具和 ______ 三部分组成。

7、计算机系统工程包含硬件、软件、人机及 ________ 工程。

8、结构化程序设计主要强调程序的( )。
A.效率 B.速度 C.可读性 D.大小

9、程序的三种基本控制结构是:_______ 、 _________ 、 __________。

10、结构设计是一种应用最广泛的系统设计方法,是以 ______ 为基础、自顶向下、逐步求精和模块化的过程。


解析:

1、软件生命周期分为问题定义、可行性分析、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护八个阶段。其中,软件维护的成本和人力最高,其目的是提高软件的可维护性,减少软件维护所需的工作量,降低软件系统的总成本。

2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要表现为:(1)对软件开发成本和进度的估计不准确;(2)用户对已完成的软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件没有适当的文档资料;(5)软件不可维护;(6)软件成本在计算机系统中所占比例逐年上升;(7)软件开发生产率提高的速度跟不上计算机应用普及趋势。

3、快速原型模型可以有效地适应用户需求的动态变化。

6、软件工程方法学包含3个要素:方法、工具、过程。 方法回答“怎么做”,工作提供支撑环境,过程是一系列的框架,规定各项任务的工作步骤。

7、计算机系统工程是用工程、科学和数学的原则与方法研制基于计算机的系统的有关技术、方法和过程。包括系统分析员、硬件和硬件工程、软件和软件工程、人与人类工程、数据库和数据库工程。

8、结构化程序设计主要强调的是程序易读性。


答案:

1、A
2、软件危机的出现
3、文档
4、瀑布模型
5、系统软件、支持软件、应用软件
6、过程
7、数据库
8、C
9、顺序、选择、重复
10、数据流


二.可行性分析

题目:

1、程序流程图中的“→”代表( )。
A. 数据流 B. 控制流 C. 顺序流 D. 调用

2、DFD中的“→”代表( )。
A. 数据流 B. 文件 C. 处理 D. 控制流

3、DFD中的“○”代表( )。
A. 数据流 B. 文件 C. 处理 D. 控制流

4、DFD中的“_”代表( )。
A. 数据流 B. 文件 C. 处理 D. 控制流

5、DFD在软件工程中表示__________。

6、数据流图有四种基本成分_______ 、________ 、________ 、________。

7、数据字典有以下四类条目:_______ 、_______ 、________ 、________。_______是组成数据流和数据存储的最小元素。

8、瀑布模型的关键不足在于( )
A.过于简单
B.不能适应需求的动态变更
C.过于灵活
D.各个阶段需要进行评审

9、软件质量(可维护性、可理解性、可靠性)很大程度取决于( )
A.程序员的编程水平
B.模块分解的合理
C.程序运行效率
D.算法的合理性

10、结构化分析SA 方法以数据流图、( )和加工说明等描述工具,即用直观的图和简洁的语言来描述软系统模型。
A.DFD图 B.数据字典 C.IPO 图 D.PAD 图


解析:

数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图包括四个成分:数据流 、加工(数据处理)、数据存储(文件)、 数据的源点或终点。

数据流图如下所示:


答案:

1、B
2、A
3、C
4、B
5、数据流图
6、数据流 、加工(数据处理)、数据存储(文件)、 数据的源点或终点
7、数据流、数据项(数据元素)、数据存储(文件)、处理(加工)、数据项
8、B
9、B
10、B


三.需求分析

题目:

1、 需求分析阶段最重要的技术文档是____________________。

2、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )。
A. 数据库设计
B. 数据通信
C. 数据定义
D. 数据维护

3、需求分析阶段的研究对象是( )。
A. 系统分析员要求
B. 用户要求
C. 软硬件要求
D. 系统要求

4、 软件生产过程中,需求信息由( )给出。
A.程序员 B.项目管理者 C.软件分析设计人员 D.软件用户

5、软件需求规格说明的内容不应包括( )。
A.主要功能
B.算法的详细描述
C.用户界面及运行环境
D.软件的性能

6、在E-R 模型中,包含以下基本成分( )。
A.数据、对象、实体
B.控制、联系、对象
C.实体、联系、属性
D.实体、属性、操作


解析:

1、传统软件工程学使用结构化分析技术完成分析用户需求的工作,需求分析是发现、求精、建模、规格说明和复审的过程。需求分析阶段会的最终成果是软件需求规格说明书,通常主要从一致性、完整性、现实性和有效性4个方面复审软件需求规格说明书。

2、数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用是在软件分析和设计过程中给人提示有关数据的描述信息,其最基本功能是数据定义。
数据字典由4类元素的定义组成:数据流、数据元素、数据储存、处理。例如:名字、别名、描述、定义、位置。

3、需求分析是软件定义时期(软件定义、软件开发、软件维护)的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题。而用户才真正指导需要做什么,所以研究对象是用户要求的。总之,软件生产过程中,需求是由软件用户给出的。


答案:

1、需求规格说明书
2、C
3、B
4、D
5、B
6、C


四.总体设计和详细设计

题目:

1、结构化方法的基本原则是( )。
A.模块化 B.抽象与分解 C.信息隐蔽 D.逐步求精

2、耦合度最高的是( )耦合。
A.环境 B.内容 C.控制 D.数据

3、内聚程度较低的是( )内聚。
A.偶然 B.通讯 C.顺序 D.时间

4、画软件结构图时应注意调用关系只能是( )。
A.从下到上 B.从上到下 C.从左到右 D.从右到左

5、________ 与 ________ 是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到 _____ 内聚、_____ 耦合,提高模块的________,为设计高质量的软件结构奠定基础。

6、SA法中,有一个处理过程逻辑不易用语言表达清楚,最好是用( )来描述。
A、流程图 B、判定表 C、NS图 D、问题分析图PAD

7、概要设计的结果是提供一份( )
A.模块说明书 B.框图 C.程序 D.系统结构图

8、SA法中,DFD图的某个处理过程分解后,一般不超过( )处理过程

9、面向数据流的软件设计方法,一般是把数据流图中数据流划分为( ),再将数据流图映射为软件结构。
A.数据流和事务流
B.交换流和事务流
C.信息流和控制流
D.交换流和数据流

10、详细设计的基本任务是确定每个模块的( )设计。
A.功能 B.调用关系 C.输入输出数据 D.算法

11、设函数C(X)定义问题X 的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。对于两个问题P1 和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是( )。
A.模块化的根据
B.逐步求精的根据
C.抽象的根据
D.信息隐藏和局部化的根据

12、模块的内聚性最高的是( )。
A.逻辑内聚
B.时间内聚
C.偶然内聚
D.功能内聚


解析:

1、结构化方法的启发原则包括:(1)模块化 (2)抽象 (3)逐步求精 (4)信息隐藏和局部化 (5)模块独立。
模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。

2-3、软件设计讲究高内聚低耦合。其中耦合最低的是数据耦合(传递参数),耦合最高的是内容耦合(建议不采用);内聚最高的是功能内聚,内聚最低的是偶然内聚。

6、判定表:有些加工的逻辑用语形式不容易表达清楚,而用表的形式则一目了然。如果一个加工逻辑有多个条件、多个操作,并且在不同的条件组合下执行不同的操作,就可以使用判定表来描述。判定树和判定表没有本质的区别,可以用判定表表示的加工逻辑都可以用判定树来表示。


答案:

1、B
2、B
3、A
4、B
5、耦合性、内聚性、高、低、独立性
6、B
7、A
8、7个
9、B
10、D
11、A
12、D


五.实现(编码和测试)

题目:

1、以下语言中属于4GL是( )
A.PB B.VB C.UML D.SQL

2、软件测试中的测试实例主要由输入数据和( )组成
A.测试规则
B.测试计划
C.预期输出结果
D.以往测试记录分析

3、注释是提高程序可读性的有效手段,好的程序注释占到程序总量的( )
A.1/6 B.1/5 C.1/4 D.1/3

4、进行单元测试时,需要一个( )被测模块的程序。
A.传递 B.管理 C.调用 D.驱动

5、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于_____ 。

6、与设计测试数据无关的文档是( )。
A.需求说明书 B.设计说明书 C.源程序 D.项目开发设计

7、各种软件维护的类型中最重要的是( )。
A.完善性维护
B.纠错性维护
C.适应性维护
D.预防性维护

8、软件测试的目标是 ___________ 。

9、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从
输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是( )。
A.条件覆盖法
B.等价分类法
C.边界值分析法
D.错误推测法

10、下面几种白箱测试技术,哪种是最强的覆盖准则( )
A.语句覆盖
B.条件覆盖
C.判定覆盖
D.条件组合覆盖

11、确定测试计划是在( )阶段制定的.
A.总体设计
B.详细设计
C.编码
D.测试


解析:

1、
第一代(1GL):机器语言
第二代(2GL):汇编语言
第三代(3GL):高级语言
第四代(4GL):第四代语言是一个简洁的、高效的非过程编程语言,用来提高DBMS的效率。在第四代语言中,用户定义“做什么”而不是“如何做”,如SQL。

4、单元测试(模块测试)主要测试编码、详细设计中错误,会用到驱动程序,主要采用白盒测试技术;集成测试(子系统测试和系统测试)主要测试模块接口和设计、编码;确认测试(验收测试)通常由用户参与完成,确认是否满足用户的需求,采用黑盒测试技术。


答案:

1、D
2、C
3、D
4、D
5、确认测试
6、D
7、A
8、发现错误、降低错误带来的风险
9、C
10、D
11、A


六.面向对象设计分析

题目:

1、在面向对象软件开发方法中,类与类之间主要有以下结构关系( )
A.继承和聚集
B.继承和一般
C.聚集和消息传递
D.继承和方法调用

2、面向对象模型主要由以下哪些模型组成_______ 、_________ 、_________。

3、OOA中应首先识别( )。
A.对象 B.类 C.对象的属性 D.对象所属的类

4、以下哪一项不是面向对象的特征( )。
A.多态性 B.继承性 C.封装性 D.过程调用

5、以下哪一项不属于面向对象的软件开发方法( )。
A.coad方法 B.Booch方法 C.jackson方法 D.OMT方法

6、面向对象技术中,对象是类的实例。对象有三种成份:()、属性和方法(或操作)。
A. 标识 B. 规则 C. 封装 D. 消息

7、面向对象程序设计中的数据隐藏指的是( )。
A.输入数据必须输入保密口令
B.数据经过加密处理
C.对象内部数据结构上建有防火墙
D.对象内部数据结构的不可访性


解析:

1、在面向对象的软件开发方法中,每个类都存在其相应的对象,对象是类的实例,类是生成对象的模板。聚集又称为聚合,表示类与类之间的关系是整体与部分的关系。
面向对象建模得到的模型包含系统的3个要素,即静态结构、交互次序和数据变换。

2、面向对象模型主要包括对象模型、动态模型、功能模型。对象模型描述系统数据结构,动态模型描述系统控制结构,功能模型描述系统功能。一个典型的软件系统组合了三方面内容:它使用数据结构(对象模型)、执行操作(动态模型),完成数据值的变化(功能模型)。

5、jackson方法是面向数据结构的设计方法。


答案:

1、A
2、对象模型、动态模型、功能模型
3、A
4、D
5、C
6、A
7、D


PS:最近参加CSDN2018年博客评选,希望您能投出宝贵的一票。我是59号,Eastmount,杨秀璋。投票地址:https://bss.csdn.net/m/topic/blog_star2018/index

五年来写了314篇博客,12个专栏,是真的热爱分享,热爱CSDN这个平台,也想帮助更多的人,专栏包括Python、数据挖掘、网络爬虫、图像处理、C#、Android等。现在也当了两年老师,更是觉得有义务教好每一个学生,让贵州学子好好写点代码,学点技术,“师者,传到授业解惑也”,提前祝大家新年快乐。2019我们携手共进,为爱而生。

(By:Eastmount 2019-01-28 下午6点 http://blog.csdn.net/eastmount/ )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[课程复习] 软件工程导论之经典题目回顾 (一)选择题、填空题1 的相关文章

  • AI代码生成插件推荐

    文章目录 前言 一 AI代码生成插件推荐 一 copilot 建议 个人不太推荐使用这个因为他收费了 二 codegeex 个人推荐 推荐使用这个 免费还不错 总结 AI代码生成可以有效的提高开发的效率
  • Windows磁盘管理

    0x01 磁盘管理概述 磁盘管理是一项计算机使用时的常规任务 它是以一组磁盘管理应用程序的形式提供给用户的 他们位于计算机管理控制台中 它包括查错程序和磁盘碎片整理程序以及磁盘整理程序 来源百度百科 本文主要介绍的内容为磁盘整理程序中的分区
  • 学成在线笔记+踩坑(0)——面试问题

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 目录 介绍你的项目 项目难点 CDN是什么 负载均衡是怎么做的 git

随机推荐

  • 【迎五一】超大福利来啦,众多精美课程、礼品等你来领

    C认证助力程序员 五一特惠活动来啦 单人报名可免费获得 电子书月卡 一份 组团报名皆可获得技术图书一本 无限次补考机会 带新用户报名皆可获得技术图书一本 精品网课 活动时间 4月26日 5月15日 心动不如行动 点击文末卡片立即了解 CSD
  • 哈希的应用 -- 布隆过滤器与海量数据处理

    文章目录 布隆过滤器概念 布隆过滤器设计思路 布隆过滤器的应用 布隆过滤器模拟实现 布隆过滤器的基本框架 布隆过滤器的插入 布隆过滤器的探测 布隆过滤器的删除 布隆过滤器优点 布隆过滤器缺陷 布隆过滤器模拟实现代码及测试代码 海量数据处理
  • 【云原生之Docker实战】使用Docker部署个人FireflyIII财务系统

    云原生之Docker实战 使用Docker部署个人FireflyIII财务系统 一 FireflyIII介绍 1 FireflyIII简介 2 FireflyIII特点 二 检查本地环境 1 检查系统版本 2 检查docker版本 3 检查
  • 数据可视化各个图表

    阶梯图 import pandas as pd from matplotlib import pyplot as plt postage pd read csv r http datasets flowingdata com us post
  • 请说说接口和抽象类的区别?

    1 从使用目的来看 接口只是一个类间的协议 它并没有规定怎么去实现 抽象类可以重用你代码使你的代码更加简洁 2 从行为来看 接口可以多继承 multi implement 抽象类不能实例化 必须子类化才能实例化 3 从属性来看 接口的属性必
  • VOSviewer

    1 文献下载 按需求搜索 wos一次只能导出500条文献信息 如果相关文献过多 可以按被引排序 导出 制表符分隔文件 全记录与引用的参考文献 2 可视化实现 打开VOSviewer软件 单击左区Map下的create 选择 create a
  • 计算机页面设置代码,计算机二级考试Access辅导:页面设置模块代码分享

    Dim up dn le ri si liAs Single co As string 定义边距及页面函数 Sub ymszmk strName As String 页面设置模块On Error GoTo Err ymszmkIf Nz D
  • 【软件测试】如何在笔试中设计一个好的测试用例

    测试用例的重要性 如何以最少的人力 资源投入 在最短的时间内完成测试 发现软件系统的缺陷 保证软件的优良品质 则是软件公司探索和追求的目标 软件测试是有组织性 步骤性和计划性的 为了能将软件测试的行为转换为可管理的 具体量化的模式 需要创建
  • DNS介绍,哪个好,速度快稳定

    介绍 打个比方 你电脑是你家 你家地址是一个IP 你要拜访百度的家 那肯定要知道百度家在哪里 你知道baidu com 但是电脑访问的是网络地址 是数字 其它的他都不认识 百度家IP是220 181 38 148 但是你记不住 你电脑也不知
  • el-dialog弹出层扩展拖拽及拉伸以及双击全屏

    import Vue from vue 使用方法 将以下代码复制到一个js文件中 然后在入口文件main js中import引入即可 给elementUI的dialog上加上 v dialogDrag 指令就可以实现弹窗的全屏和拉伸了 给d
  • Python之虚拟环境venv实战详解

    目录 简介 虚拟环境实战 创建虚拟环境 激活虚拟环境 虚拟环境测试 停止虚拟环境 小结 简介 Python 应用程序通常会使用不属于标准库的包和模块 应用程序有时需要特定版本的库 因为应用程序可能需要修复特定的错误 或者应用程序可能使用库接
  • 我与边缘计算 - [Jetson Xavier] - [浪潮边缘主机环境拓荒]

    目录 目的 过程 1 opencv 2 darknet 3 TensorRT 附录1 blas lapack cblas在Ubuntu上的安装 1 确保机器上安装了gfortran编译器 如果没有安装的话 可以使用 2 下载blas cbl
  • 日常小记,待转语雀

    java中的fast fail机制 r1 12king 博客园概念 fail fast 机制是java集合 Collection 中的一种错误机制 当多个线程对同一个集合的内容进行操作时 就可能会产生fail fast事件 分析 先看一个代
  • 如何在IDEA中创建一个项目

    首先双击IDEAjava运行环境 也就是双击程序啦 点击Create New Project 开始创建一个新的项目 然后点击下一步 next 然后作为小白 不需要勾选下面选项 接着下一步即可 多动动手啦 然后就是给项目名命 名命完以后直接F
  • C++ 多线程编程

    转自 C 标准线程库之共享资源 1 带普通互斥锁的多线程案例 include
  • 4.5创建型模式—————建造者模式(Bulider模式)

    在软件开发过程中有时需要创建一个复杂的对象 这个复杂对象通常由多个子部件按一定的步骤组合而成 例如 计算机是由 OPU 主板 内存 硬盘 显卡 机箱 显示器 键盘 鼠标等部件组装而成的 采购员不可能自己去组装计算机 而是将计算机的配置要求告
  • iOS快捷指令:执行Python脚本(利用iSH Shell)

    文章目录 前言 核心逻辑 配置iSH 安装Python 创建Python脚本 配置启动文件 测试效果 快捷指令 前言 iOS快捷指令所能做的操作极为有限 假如快捷指令能运行Python程序 那么可操作空间就瞬间变大了 iSH是一款免费的iO
  • 恶意代码分析——基础技术篇

    文章目录 恶意代码分析目的 恶意代码分析方法 恶意代码种类 恶意代码静态分析 环境 在线反病毒引擎 获取哈希值 certutil hanshfile path MD5 查找字符串hive string ida火绒剑 加壳 查壳 文件加壳 使
  • mac下使用brew下载软件卡住的处理办法

    方法1 control c 方法2 换成其他的镜像源 比较麻烦 以后再整理 先能用就行
  • [课程复习] 软件工程导论之经典题目回顾 (一)选择题、填空题1

    作者最近在复习考博 乘此机会分享一些计算机科学与技术 软件工程等相关专业课程考题 一方面分享给考研 考博 找工作的博友 另一方面也是自己今后完成这些课程的复习资料 同时也是在线笔记 基础知识 希望对您有所帮助 不喜勿喷 软件工程导论 张海藩