《软件工程》练习题

  • 格式:pdf
  • 大小:552.69 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》习题 一、填空题(在括号内填写正确的答案,每空 1 分,共 25 分) 1.软件工程学的基本原则包括 分解性 、 独立性 、一致性、确定性等。 2. 软件生存周期一般可分为 问题定义 、 可行性研究、 需求分析 、 设计、 编码、 测 试 、运行与维护阶段。 3.成本估计方法主要有 自顶向下方法 、 自底向上方法 和算法模型估计三种类型。 4.数据流图的基本符号包括 数据输入的源点和数据输出的汇点 、 加工 、 数据流 、 数据存储文件 6.详细设计的工具有 图形工具 、表格工具和 语言工具 。 10.程序测试是对编码阶段的语法错、 语义 和 运行 进行查找的编码执行活动。 二、单项选择题(将一个正确的答案代码填入括号中,每小题 2 分,共 10 分) 1.下列哪个阶段不属于软件生存期的三大阶段( c ) 。 A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2.下列哪个图不是 N-S 图的构件( c ) 。
第 1 页 共 11 页
1.什么是软件生存期。 2.简述什么是系统流程图。 3.为什么数据流图要分层? 4.软件的质量反应为哪些方面的问题? 五、问答题(每小题 5 分,共 20 分) 1.答:一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历 的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。 2.答:系统流程图是描述物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里的每 个部件(程序、文件、数据库、表格、人工过程等) 。系统流程图表达的是部件的信息流程,而不表示对信息进 行加工处理的控制过程。 3.答:这了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题, 需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。 4.答:软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。 在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。 如果不遵守这些开发准则,软件质量就得不到保证。 往往会有一些隐含的需求没有明确地提出来。 如果软件只满足那些精确定义了的需求而没有满足这些隐含的 需求,软件质量也不能保证。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量 要求不同而不同。 1. 软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行 与维护阶段。 2. 按软件的功能进行划分,软件可以划分为 系统软件 、 支撑软件 和应用软件。 3. 可行性研究主要集中在以下四个方面 经济可行性 、 技术可行性 、法律可行性 和 抉择。 4. 用户界面的 可使用性 是用户界面设计最重要的也是最基本的目标。 5. __数据流图________和__数据字典___共同构成系统的逻辑模型。 6. 软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法) 。 7. 单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。 1. 下列哪个阶段不属于软件生存周期的三大阶段( C ) 。 A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2. 需求分析是( A ) 。 A、 软件开发工作的基础 B、 软件生存周期的开始 C、 由系统分析员单独完成的 D、 由用户自己单独完成的 3. 原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要( B ) 。 A、 明确的需求定义 B、完整的生命周期 C、 较长的开发时间 D、熟练的开发人员 4. 软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为 ( A )。 A、改正性维护 B、适应性维护 C、完善性维护 D、预防性维护 5. 一般说来,投入运行的软件系统中有错误( A )。 A、不是不可以理解的 B、是不能容忍的 C、是要求退货的理由 D、是必然的 1. 下面哪些测试属于白盒测试( ae )。 A、基本路径测试 B、等价类划分 C、边界值分析 D、错误推测 E、逻辑覆盖测试 2. 下列哪些选项是属于内容耦合( abc ) 。 A、 一个模块直接访问另一个模块的内部数据 B、一个模块有多个入口 C、一个模块不通过正常入口转到另一模块内部 D、 一个模块只有一个入口 3. 数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常采用的( acd ) 。 A、自顶向下 B、自底向上 C、分层绘制 D、逐步求精 1. 在进行总体设计时应加强模块间的联系。 ( N ) 2. 系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。 ( N ) 3. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 ( N ) 4. 在程序调试时,找出错误的位置和性质比改正该错误更难。 ( Y ) 5. 以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一。 ( Y ) 6. 如果通过软件测试没有发现错误,则说明软件是正确的。 ( N ) 7. 快速原型模型可以有效地适应用户需求的动态变化。 ( Y ) 8. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。 ( Y )
第 3 页 共 11 页
18.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 19.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A.调用关系 B.组成关系 C.链接关系 D.顺序执行关系 20. “软件危机”是指( C ) 。 A. 计算机病毒的出现 B.利用计算机进行经济犯罪活动 C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统 21.具有风险分析的软件生命周期模型是( C ) 。 A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 22.数据流图(DFD)中的每个数据处理至少需要( D ) 。 A.一个输入数据流 B.一个输出数据流 C.一个输入或者输出数据流 D.一个输入数据流和一个输出流 二.判断题(每小题 2 分,共 24 分) 1.文档是软件产品的一部分,没有文档的软件就不称其为软件。 ( Y ) 2.需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。 ( N ) 3.数据流图建立系统的功能模型,它由数据流、数据处理和数据存贮组成。 (N ) 4.在结构化分析建模中要建立的是对象模型、功能模型和行为模型,它们以数据字典为核心。 ( N ) 5.好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。 (Y ) 6.边界值分析方法是取输入/输出等价类的边界值来构成测试用例的测试方法。 (Y ) 7.在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。 ( N ) 8.在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。 ( Y ) 9.软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。 ( N ) 10.面向对象方法学的四要素是对象、类、继承和消息通信。 ( Y ) 11.详细设计的结果基本最终决定了软件的质量。 ( Y ) 12.在详细设计中常采用的工具有层次图、PAD(问题分析图) 、程序流程图、盒图等。 ( N ) 三.填空题(每空 2 分,共 24 分) 1.为了便于对照检查,测试用例应由输入数据和预期的 输出结果 两部分组成。 2.软件结构是以 模块 为基础而组成的一种控制层次结构。 3.如果知道软件的规格说明书描述的程序功能,那么就可以采用 进行测试。 4.当 A 模块调用 B 模块时若两个模块之间传递的是数值型参数,则这两个模块的耦合方式是 数值耦合。 5.软件概要设计关键的一步是 确定软件体系结构 __,它直接影响下一阶段详细设计和编码的工作。 6. 数据流图中的箭头表示 数据流 , 椭圆或圆形表示 数据处理 , 矩形表示 数据源点或终点 。 7.软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个___自底向上或相反____集成的过程。 8.按数据流的类型,面向数据流的设计方法有两种设计策略,它们是变换分析设计和 事务分析设计。 9.数据流图仅反映系统必须完成的逻辑功能,所以它是一种 功能 模型。 10.软件结构中的 深度 表示的软件的控制层数,它往往能够粗略地标志一个系统的大小和复杂程度。 四.简答题(每小题 5 分,共 10 分) 1.衡量模块独立性的两个定性标准是什么(2 分)?这两个标准的定义分别是什么(2 分)?在我们的软件设计 中,关于模块独立性我们追求的目标是什么 答:衡量模块独立性的两个定性标准是内聚和耦合(2 分) 。 耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元 素彼此结合的紧密程度。在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合(。 2.简述结构化程序设计方法的基本特点。 (5 分) 答: 1) .是尽可能少用 goto 语句的程序设计方法; 2) .每个代码块都单入单出; 3) .使用控制结构:顺序、选择和循环+Do_UNTIL 和 Do_CASE; 4) .自顶向下逐步求精。
A、
X Y
B、ห้องสมุดไป่ตู้
WHILE M B
C、
X Y
D、
C UNTIL N
5.下列描述错误的是( D ) 。 A、数据流图将各种信息流抽象成数据流的形式 B、数据流图不反映控制关系、调用关系 C、数据流图不反映处理逻辑的先后顺序 D、数据流图不反映数据的流向 三、多项选择题(将正确的答案代码填入括号中,每小题3 分,共15分) 1.需求分析阶段应该完成的文档资料包括(ABCD ) 。 A、系统规格说明 B、数据要求 C、用户系统描述 D、修正的开发计划 2.下列关于模块的描述,正确的是( ABCD ) 。 A、具有独立的模块软件比较容易开发出来 B、独立的模块比较容易测试和维护 C、模块的独立程度可以通过内聚和耦合标定 D、独立的模块可以完成一个相对独立的特定子功能 3.关于内容耦合的描述正确的是( AD ) 。 A、内容耦合是最高程度的耦合 B、应该尽量使用内容耦合 C、高级语言一般设计成允许内容耦合的形式 D、如果一个模块有多个入口,可能发生内容耦合 4.下列属于不标准的书写格式( BCD ) 。 A、书写时适当使用空格分隔 B、一行写入多条语句 C、嵌套结构不使用分层缩进的写法 D、程序中不加注释 5.软件测试主要包括( ABC )方面的差错和纠错。 A、软件计划 B、软件设计 C、软件编码 D、软件价格 四、判断题(正确的在括号内打上“√” ,错误的打上“×” 。每小题 3 分,共 30 分) 2.模块越多开发成本越小。 ( N ) 3.内聚是指一个软件结构内各个模块之间互连程序的度量。 ( N ) 4.结构化设计属于面向数据流的设计方法。 ( Y ) 5.详细设计是在概要设计之后进行的它利用概要设计的结果对系统中的每个模块给出足够的过程性描述 y 6.程序运行过程中出现错误叫做容错。 ( N ) 7.软件测试的目的是证明程序没有错误。 ( N ) 8.白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程。(N) 五、问答题(每小题 5 分,共 20 分)
第 2 页 共 11 页
9. 集成测试主要由用户来完成。 ( N ) 10. 软件危机完全是由于硬件问题引起的。 ( N ) 1. 什么是软件危机?为什么会产生软件危机? 2. 耦合性有哪几种类型? 其耦合度的顺序如何 3. 简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则? 4. 什么是黑盒测试法? 五、简答题(每小题 5 分,共 20 分) 1. 答:软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题,一是如何 开发利用软件,三是如何维护数量不断膨胀的已有软件。产生软件危机的原因,一方面与软件本身的特 点有关,另一方面和软件开发与维护的方法不正确有关。 2. 答:低:非直接耦合 数据耦合标记耦合 控制耦合外部耦合 公共耦合内容耦合 :高 3. 答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个基本原则: 必须能够表达和理解问题的数据域和功能域;必须按自顶向下、 逐步分解的方式对问题进行分解和不断 细化;要给出系统的逻辑视图和物理视图。 4. 答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是 否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。 1.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 2.软件生命周期中所花费用最多的阶段是( D ) 。 A.详细设计 B.软件编码 C.软件测试 D.软件维护 3.需求分析中开发人员要从用户那里了解( A ) 。 A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 4.测试的关键问题是( D ) 。 A.如何组织对软件的评审 B.如何验证程序的正确性 C.如何采用综合策略 D.如何选择测试用例 5. ( D )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具 和过程三个要素。 A.软件过程 B.软件测试 C.软件生命周期 D.软件工程方法学 6. ( A )意味着一个操作在不同的类中可以有不同的实现方式。 A.多态性 B.多继承 C.类的可复用 D.信息隐藏 7.单元测试的测试用例主要根据( D )的结果来设计。 A.需求分析 B.源程序 C.概要设计 D.详细设计 8.随着软硬件环境变化而修改软件的过程是( B ) 。 A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 9.在白盒测试技术测试用例的设计中, ( A )是最弱的覆盖标准。 A.语句覆盖 B.路径覆盖 C.条件组合覆盖 D.判定覆盖 10.结构化程序设计的一种基本方法是( C ) 。 A.筛选法 B.迭代法 C.逐步求精法 D.递归法 11.不适合作为科学工程计算的程序设计语言是( D ) 。 A.Pascal B.C C.Fortran D.Prolog 12.只有单重继承的类层次结构是( C )层次结构。 A.网状型 B.星型 C.树型 D.环型 13.面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。 A.Booch 方法 B.Coad 方法 C.UML 语言 D.OMT 方法 14.瀑布模型本质上是一种( A )。 A.线性顺序模型 B.顺序迭代模型 C.线性迭代模型 D.及早见产品模型 15.软件维护产生的副作用,是指( C )。 A.开发时的错误 B.隐含的错误 C.因修改软件而造成的错误 D.运行时误操作 16.软件详细设计的主要任务是确定每个模块的( A )。 A.算法和使用的数据结构 B.外部接口 C.功能 D.编程 17.软件结构图的形态特征能反映程序重用率的是( C )。 A.深度 B.宽度 C.扇入 D.扇出