软件工程课后习题整理_第1页
软件工程课后习题整理_第2页
软件工程课后习题整理_第3页
软件工程课后习题整理_第4页
软件工程课后习题整理_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章软件工程概述

一、选择题

1.下列活动不属于软件开发阶段的是(D)o

A.需求分析B.概要设计C.详细设计D.测试

2.以下对软件开发基本原理的描述,不正确的是(C卜

A.用分阶段的生命周期计划严格管理B.采用现代程序设计技术

C.开发小组的人员应该足够多D.承认不断改进软件工程实践的必要性

3.在以下软件开发模型中,最常用的软件需求难以完全明确的情况下的是(B卜

A.瀑布模型B.原型模型C.螺旋模型D.变换模型

4.对于喷泉模型的软件开发过程,下列说法错误的是(Db

A.是一种面向对象的软件开发过程B.具有迭代性

C.具有无间隙性D.个阶段之间具有顺序性和依赖性

5.下列说法正确的是(B卜

A.使用迭代方法开发的系统若不能收敛到需求目标范围内,则项目可能夭折

B.原型模型的建造需要额外花费一些成本,因为系统的总成本提高了

C.第四代编程语言是一种面向对象而非面向过程的语言

D.基于四代技术模型用于开发大型的应用软件

6.在软件的开发阶段,面向数据结构开发的方法是(Ab

A.Jackson方法B.结构化方法C.VDM方法D.面向对象的方法

7.为了实现软件开发各阶段的自动化,在软件开发时可以采用的攻击是(Db

A.软件工具B.工具箱C.软件开发环境D.计算机辅助软件工程

二,填空题

1.软件是计算机中与硬件相互依存的部分,它是包括程序、文档及数据的完整集合。

2.软件工程的原则包括抽象、模块化、信息隐蔽、局部化、一致性、完备性和可验证性o

3.软件生命周期中,软件定义阶段的工作主要包括问题定义、可行性研究和需求分析o

4.瀑布模型又称为软件生命周期模型,它的主要特点是各阶段之间具有顺序性和依赖性。

5.螺旋模型包含了如下四个方面的活动,它们分别为制定计划、风险分析、实施工程和客户

评价0

6.软件的结构化开发方法是由结构化分析、结构化设计和结构化程序设计构成。它是一种面

向数据流的开发方法,其指导思想是自顶向下逐步求精其基本原则是功能的分解与抽象。

三、思考题

1.软件产品的特点是什么?与硬件产品主要有哪些不同?

答:软件产品是一种无形的逻辑产品,是人们脑力劳动的结晶。软件产品只能以程序、数据和文档

的形式出现。其存储介质是磁盘、磁带或光盘。通过计算机的执行才能体现出来。与硬件产品的制

造不同,软件产品的成本主要花在研制上,而产品的制造实质上是所开发产品的拷贝。软件产品不

会像硬件产品一样磨损,但仍然需要维护,而且维护的成本很高。软件产品的开发主要靠脑力劳动,

所以产品研制的成本很高,很难像硬件产品那样实现工业化生产。

2.什么是软件危机?软件危机的表现是什么?

答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危

机包含下述两方面的问题:如何开发软件,以满足对软件的日益增长的需求;如何维护数量不断膨

参考答案3

胀的软件。具体来说,软件危机主要有以下一些典型表现。对软件开发成本和进度的估计常常很不

准确。用户对所交付的软件系统不满意的现象时有发生。软件产品的质量往往靠不住。软件常常是

不可维护的。软件文档资料通常不完整、不合格。软件的价格昂贵,软件成本在计算机系统总成本

中所占的比例逐年上升。软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上日

益增长的软件需求。

3.简述软件工程目标和面临的主要问题。

答:软件工程的基本目标是在给定的成本、进度等条件下,开发出满足用户需求的软件产品。简单

来说,也就是要成功地建造一个大型软件系统。软件项目的成功主要是要达到以下几个目标:付出

较低的软件开发成本;达到用户所要求的软件功能;取得较好的软件性能;所开发的软件易于移植、

可重用性好;需要较低的软件维护费用;能按时完成开发任务,及时交付使用;软件工程面临的主

要问题是:软件费用、软件可靠性、软件维护、软件生产率和软件重用等。

4.软件工程的基本原理有哪些?

答:软件工程的基本原理主要有以下七条:用分阶段的生命周期计划严格管理;坚持进行阶段评审;

实行严格的产品控制;采用现代程序设计技术;结果应该能清楚地审查;开发小组的人员应该少而

精;承认不断改进软件工程实践的必要性。

5.软件工程的原则有哪些?试加以说明。

答:软件工程的原则主要有以下几点:

(1)抽象:抽象是指抽取事物最基本的特征和行为,忽略与问题无关或关系甚少的其他细节。

(2)模块化:模块化就是把一个问题划分成若干个较小的、较易解决的模块,每个模块完成一个子

功能,将这些模块组装成一个整体即可完成指定的功能。

(3)信息隐蔽:将模块内部的信息(数据和操作的细节)封装起来,其他模块只能通过该模块对外

界提供的接口来访问该模块。

(4)局部化:在一个物理模块内集中逻辑上相互关联的计算机资源,即按照特定的目的把相互关联

的事物放在一起。

(5)一致性:整个软件系统(包括程序、数据和文档)应能满足以下一些一致特性:一致的概念、

符号和术语;程序内部接口保持一致;软件与硬件环境的接口保持一致:系统规格说明与系统

行为保持一致;用于形式化规格说明的公理系统保持一致。

(6)完备性:软件系统不丢失任何重要成分完全实现系统所需功能的程度。

(7)可验证性:软件开发过程中的各个阶段的工作应该具有可验证性,以确保软件系统的正确性。

软件系统的自顶向下、逐层分解应遵循使系统易检查、易测试、易评审的原则。

6.什么是软件生命周期?软件生命周期应划分为哪些阶段?每个阶段应解决什么问题?

答:(1)软件生命周期是指软件产品从形成概念开始,经过定义、开发、使用和维护,直到最后退

役的全过程。软件生命周期理论从时间角度对软件开发和维护的复杂问题进行分解,把漫长的软件

生命周期划分为若干个相对独立的阶段,逐步完成每个阶段的任务。

(2)一般来说,软件生命周期包括软件定义、软件开发、软件的使用与维护3个阶段。

(3)©软件定义的基本任务是弄清待开发的软件系统要做什么即软件开发工程必须完成的总目标。

②软件开发过程即软件的设计和实现,软件开发过程就是软件开发人员按照需求规格说明的要

求,把抽象的系统需求实现到具体的程序代码和相关文档等,并经过严格测试产生最终软件

参考答案5

产品的过程。

③软件开发结束后,经过用户确认验收,便可安装到特定的用户环境中供用户使用。软件的使

用即软件的运行。软件投入实际使用以后的主要任务是确保软件持久满足用户的要求。软件

的维护就是为了延长软件的寿命而对软件产品进行修改或对软件需求变化做出响应的过程。

7.快速原型模型有几种?分别有什么特点?

答:根据作用和目的的不同,原型可以分为探索型、实验型和进化型。

(1)探索型主要针对开发目标模糊,用户和开发者对项目都缺乏经验的情况,目的是要弄清对目标

系统的要求,确定所希望的特性,并探讨多种方案的可行性。

(2)实验型主要用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠。

(3)进化型将原型方法的思想扩展到软件开发的全过程,目的是将系统建造得易于变化,在改进原

型的过程中满足用户需求的变动,逐步将原型进化成为最终系统。

第二章系统分析

1.选择题

1.下列(ABCD)可以或需要在系统规格说明进行说明。

A.对于系统的结构描述B.项目开发进展C.系统模型D.特殊的性能

2.对系统的描述可以从以下(ABCD)角度进行。

A.系统模型说明B.设计约束条件C.结构流程图D.性能问题

3.下列各项中,(ABCD)是属于系统的结构模板的一部分的。

A.维护和测试B.输入输出C,处理和控制D.用户界面处理

4.技术凭什么主要考虑的是(ABCDb

A.系统的复杂性与开发风险,成本,进度的相一致性B.功能分配

C.接口定义D.性能,可靠性及可维护性问题

5.在可行性研究报告中,最主要的是(ACDb

A.相关的法律问题B.专门的术语C.成本/效益分析D.技术风险评价

6.研究开发所需要的成本和资源是属于可行性研究中的(B)o

A.技术可行性B.经济可行性C.法律可行性D.社会可行性

7.可行性分析研究的目的是(C)o

A.争取项目B.开发项目C.项目是否值得开发D.规划项目

二、填空题

1.组成计算机系统六个系统元素时速也、硬件、,、数据库、文档、过程。

2.问题定义报告一般应具备工程项目名称、使用方、开发方、对问题的概括定义、项目

的目标、项目的规模内容。

3.可行性研究的内容是:技术可行性、经济可行性、运行可行性、法律可行性。

4.可行性研究所需的成本一般占工程成本的5%-10%。

5.常用的系统分析方法有功能分解法、数据流法、信息造型法、面向对象法。

三、思考题

2.可行性研究报告的主要内容有哪些?

答:(1)方案选择(2)选择的系统配置(3)选择方案的标准(4)各子系统的可行性(5)成本/

效益分析(6)技术风险评价(7)有关法律问题(8)结论意见。

参考答案7

3.简述成本/效益分析。

答:成本/效益分析是从经济角度来评价开发一个项目是否可行,是属于经济可行性研究方面的。我

们对项目进行成本效益分析,根据分析的成本与效益,两者进行权衡比较。效益有经济效益和社会

效益,也称有形效益和无形效益。成本有开发成本和开发成功后的运行成本,对后者的考虑需要考

虑系统预期的使用寿命。进行成本估算一般有这些方法:经验估算法、因素估算法、WBS基础上的

全面详细估算。

第3章需求分析

一、选择题

1.需求管理它涉及到四个方面,下列(A)不属于需求管理的部分。

A.代码重构B.版本控制C.需求跟踪D.变更控制

2.需求规格说明中,最核心的部分是(B)□

A.系统特性B.版本控制C.需求跟踪D.变更控制

3.以下(ABCD)可能导致需求分析的困难性的增加。

A.问题的复杂性B.需求易变性C.所分析的产品是全新的D.变流障碍

4.以下属于需求开发的四个方面之一的是(ABCD)o

A.问题获取B.综合分析C.需求描述D.需求验证

5.不属于软件需求的是(Bb

A.功能需求B.项目分工C.预先估计以后系统可能达到的目标D.软件成本消耗与开发进度需求

6.应当在(C)阶段规定性能要求:效率。

A.可行性分析B.概要分析C.需求分析D.详细设计

7.结构化语言是介于自然语言和形式语言之间的一种(Ab

A.板形式语言B.半自然语言C.高级语言D.过程性语言

8.软件需求分析阶段除了软件需求分析规格说明书,另一个可能产出的文档是(D)o

A.软件维护说明是B,可行性分析报告C.概要设计说明书D.初步的用户手册

9.结构化分析(SA),是面向(B)进行需求分析的方法。

A.对象B,数据流C.过程D.用户

二、填空题

1.需求分析阶段可分成问题识别、需求分析、制定规格说明书、评审。

2.实现目标系统逻辑模型的三个步骤是:获得当前系统的物理模型、抽象出当前系统的逻辑模

雪、建立目标系统的逻辑模型。

3.需求建模的三种主要模型是:数据模型、功能模型、行为模型。

4.数据字典是的四种条目类型数据流、数据文件、数据项、加工。

5.需求分析中开发人员要从用户那里了解软件是做什么的。

6.需求分析阶段的任务是软件系统的功能。

三、思考题

1.数据流图有哪几种基本符合?

答:数据流图有四种基本符号,分别为:A数据输入的源点和数据输出的汇点,B加工,C数据流,

D数据存储文件。四种符号分别有相应的画法。

参考答案9

2.画数据流图原则是什么?

答:画数据流图的原则其实就是它的步骤,遵循这样的一个原则有助于数据流图的绘画。

首先画系统的输入/输出。将所要画的系统看作一个整体,确定这个整体与外界的联系。分析哪些是

从外界获取,哪些是提供给外界的,就分别是输入和输出。

其次,画系统的内部。这是画数据流图的主要部分。一般遵循自顶向下,由外向内的原则。

3.数据流图在软件分析中的作用是什么?

答:数据流图是结构化分析的基本工具,在需求分析中用它来建立现存/目标系统的数据处理模型。

它可以描述系统的分解,即系统由哪些部分组成,各部分的联系,以及数据流的转换加工过程等,

是一种很直观的方式。而用于软件设计时,这些处理将是生成最终程序功能模块的基础。

4.数据字典的作用?

答:数据字典是一种描述工具,它包括对词条的描述、数据结构的描述和加工逻辑说明。数据模型

在描述细节、特殊情况等方面有所不足,比如数据流图描述了系统的组成和分解,但并没有说明系

统各个成分的含义,所以必须为数据流图中出现的每一个成分给出定义,因此有必要配合文字的数

据说明。数据字典就是这种数据说明,两者结合才完整地描述了一个系统。

5.简述什么是状态图及其元素。

答:状态图(状态转换图)用来描述行为模型,行为模型也称状态机模型,通过描述系统的状态以

及引起状态转换的事件来表示系统的行为。

状态图有事件、状态、行为等基本元素。事件是引起状态转换的控制信息,它发生在某个特定的时

刻,引起系统从一个状态转换到另一个状态。

6.需求分析的原则和任务是什么?

答:需求分析的原则是:必须能够表达和理解问题的数据域和功能域;按自顶向下、逐层分解的方

式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。

需求分析的任务是发现、求精、建模和规约目标系统的过程。包括由系统工程师建立并在软件项目

计划中细化的软件范围、创建所需数据信息和控制流、操作行为的模型,以及分析可选择的解决方

案、并将它们分配到各软件元素中去。

7.需求分析通常采用哪些分析技术?

答:软件需求分析中,常用的分析方法有面向数据流图的结构化分析方法(SA)面向数据结构的

Jackson方法(JSD)面向对象的分析方法(00A)用于建立动态模型的状态迁移图或Petri网等。

而且通常会建立模型以方便问题的表达和理解,有行为模型、功能模型、数据模型。在这三种模型

中分别采用的表达工具有E-R图、数据流图、状态图,同时还有数据字典。

8.什么是结构化分析?他的结构化体现在哪里?

答:结构化分析方法利用抽象模型的概念,对需求的功能自顶向下逐层分解,使复杂的系统分解成

足够简单,能够清楚地被理解和表达的若干子系统,便于软件结构设计为止。结构化对问题空间的

理解采用分层的方法,逐层分解,由抽象到具体。

参考答案11

9.需求分析的过程主要有那几个步骤?

答:需求分析是一个包括创建和维持系统需求文档所必需的一切活动的过程,主要步骤包括需求导

出和分析、需求描述和文档编写、需求有效性确认这几个通用的高层需求过程活动。

需求导出和分析是软件开发人员和客户,以及系统最终用户一起调查系统应用领域的活动,该活动

是一个非常困难的过程。需求描述是对系统开发需求的正式表达,以需求规格说明文档的形式给出。

需求确认是检验需求能否反映客户的意愿。它和分析有很多共性,都要发现需求中的问题。

第4章总体设计

一、选择题

1.软件设计中划分模块追求的是(B卜

A.搞内聚高耦合B.高内聚低耦合C.低内聚高耦合D.低内聚低耦合

2.模块的内聚性越高,则说明模块内部各元素之间的联系越(B卜

A.松散B.紧密C.不变D.公共

3.7中耦合中,(C)耦合的耦合性最低。

A.数据B.非直接C.内容D.功能

4.如果一个模块内各元素都使用同一输入数据或产生同一输出数据,则称这种内聚为(B)。

A.过程B.通信C.逻辑D.功能

5.模块结构图中,采用(A)来表示模块。

二、填空题

1,衡量模块独立程度标准的有模块间的耦合性和模块的内聚性。

2.速食史是指模块之间相互联系的紧密程度,内卷性是指模块内部各元素之间联系的紧密程度。

3.如果一个模块内部各元素集中于同一个整体,共同完成某一单一的功能,则称该内聚为功能内

聚。

4.如果一个模块内各功能在同一时间段内执行,则称该内聚为时间内聚。

5.模块调用通常有判断调用和循环调用两种形式。

6.DFD的信息流可以分为两种类型,一种是变换流,另一种是事务流。

三、思考题

1.什么是模块独立性?

答:模块独立性是指每个模块只完成某一特定的子功能,而与其他模块之间的联系简单。换句话说,

如果一个模块只具有某单一的功能,而与其他模块没过多的联系,那么,我们就说该模块具有较高

的模块独立性。

4.简要诉述变换流行的数据流图三个组成部分。

答:变换流型的数据流图一般由输入、变换(主加工)和输入三部分组成。在输入部分中,系统输

入端的数据流称为物理输入,物理输入通过预处理、编辑和格式转换等辅助性加工后,转换成逻辑

输入。接着数据流通过逻辑输入进入主加工,从主加工流出的即为逻辑输出。逻辑输出通过预处理、

编辑和格式转换等辅助性加工后,转换成物理输出。这样,对数据流图进行划分,从物理输入到逻

辑输入部分构成了系统的输入流,从逻辑输出到物理输出部分构成了系统的输出流,而位于它们之

间的部分便是变换中心。

参考答案13

第5章详细设计

一、选择题

1.软件详细设计的主要任务是确定每个模块的(C)0

A.功能B.外部接口C.算法和使用的数据结构D,编程实现

2.下面关于PDL语言不正确的说法是(Cb

A.PDL的外层语法必须符合一般程序设计语言常用的语法规则

B.PDL是一种伪码

C.PDL是只加工的具体实现

D.PDL是描述处理过程怎么做

3.PAD图在(C)可以大大提高开发效率。

A.系统分析B.自动分析数据C.软件的自动化生成D.测试软件

4.下列巩固在软件详细设计过程中不采用的是(C)0

A.PDLB.N-S图C.DFD图D.PAD图

5.Jackson方法是软件设计中用到的一种常用的设计方法,使用Jackson方法可以实现(Db

A,从模块结构导出数据结构B.从模块结构导出程序结构

C.从数据流图导出初始的结构图D.从数据结构导出程序结构

二、填空题

1.程序流程图也称程序框图,包括三个基本的成分:加工处理步骤、逻辑条件和控制流向。

2.为了实现使用程序流程图描述结构化程序,必须限制程序流程图只使用以下五种基本控制结构:

顺序型、选择型、先判定(while)型循环、后判定(until)型循环和多情况(case)型选择。

3.PAD图是一种描述程序逻辑结构的图形工具,这种图形由程序流程图演化而来,它把程序的结

构表示成二维树型结构。

4.过程设计语言属于一种伪码,是一种描述模块算法设计及处理细节的语言。

5.Jackson方法简称JSD,是一种典型的面向数据结构的设计方法。

三、思考题

1.简要叙述在程序的结构化设计中必须遵守哪些原则?

答:在程序的结构化设计中,必须遵守以下几点原则:

(1)程序语言中尽量少用goto语句,这样才使得程序结构更加清晰,便于阅读和查错。

(2)采用单入口和单出口的控制结构,使得程序的动态执行能与其静态结构相一致,从而有利于对

程序的理解。而要实现单入口和单出口的控制结构,则须要采用顺序、选择和循环这三种基本

控制结构,使得程序结构简单化。

(3)利于自顶向下逐步求精的方法进行程序设计。

2.简要叙述N-S图具有的特点。

答:N-S图具有如下特点:

(1)图形的条理清晰,易于理解。

(2)便于确定全局数据和局部数据的作用域。

(3)有效地限制了随意地使用控制转移,符合了结构化程序设计的原则。

(4)易于表现模块的层次结构及其嵌套关系。

参考答案15

3.简述PAD图具有的特点。

答:PAD图具有如下特点:

(1)对于程序结构的描述更加清晰、直观。

(2)支持自顶向下、逐步求精的设计方法。

(3)描述出来的图形层次结构分明,其中每条纵线代表一层,给人一种很直观的层次感,增强了其

可读性。

(4)可采用相关软件工具将PAD图转化为高级语言程序,通过这种自动化的方式,可大大提高了

软件的生产率。

4.Jackson方法的核心思想是什么?

答:Jackson方法的核心思想是:对输入输出的数据结构进行分析,并按照一定的规则来导出程序的

结构。

5.将下面的伪代码用PAD图表示。

N=0;

DOWHILEN<20

IFS(N)<=S(N+l)

THENMIN=S(N);

ELSEMIN=S(N+l);

ENDIF;

N=N+1;

ENDDO;

答:对应的PAD图如图A-10所示。

图A-10PAD图

第6章面向对象技术

一、选择题

1.面向对象技术使数据和操作(C)于对象的统一体中,很好的实现了信息的(B卜

A.抽象B.隐藏C.封装D.结合

2.使用UML进行描述时,类与类的关系一般有多种关系,其中不包括以下的(Ab

A.聚集B.依赖C.泛化D.关联

3.在UML用例图中,用例之间也可以存在不同的关系,其中不包括以下的(D卜

A.泛化B.包含C.扩展D.关联

4.对象模型通常用(C)来描述。

A.数据流图B.状态图C.对象图D.结构图

5.动态模型一般通过(B)来描述。

A.数据流图B.状态图C.对象图D..结构图

参考答案17

6.以下说法错误的是(Cb

A.对象是世界客观存在的实体,任何事物都是对象。对象的概念有很强的表达能力和描述功能。

B.面向对象技术的多态性和继承性使得开发出来的软件具有更加广泛的重用性和可扩充性。

C.面向对象多态性允许不同的类对同一消息做出响应,它防止了程序由于相互依赖二带来的变动的

影响。

D.封装是将对象的状态信息和行为捆绑为一个逻辑单元的机制,它屏蔽了对象的内部实现细节,是

一种信息隐藏技术。

7.面向对象的分割测试方法与传统测试时采用的等价类划分方法类似,以下选项中,不属于分割测

试的是(D卜

A.基本状态的分割测试B.基于属性的分割测试

C.基于功能的分割测试D.基于操作的分割测试

二、填空题

1.一个对象通常由对象名、属性和操作三部分组成。对象名是标示该对象的名称。属性包含

对象的数据,表明一个对象的状态。操作通常称为方法,它作用于对象的数据,表示的是对

象的行为。

2.类是对象的抽象,对象是类的实例化。

3.对象之间进行通信的构造叫做遁皂_。

4.面向对象方法中,子类共享父类的数据和方法的机制称为里至。

5.面向对象的问题解析模型主要从3个侧面进行描述,分别对应三种模型,即对象模型、动态

模型和功能模型。

6.在进行面向对象分析和设计时,复杂问题的对象模型可以抽象成下述五个层次,它们分别是

主题层、结构层、服务层和属性层。

7.面向对象设计具有其自身的一些特点,通常遵循以下一些准则,如模块化、信息隐蔽和

强内聚性0

三、思考题

1.面向对象的基本概念包括对象、类、继承和消息通信等概念,试简述面向对象基本概念的几个

要点0

答:面向对象的基本概念主要包含以下几个要点:

(1)面向对象方法认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较

简单的对象以某种方式组合而成。

(2)面向对象方法把所有对象都划分成各种类(Class),每个类都定义了一组数据和一组方法。数

据表示的是对象的静态属性,表明对象的状态信息。方法表示对象所能执行的操作,也就是类所能

提供的服务。

(3)面向对象方法按照子类(派生类)与父类(基类)的关系,把若干个类组成一个层次结构的系

统。

(4)面向对象方法认为对象彼此之间仅能通过传递消息互相联系。对象之间的消息传递机制很好地

保证了对象之间的独立性,使开发出来的软件具有更好的可重用性和可维护性。

3.什么是主题?为什么要使用主题?

答:主题是在对象和结构的基础上更高一层的抽象,是为了提供面向对象分析结果的可见性。在面

向对象分析中,主题是一种指导读者(如管理者、负责人等)和用户研究大型复杂模型的机制。主

参考答案19

题有助于分解大型项目以便建立工作小组。主题所提供的机制可控制一个用户必须同时考虑的模型

数目,给出面向对象分析模型的总体概貌,从某种意义上说相当于一种视图或面向过程里的模块和

子系统。它的一个重要的作用就是为了对总体分析之后的结果便于理解和整体把握。

真实系统中有着大量的类和结构。包含几十个类的系统是中等规模的,大型的系统包含上百个甚至

更多的类。这时应该提供好的通信条件以避免分析人员和用户的信息过量。首先通过控制分析人员

能见到的层次数目来控制可视性。其次可以对读者进行引导,可以从一个相当高的层次来表示总体

模型。开发小型系统时,由于开发模型比较简单,所以无需引入主题。在开发中型以及大型系统时,

对象往往较多,其程序复杂度大大增加,所以需引入了主题的概念。

第7章程序编码

一、选择题

1.从软件工程的观点来看,程序设计语言的工程特征不包括(D卜

A.可移植性B.可重用性C,可维护性D.安全性

2.在程序编码中,首要考虑的是(C卜

A.程序效率B.程序的一致性C.程序的可读性D.程序的安全性

3.编程语言的选择与(A)无关。

A.程序设计风格B.软件开发方法C.软件的运行环境D.软件开发人员的知识

4.应该为每个源程序模块编写注释,序言性注释写明了(B卜

A.模块的用途B.模块功能、接口和开发简史C.模块的调用关系D.模块的开发者

5.与编码风格有关的因素不包括(D)o

A.源程序文档化B,表达式和语句构造C.输入输出D.程序效率

6.在人工智能领域比较常用而且具有非常强的表处理功能的函数式程序设计语言是(Cb

A.CobolB.PrologC.LISPD.APL

7.以谓词逻辑为基础,核心是事实、规则和推理机制的逻辑型程序设计语言是(Bb

A.CobolB.PrologC.LISPD.APL

8.程序设计语言一般可分为低级语言和高级语言,与高级语言相比,用低级语言开发的程序(B卜

A.运行效率低,开发效率低B.运行效率高,开发效率低

C.运行效率低,开发效率高D.运行效率高,开发效率高

9.下列叙述正确的是(A卜

A.为了提高程序的运行速度,优势可以采用以空间换时间的办法

B.在软件开发过程中,程序编码的代价最高

C.良好的程序设计风格应该以提高程序效率为原则

D.用高级语言编写的程序比用低级语言编写的程序运行速度要快

二、填空题

1.程序设计语言用于书写计算机程序,它包含语法、语义和语用三方面。

2.程序控制一般包括顺序、选择、循环三种基本结构。

3.程序效率是一个性能指标,其目标值应该在需求分析阶段给出。

4.语句构造的原则是简单直接,不能为了盲目追求效率而使代码复杂化。程序效率可以分为

全局效率和局部效率,又可以分为时间效率和空间效率。程序效率与程序的执行速度和

程序占用的存储空间有关。

参考答案21

5.追求程序效率应该建立在不损害程序可读性或可靠性的基础上。提高程序效率的根本途径

在于选择良好的设计方法、数据结构与算法,而不是靠编程时对程序语句做调整。

6.编码安全是程序设计过程不能忽视的一个问题。编码安全主要涉及软件容错技术,在程序编码

过程中,主要通过冗余程序设计和防错程序设计来提高程序设计的质量。

7.结构化程序设计方法的蛀牙原则可以概括为自顶向下,逐步求精,模块化和限制GOTO

语句使用。

三、思考题

2.程序设计风格包括哪些内容,应该注意哪些方法?

答:程序设计风格是指一个人编程的特点、习惯、逻辑思路等。培养良好的程序设计风格应该注意

源程序的文档化、数据说明、语句构造、输入输出等方面。

4.语句构造应该注意哪些方面?遵循哪些原则?

答:语句构造的原则是:简单直接,不能为了追求效率而使代码复杂化。为了使阅读和理解方便,

不要一行多个语句。不同层次的语句采用缩进形式,使程序的逻辑结构和功能特征更加清晰。要避

免复杂的判定条件,避免多重点循环嵌套。表达式中使用括号以提高运算次序的清晰度等式。

第8章软件测试

一、选择题

1.软件测试的目的是(C卜

A.验证程序正确性B.证明程序没有错误

C.发现程序中的错误D.提高软件质量

2.以下对软件测试基本原则的描述,不正确的是(Db

A.应该由第三方进行测试工作B.穷举测试是不可能的

C.充分主要到错误的群集现象D.测试的规模应该从大到小

3.在软件开发模型中,软件测试的对象是(Ab

A.软件工程各阶段所得到的一切文档和程序

B.软件工程各阶段所得到的文档

C.软件的源程序

D.软件的规格说明

4.白盒测试是一种常用的动态测试方法,可以参考以下一些基本的测试原则,其中不包括(Cb

A.保证程序模块中每个独立的路径至少测试一次

B.保证所有判断的每一个分支至少测试一次

C.保证程序中每一条语句都至少测试一次

D.保证每一个循环都在边界条件和一般条件下至少测试一次

5.用黑盒技术设计测试用例的方法之一为(A)o

A.等价类划分B.逻辑覆盖C.循环覆盖D.基本路经测试

6.下列说法正确的是(Db

A.经过测试的软件不再存在错误

B.测试只能发现源程序代码中的错误

C.一组测试用例是条件覆盖,则一定是语句覆盖、

D.一组测试用例是判定覆盖,则一定是语句覆盖

参考答案23

二、填空题

1.测试用例是用来检测程序的,它主要包括输入数据和预期结果两部分。

2.按测试用例设计方法,软件测试可分为白盒测试和黑盒测试。按测试的策略和过程,软件

测试可分为单元测试、集成测试、确认测试和系统测试。

3.软件错误有各种各样的分类方法,按照软件周期各个阶段分类,可以分为:问题定义错误、规

格说明错误、设计错误和编码错误;按照错误的性质和范围进行分类,错误又可以分为如下几

类:功能错误、系统错误、算法错误、数据错误和代码错误。

4.静态分析中进行人工测试的主要方法有理醛之、代码评审和走查。

5.用黑盒法设计测试用例,常用的方法和技术有:等价分类法、边界值分析法和错误推测法。

三、思考题

3.什么是白盒测试?白盒测试的覆盖标准有哪些?试对它们的检错能力进行比较。

答:(1)白盒测试把被测的程序看成一个透明的白盒子,即完全了解程序的内部结构和详细的处理

过程,测试是在程序的内部结构上进行的。白盒测试从程序的逻辑结构入手,按照程序的内部逻辑

结构测试、检验程序。

(2)白盒测试法的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、

路径覆盖。

(3)①语句覆盖检测错误能力最弱。满足判定覆盖的测试用例一定满足语句覆盖,但它可能会使一

些条件得不到测试。②条件覆盖对每一条件进行单独检查,一般情况它的检错能力较判定覆盖强,

但有时达不到判定覆盖的要求。③判定/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机

系统软件实现方式的限制,实际上不一定达到条件覆盖的标准。④条件组合覆盖发现错误能力较强,

涵盖了前面四种覆盖标准。⑤但以上的覆盖标准还可能会使程序某些路径没有执行到。路径覆盖根

据各判定表达式取值的组合,使程序沿着不同的路径执行,查错能力强。但由于它是从各判定的整

体组合出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

4.什么是单元测试?简述单元测试的内容。

答:(1)单元测试又称为模块测试。单元测试集中检查软件设计的最小单元——模块。单元测试一

般采用白盒测试法,以详细设计说明书为指南,对模块的重要执行路径进行测试,以发现程序

内部逻辑结构的错误。

(2)单元测试的内容主要包括模块接口测试、局部数据结构测试、路径测试、出错处理测试和边界

测试。

5.什么是确认测试?该阶段主要有哪些工作?

答:(1)确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确

定的指标相符合。确认测试阶段有两项工作,除了进行确认测试以外还要进行软件配置审查。

(2)确认测试一般是在模拟环境中运用黑盒测试方法,由专门测试人员和用户参加的测试,如a

测试和B测试。软件配置审查的任务是检查软件的所有文档资料的完整性、正确性。如果发现

遗漏和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论