admin 管理员组

文章数量: 1087135


2025年1月1日发(作者:伦勃朗光教父)

《软件工程》练习题一

一、单选题

1.可行性研究要进行一次( C )需求分析。

A.详细的 B.全面的 C.简化的、压缩的 D.彻底的

2.系统流程图用于可行性分析中的( A )的描述。

A.当前运行系统

C.目标系统

B.当前逻辑模型

D.新系统

D.物理系统

D.四

D .需求评审

D.厚度

3.系统流程图是描述( C )的工具。

A.逻辑系统 B.程序系统 C.体系结构

4.软件的发展经历了( D )个发展阶段。

A .一 B.二 C.三

5.需求分析的任务不包括( B )。

A.问题分析 B.系统设计

C.需求描述

6.一个软件的宽度是指其控制的( C )。

A.模块数 B.层数 C.跨度

7.可行性研究的步骤中不包括( C )的内容。

A.复查初步分析结果

C.导出新系统高层逻辑模型

B.研究现有系统

D.建立新系统的物理逻辑模型解法

8.技术可行性是可行性研究的关键,其主要内容一般不包括( C )。

A.风险分析 B.资源分析 C.人员分析 D.技术分析

9.提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错

误技术无法做到完美无缺和绝无错误,这就需要( D )。

A.消除错误 B.检测错误 C.避开错误 D.容错

D.技术评审

10.( D )是以提高软件质量为目的的技术活动。

A.技术创新 B.创新 C.技术创造

A.软件生存期

C.面向对象程序设计

B.面向对象设计

D.面向对象分析

11.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( D )。

12.软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的( A )

阶段。

A.各个 B.前期 C.中期 D.后期

13.从事物的属性侧面来描述事物的方法就是( B )的方法。

A.面向对象 B.面向过程 C.面向数据 D.面向属性

14.Jackson方法在需求分析阶段的主要步骤不包括( A )。

A.了解实体行为

C.生成实体结构图

B.标识实体与行为

D.创建软件系统模型

B.需求确定的

D.实时

15.原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。

A.需求不确定性高的

C.管理信息

16.原型化方法是一种( A )型的设计过程。

A.自外向内 B.自顶向下 C.自内向外

A.设计软件的模块结构

C.生成概要设计规格说明和组装测试计划

D.自底向上

17.软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务不包括( D )。

B.定义接口并建立数据结构

D.模块设计

18.软件开发部分的任务是将系统对软件的需求转换成可操作的系统要素,即( A )。

A.软件 B.硬件 C.文本 D.说明

19.下列关于瀑布模型的描述正确的是( D )。

A.利用瀑布模型,如果发现问题修改的代价很低

B.瀑布模型的核心是按照软件开发的时间顺序将问题简化

C.瀑布模型具有良好的灵活性

D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开

D.测试方案

20.总体设计的目的是确定整个系统的( B )。

A.规模 B.功能及模块结构 C.费用

( A )。

A.时间内聚

21.如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为

B.逻辑内聚 C.通信内聚 D.信息内聚

22.软件需求分析的任务不包括( C )。

A.问题分析 B.信息域分析 C.结构化设计 D.确定逻辑结构

23.进行需求分析有的多种描述工具,但不包括( C )。

A.数据流图 B.判定表 C.PAD图 D.数据字典

24.在需求分析过程中,分析员要从用户那里解决的最重要的问题是( A )。

A.要求软件做什么

C.要求软件工作效率如何

B.要给软件提供什么信息

D.要求软件具有什么样的结构

25.以下软件成本估算模型中,是动态多变量的模型有( C )。

A.Halstead 理论模型 B.Deiphi 专家估算模型

C.Putnam 估算模型 D.COCOMO 模型

26.关于快速建立渐进原型(RCP 法)的论述不正确的是( C )。

A.RCP法建立的原型反映了系统的某些主要特征。

B.RCP法采用循环渐进的开发方式,对系统模型作连续精化。

C.RCP法建立需求规格原型,当需求说明一旦确定原型被废弃。

D.RCP法也称为追加(add on)型的原型化方法。

27.面向对象的开发方法的工作模型是( B )。

A.瀑布模型 B.喷泉模型 C.智能模型

28.中级结构性成本模型COCOMO是一个( C )。

A. 静态单变量模型

C. 静态多变量模型

B. 动态单变量模型

D. 动态多变量模型

D.循环模型

29.研究开发所需要的成本和资源是属于可行性研究中的( B )研究的一方面。

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

30.面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。

A. Booch方法 B. Coad方法 C. UML语言 D. OMT方法

31.瀑布模型本质上是一种( A )。

A. 线性顺序模型

C. 线性迭代模型

B. 顺序迭代模型

D. 及早见产品模型

32.在SD方法中全面指导模块划分的最重要的原则是( D )。

A. 程序模块化 B. 模块高内聚 C. 模块低耦合 D. 模块独立性

33.软件结构图的形态特征能反映程序复用率的是( C )。

A. 深度 B. 宽度 C. 扇入 D. 扇出

34.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性

称为( B )。

A. 可用性 B. 可靠性 C. 正确性 D. 完整性

D. 通信内聚

35.为了提高模块的独立性,模块内部最好是( C )。

A. 逻辑内聚 B. 时间内聚 C. 功能内聚

36.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。

A. 调用关系 B. 组成关系 C. 链接关系 D. 顺序执行关系

37.需求分析最终结果是产生( B )。

A. 项目开发计划

C. 设计说明书

B. 需求规格说明书

D. 可行性分析报告

C. 逻辑产品 D. 物理产品

38.软件是一种( C )。

A. 程序 B. 数据

39.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为( C )。

A. 软件工程 B. 软件周期 C. 软件危机 D. 软件产生

40.Putnam成本估算模型是一个( D )模型。

A. 静态单变量 B. 动态单变量 C. 静态多变量 D. 动态多变量

41.IDEF0图不反映( B )。

A. 系统做什么

C. 系统由谁来做

B. 系统功能如何实现

D. 系统实现的约束条件

C. 偶然内聚 D. 功能内聚

D.容错性

42.模块的内聚性最高的是( D )。

A. 逻辑内聚 B. 时间内聚

43.软件复杂性度量的参数包括( B )。

A.效率 B.规模 C.完整性

44.需求分析中开发人员要从用户那里了解( A )。

A. 软件做什么 B. 用户使用界面 C. 输入的信息 D. 软件的规模

45.IDEF0图反映系统( D )。

A. 怎么做 B. 对谁做 C. 何时做 D. 做什么

D. 开发风险

46.经济可行性研究的范围包括( C )。

A. 资源有效性 B. 管理制度 C. 效益分析

策依据,因此必须给出( B )的回答。

A. 确定 B. 行或不行 C. 正确

47.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是该系统是否开发的决

D. 无二义

48.需求分析阶段的任务是确定( D )。

A. 软件开发方法 B. 软件开发工具 C. 软件开发费 D. 软件系统的功能

49.在屏蔽硬件错误的容错技术中,冗余附加技术有( D )。

A. 三模冗余 B. 信息冗余

C. 冗余备份程序的存储及调用

称为( B )。

A. 可用性

D. 关键程序和数据的冗余存储和调用

50.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性

B. 可靠性

C. 正确性

B. McCall模型

D. 时间估算法

D. 完整性

51.下列模型属于成本估算方法的有( A )。

A. COCOMO模型

C. McCabe度量法

二、填空题

1.在软件开发过程中要产生大量的信息,要进行大量的修改,(软件配置管理)能协调软件

开发,并使混乱减到最低程度。

2.规定功能的软件,在一定程度上对自身错误的作用具有屏蔽能力,则称此软件具有(容错

功能)的软件。

3.McCall提出的软件质量模型包括(11 )个软件质量特性。

4.软件结构是以(模块)为基础而组成的一种控制层次结构。

5.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P=( F/(1+(n*i)) )。

6.软件工程是从(管理)和(技术)两个方面研究如何更好的开发和维护计算机软件的一门学

科。

7.软件开发技术包括软件开发方法学、(软件工具)和(软件开发环境)。

8.结构化分析方法使用数据流图DFD和(数据字典DD )来描述。

9.模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和(可测试性)。

10.在分层的数据流图中,称上层图为下层图的(父图),下层图为上层图的(子图)。

11.Jackson图既可用表达程序结构,也可用表达(数据结构)。

12.实现容错的主要手段是冗余和(防错程序设计)。

13.软件有效性,指软件系统的时间和(空间)效率。

14.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。

15.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。

16.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。

17.一个软件的深度是指其控制的(层数)。

18.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。

19.软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。

20.软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过程)。

21.任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成

一个信息变换模型。

22.软件项目管理的对象主要包括产品、过程和(资源)等。

23.计算机系统工程是用工程、科学和(数学)的原则与方法研制基于计算机的系统的有关技

术、方法和过程。

24.在Jackson方法中,实体结构是指实体在时间坐标系中的行为序列。这种序列以(重复)、

顺序和选择三种结构进行复合。

25.一个模块的“扇出数”是指该模块直接控制的其他(模块数)。

26.软件可适应性,是指软件在不同的(系统约束)条件下,使用户需求得到满足的难易程度。

27.如果一个模块控制另一个模块,称前者为主控模块,后者为(从属)模块。

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

29.软件可修改性,是指允许对软件系统进行修改而不增加其(复杂)性。

30.一般来说,产品、过程、资源等对象都具有内部属性和(外部)属性。

31.软件开发风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤,包括(风

险估算)、风险标识、风险评价、风险驾驭和监控。

32.基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。

33.数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分别表

示数据流、转换、(数据源)以及外部实体。

34.成本估算模型中,Putnam估算模型是一种(动态多变量)模型。

35.功能模型描述子系统的所有计算,它由多张(数据流图)组成。

36.结构化程序设计方法是使用(三种基本控制结构)构造程序。

37.按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和(事务分析

设计)。

38.数据流图仅反映系统必须完成的逻辑功能,所以它是一种(功能)模型。

39.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和(用户

组织的管理模式及规范)。

40.软件开发方法是一种使用早已定义好的技术集及(符号表示习惯)来组织软件生产的过

程。

41.数据项是指(不可再分解的)数据单元。

42.瀑布模型是以文档为驱动、适合于(软件需求明确)的软件项目的模型。

43.纯收入是指在整个生存周期之内的(累计经济效益(折合成现在值)与投资之差。

44.CASE工具的平台集成指工具运行在相同的(硬件/操作系统)平台上。

45.将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不

同之处,并估算每个不同之处对成本的影响,得出开发项目的总成本。这种成本估算方法称

为(差别估算法)。

三、判断题

1.在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(错)

2.SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(对)

3.HIPO 法既是需求分析方法,又是软件设计方法。(对)

4.在面向对象的需求分析方法中,建立动态模型是最主要的任务。(错)

5.需求分析的主要方法有SD法、OOA法及HIPO法等。(错)

6.分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。(错)

7.用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、

现实性和有效性。(对)

四、名词解释

1. 软件生存周期模型

软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

2.数据字典DD

数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性

的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

3.内聚性

内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部

各个元素彼此结合的紧密程度的度量。

4.JSP方法

JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它

根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。

5.软件生存周期

软件生存周期包括一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括:

可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。

6.概要设计

概要设计是在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能实现。

7.耦合性

也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联

系越紧密,其耦合性就越强,模块的独立性则越差。

8.信息隐蔽

信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不

需要这些信息的其他模块来说是不能访问的。

9.模块的作用范围

一个模块的作用范围是指受该模块内一个判定影响的所有模块的集合。

10.SA

结构化分析方法(SA)是需求分析中使用最多的方法之一,适用于数据处理类型软件的需

求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的

复杂性。

11.CASE

CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。

CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸

收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的

原理和技术。因而,CASE领域是一个应用、继承和综合的领域。

12. .结构化分析方法

结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分

析。基本思想是采用自顶向下、逐步分解的方法分析整个系统,有效地控制系统开发的复杂

性。

五、简答题

1.模块的内聚性包括哪些类型?

模块的内聚性包括:

(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚

2.软件产品具有哪些特性?

(1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。

(2)软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发

中被创造出来的。

(3)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。

(4)软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

(5)软件的开发至今尚未完全摆脱手工的开发方式。

(6)软件的开发费用越来越高,成本相当昂贵。

3.什么是耦合?什么是内聚?

耦合是对一个软件结构内各个模块之间互连程度的度量。

内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然

扩展。

4.什么是计算机软件?

计算机软件包括与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数

据。

5.需求分析的任务是什么?

需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需

求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步

的用户手册。

6.如何对软件项目进行成本管理?

项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使用估

算软件。

7.快速原型技术的基本思路是什么?

在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意

见,然后开发人员根据用户的意见对原型进行改进。

8.什么是软件危机?

软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

9.软件项目的质量管理包含哪几方面?

(1)制定软件质量保证计划。

(2)按照质量评价体系控制软件质量要素。

(3)对阶段性的软件产品进行评审。

(4)对最终软件产品进行确认,确保软件质量。

10.螺旋模型的适应场合有哪些?

支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象

等多种软件开发方法,是一种具有广阔前景的模型。

11.简述软件生存周期的五个阶段?

软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。

12.软件开发风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤,它包括哪

些主要内容?

(1)风险标识(2)风险估算(3)风险评价(4)风险驾驭和监控。

13.需求评审标准(按照重要性的次序)包括正确性、无歧义性、完全性、可验证性和其它

那些内容?

(1)一致性(2)可理解性(3)可修改性(4)可追踪性

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

(1)引言。(2)可行性研究前提。(3)对现有系统的分析。(4)所建议系统的技术可行性

分析。(5)所建议系统的经济可行性分析。(6)社会因素可行性分析。(7)其他可供选择方

案。(8)结论意见。

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

(1)经费预算经常突破,完成时间一再拖延。(2)开发的软件不能满足用户要求。(3)开

发的软件可维护性差。(4)开发的软件可靠性差。

16.原型法模型一般适应哪些场合?

它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分

析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。

17.简答软件工程的目标是什么?

在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、

可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。

18.常用的软件项目的估算方法主要有哪4种?

(1)自顶向下的估算方法(2)自底向上的估算方法(3)差别估算法(4)根据经验估算公

19.软件危机产生的原因是什么?

(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开

发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率

提高缓慢。

20.什么是经济可行性?

进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。

21.为什么说“CASE领域是一个应用、集成和综合的领域”?

CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE

把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了

CAD、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。

22.软件复杂性度量的主要参数有哪些?简单说明其含义。

(1)规模:总共的指令数或源程序行数。(2)难度:通常由程序中出现的操作数的数目所

决定的量来表示。(3)结构:通常用与程序结构有关的度量来表示。(4)智能度:即算法的

难易程度。

23.试画出Jackson方法所用的结构图的三种基本结构及对应的图解逻辑。

(1)三种基本结构为:

顺序结构 选择结构 重复结构

(2)顺序结构的图解逻辑 选择结构的图解逻辑 重复结构的图解逻辑

A

A

seq A select(条件1) A iter while(条件)

B B B

C A or (条件2) A end

D C

end A end

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

软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付

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

要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

面临的主要问题是:软件费用、软件可靠性、软件维护、软件生产率、软件重用。

25.简述结构化程序设计方法的基本要点。

(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,

分别是顺序,选择和循环(3)采用主程序员组的组织形式。

六、理论应用题

1.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助

企业管理系统,其中:

生产科的任务是:

(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月

生产计划。

(2)根据车间实际生产日报表、周报表调整月生产计划。

(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。

(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间。

技术科的任务是:

(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生

外购需求计划给供应科,并产生产品自制物料清单。

(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件

厂。试写出以上系统中生产科和技术科处理的软件结构图。

答:

2.根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材

科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校

的会计科办理。

答:

3.可将软件生存周期划分为哪3个过程和哪9个阶段。

答:(1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。

(2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收

测试、使用与维护、退役。

4.已知一个软件项目的记录,开发人员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

5.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系

统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存

款日期、到期日期、利率及密码(可选)等信息,并印出存款存单给储户;如果是取款而且

存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利

息并印出利息清单给储户。

请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。

答:(1)描述本系统功能的数据流图如下所示:

1

存款单

记录存款

信息

2

打印存款

存款存单

储户

存款信息

存款信息

储户

D1

存款信息

存款信息

3

核对密码

存款信息

4

计算利息

利息值

4

打印利息

清单

取款单

(2)描绘计算机储蓄系统中数据对象的实体-联系图。

住址

电话号码

身份证号码

名称

地址

电话号码

姓名

M

储户

存取款

N

储户所

类型

数额

到期日期

利率

密码

6.画出银行取款过程的DFD 图。问题描述为:储户用存折取款,首先填写取款单,根据“ 账

卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款 数

据库”,修改相应数据,并更新“账卡”,同时发出付款通知,出纳向储户付款。

答:

7.图a中,模块G为判定,判断涉及到模块B、F、G,请指出设计中的错误,再根据改进

模块图的基本原则,画出1~2个改进方案(不改变模块G 的判断关系),并说明是按照哪条

基本原则进行改进的。

答:下图为一个改进方案,将模块G的位置提高,使其作用范围为控制范围的子集,减少

模块之间的联系。

8.图书馆的预定图书子系统有如下功能:

(1)由供书部门提供书目给订购组。

(2)订书组从各单位取得要订的书目。

(3)根据供书目录和订书书目产生订书文档留底。

(4)将订书信息(包括数目,数量等)反馈给供书单位。

(5)将未订书目通知订书者。

(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。

试根据要求画出该问题的数据流程图,并把其转换为软件结构图。

答:(1)数据流图:

(2)软件结构图:

9.根据下列描述,画出学生申请IC借书卡的第一层数据流图。学生入学后到图书馆申请

IC借书卡,图书馆管理人员根据IC借书卡库存情况分析是否需要购买新的IC借书卡,如

需购买,则向IC借书卡提供商购买。各种资金往来通过学校的会计科办理。

答:

《软件工程》练习题二

一、单选题

1.面向对象(Object Oriented)方法是将现实世界的事物以对象的方式( B )到计算机

世界的方法。

A.对应 B.映射 C.反映 D.反射

2.盒图也称为( D)或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方

式思考和解决问题。

A.流程图 B.框图

问题解的( A )结构。

A.程序 B.数据

C.判定表 D.N-S图

3.面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为

C.逻辑

D.物理

D.六

D.等价类划分

4.人机界面的风格大致经过了(B)代的演变。

A.三 B.四 C.五

5.以下不属于白盒测试技术的是( D )。

A.逻辑覆盖 B.基本路径测试 C.循环覆盖测试

6.为改正软件系统中潜藏的错误而进行的维护活动称为( A )。

A.纠错性维护 B.适应性维护 C.改善性维护 D.预防性维护

7.( D )工具在软件详细设计过程中不采用。

A.判定表 B.IPO图 C.PDL D.DFD图

8.当模块中包含复杂的条件组合,只有( D )能够清晰地表达出各种动作之间的对应关系。

A.关系图 B.盒图 C.流程图 D.判定树和判定表

9.以下不属于逻辑覆盖的是( D )。

A.语句覆盖 B.判定覆盖 C.条件覆盖 D.基本路径

10.为适应软件运行环境的变化而修改软件的活动称为( B )。

A.纠错性维护 B.适应性维护 C.改善性维护 D.预防性维护

11.程序的三种基本控制结构的共同特点是( D )。

A.不能嵌套使用

C.应该用硬件实现

B.只能用来写简单程序

D.只有一个入口和一个出口

B.隐含的错误

D.运行时误操作

12.产生软件维护的副作用,是指( C )。

A.开发时的错误

C.因修改软件而造成的错误

13.维护中,因误删除一个标识符而引起的错误是( C )副作用。

A.文档 B.数据 C.编码 D.设计

14.可维护性的特性中相互促进的是( A)。

A.可理解性和可测试性

C.效率和可修改性

B.效率和可移植性

D.效率和结构好

15.从事物的组成部件及每个部件的属性、功能来认识事物。这种方法被称为( A )的方

法。

A.面向对象 B.面向数据 C.面向过程 D.面向属性

16.判定表由四部分组成:左上部列出( B )。

A.条件组合与动作之间的对应关系

C.所有可能的动作

B.所有条件

D.可能的条件组合

17.根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为( C )。

A.纠错性维护 B.适应性维护 C.改善性维护 D.预防性维护

18.将软件组装成系统的一种测试技术叫( A )。

A.集成测试 B.单元测试 C.集合测试 D.系统测试

19.汽车有一个发动机。汽车和发动机之间的关系是( B )关系。

A.一般具体 B.整体部分 C.分类关系 D.主从关系

20.实践表明,确定发生错误的位置和内在原因所需的工作量几乎占整个调试工作量的

( D )%。

A.30 B.50 C.70 D.90

21.为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称

为( D )。

A.纠错性维护 B.适用性维护 C.改善性维护

22.为了提高测试的效率,应该( D )。

A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.选择发现错误可能性大的数据作为测试数据

D.预防性维护

23.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。

A.程序的内部逻辑

C.使用说明书

B.程序的复杂结构

D.程序的功能

24.统计表明,软件测试工作往往占软件开发总工作量的( B )%以上。

A.20 B.40 C.60 D.80

25.单元测试的测试对象是( B )。

A.系统 B.程序模块 C.模块接口 D.系统功能

26.维护工作量的估算模型为:M=P+Ke(c-d)其中:M代表( A )。

A.维护所用工作量 B.生产性工作量

C.助动性工作量 D.经验常数

27.维护的副作用可分三类,不包括( D )。

A.代码副作用 B.数据副作用 C.文档副作用

28.下列各方法中( D )不是软件测试方法。

A.白盒法 B.黑盒法 C.动态测试

29.软件测试的目的是( B )。

A.评价软件的质量

C.找出软件中的所有错误

B.发现软件的错误

D.证明软件是正确的

D.单元测试

D.人员副作用

D.盒法

30.白盒法又称为逻辑覆盖法,主要用于( D )。

A.功能测试 B.系统测试 C.

测试

31.结构化分析方法(SA 法)使用的主要描述工具有( D )。

A.数据库 B.模块结构图 C.PAD图 D.分层的DFD图

32.UML 中,包图是一种( C )。

A.集合 B.数据结构

C.分组机制 D.对系统的动态描述

33.软件可维护性的特性中相互矛盾的是( C )。

A. 可修改性和可理解性

C. 效率和可修改性

B. 可测试性和可理解性

D. 可理解性和可读性

D. 基本路径测试

D. 人工检测

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

A. 边界值分析 B. 逻辑覆盖 C. 循环覆盖

35.软件测试方法中的( D )属于静态测试方法。

A. 黑盒法 B. 路径覆盖 C. 错误推测

36.Ada语言是在Pascal语言基础上开发出来的,适用于( C)项目的应用领域。

A. 科学工程计算 B. 数据库应用

C. 实时处理 D. 人工智能

37.程序设计语言的工程特性之一为( A )。

A. 软件的可重用性 B. 数据结构的描述性

C. 抽象类型的描述性 D. 数据库的易操作性

38.软件详细设计的主要任务是确定每个模块的( A )。

A. 算法和使用的数据结构 B. 外部接口 C. 功能

39.PAD图为( B )提供了有力的工具。

A. 系统分析 B. 软件的自动化生成

D. 编程

D. 测试软件 C. 自动分析数据

40.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。

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

41.软件调试技术包括( B )。

A. 边界值分析 B. 演绎法

42.瀑布模型的存在问题是( B )。

A. 用户容易参与开发

C. 用户与开发者易沟通

A. 计算机辅助静态分析

C. 路径覆盖

C. 循环覆盖

B. 缺乏灵活性

D. 适用可变需求

B. 黑盒法

D. 边界值分析

D. 集成测试

43.软件测试方法中的静态测试方法之一为( A )。

44.软件生命周期中所花费用最多的阶段是( D )。

A. 详细设计 B. 软件编码 C. 软件测试 D. 软件维护

45.第一个体现结构化编程思想的程序设计语言是( B )。

A. Fortran语言 B. Pascal语言 C. C语言 D. PL/1语言

46.程序的三种基本控制结构是( B )。

A. 过程、子程序和分程序

C. 递归、堆栈和队列

B. 顺序、选择和重复

D. 调用、返回和转移

D. DFD

D. 可维护性

D. 程序易读性

47.在详细设计阶段,经常采用的工具有( A )。

A. PAD B. SA C. SC

48.详细设计的结果基本决定了最终程序的( C )。

A. 代码的规模 B. 运行速度 C. 质量

49.结构化程序设计主要强调的是( D )。

A. 程序的规模 B. 程序的效率 C. 程序设计语言的先进性

50.软件详细设计主要采用的方法是( D )。

A. 模块设计 B. 结构化设计 C. PDL语言

51.下列关于JSP方法不正确的说法是( D )。

A. JSP方法主要用于规模不大的数据处理系统

B. JSP方法不明确的划分软件概要设计和详细设计的两个阶段

C. JSP方法适用于输入数据和输出数据之间有对应关系的问题求解

D. 结构化程序设计

D. JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此

它只适用于详细设计阶段

52.不适合作为科学工程计算的语言是( D )。

A. Pascal B. C C. Fortran

53.黑盒测试在设计测试用例时,主要需要研究( A )。

A. 需求规格说明与概要设计说明 B. 详细设计说明

C. 项目开发计划 D. 概要设计说明与详细设计说明

54.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入

的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( C )。

A. 条件覆盖法 B. 等价分类法 C. 边界值分析法 D. 错误推测法

55.下列属于维护阶段的文档是( C )。

A. 软件规格说明

C. 软件问题报告

B. 用户操作手册

D. 软件测试分析报告

D. Prolog

56.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( B )。

A. 校正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护

57.类库这种机制是( D )级别的信息共享。

A. 同一类 B. 不同类 C. 同一应用 D. 不同应用

D. 环型

58.只有单重继承的类层次结构是( C )层次结构。

A. 网状型 B. 星型 C. 树型

59.下列文档与维护人员有关的有( C )。

A. 软件需求说明书

C. 概要设计说明书

B. 项目开发计划

D. 操作手册

60.采用Gantt图表示软件项目进度安排,下列说法中正确的是( D )。

A. 能够反映多个任务之间的复杂关系

B. 能够直观表示任务之间相互依赖制约关系

C. 能够表示哪些任务是关键任务

D. 能够表示子任务之间的并行和串行关系

二、填空题

1.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、(可移植

性)、可使用性和效率。

2.为了便于对照检查,测试用例应由输入数据和预期的(输出结果)两部分组成。

3.程序设计语言的心理特性主要表现在(歧义性)、简洁性、传统性、局部性和顺序性。

4.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表和(判

定树)。

5.结构化语言是介于自然语言和(形式语言)之间的一种半形式语言。

6.程序的控制结构一般采用(顺序)、(选择)、(循环)三种构成,这样可确保结构比较简单。

7.程序的效率是指程序的执行速度和(程序占用的存储空间)。

8.文档是一种数据媒体和其上所记录的(数据)。

9.机器语言、汇编语言:依赖于机器,面向(机器)。

10.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终

可运行的代码的过程叫(编码)过程。

11.软件维护是软件生命周期的(最后)一个阶段。

12.高级语言:独立于机器,面向过程或面向(对象)。

13.人机界面的风格第一代界面是命令和(询问)方式。

14.由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。

15.在公式V(G)=E-N+2中:E为程序图G中边的总数;N为程序图中结点的总数。V(G)又称

为图G的环形(复杂度)。

16.为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例

如,提问“你确实要删除…?”。

17.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度

优先策略)。

18.面向问题语言:是独立于(机器),非过程式语言4GL。

19.第二代界面是简单的(菜单)式。

20.使用类创建对象的过程实际上是类的(实例化)过程。

21.第三代界面是面向(窗口)的点选界面。

22.在编码阶段对代码的可测试性进行考虑可以(减少)测试阶段的工作量。

23.测试用例的设计应有第(三)方参与。

24.调试的目的是确定错误的位置和引起错误的原因,并加以(改正)。

25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间

的一些接口工作。

26.被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生类子类。

27.流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基本控制

构件。

28.软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。

29.动态测试有两种测试方法:黑盒测试和(白盒)测试。

30.软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、

适应环境变化等方面工作的(难易)程度。

31.在软件开发阶段用来减少错误,提高软件可维护性的技术称为(面向维护)的技术。

32.软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个(自底向上或相反顺

序)集成的过程。

33.JSP方法主要体现程序结构的设计,不明确地划分(软件概要设计)和详细设计的两个阶

段。

三、判断题

1.加工小说明是对系统流程图中的加工进行说明。( 错 )

2.判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。( 错 )

3.信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是 E-R

图。( 对 )

四、名词解释

1.多态性

指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或(不同的对象,

收到同一消息可以产生不同的结果。)

2.类

具有相似或相同性质的对象的抽象就是类。

3.对象

对象是客观实体在问题域中的抽象。

4.程序的可移植性

程序的可移植性指把一个软件(或程序)从一个计算机环境移植到另一个计算机环境的容易

程度。

5.系统流程图

系统流程图是描绘物理系统的工具,它用图形符号来表示系统中的各元素。它表达了系统中

各个元素之间的信息流动的情况。

6.集成测试

集成测试也称组装测试或联合测试。是指在单元测试的基础上,将所有模块按照设计要求组

装成一个完整的系统进行的测试。组装模块的方式有两种:渐增式测试和非渐增式测试。

五、简答题

1.简述容错技术的四种主要手段,并解释。

结构冗余:包括静态冗余、动态冗余和混合冗余。

信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。

时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。

冗余附加技术:指为实现上述冗余技术所需的资源和技术。

2.以的观点,简述对软件测试的目的。

软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发

现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。

3.就程序设计语言的工程特性而言,对程序编码有哪些要求?

就程序设计语言的工程特性而言,对程序编码有如下要求:

(1)可移植性

(2)开发工具的可利用性

(3)软件的可重用性

(4)可维护性

4.为什么软件测试不应该由程序的编写人员来做?

软件测试的目的是为了发现程序中的错误而执行程序的过程。

正确认识测试的目标是十分重要的,测试目标决定了测试力案的设计。如果为了表明程

序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发

现程序中的错误,就会力求设计出最能暴露错误的测试方案。

由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试

是不恰当的。

5.什么是编码风格?为什么要强调编码风格?

编码风格又称程序设计风格或编程风格。

编码的目标从强调效率转变为强调清晰。良好的编码风格能在一定程度上弥补语言存在

的缺陷,而如果不注意风格就很难写出高质量的程序。尤其当多个程序员合作编写一个很大

的程序时,需要强凋良好而一致的编码风格,以便相互通讯,减少因不协调而引起的问题。

总之,良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决

定着程序的质量。

6.程序设计语言有哪些特点?

程序设计语言具有一致性、二义性、紧致性、局部性等特点。

7.程序设计语言的三种类型和特点是什么?

(1)机器语言、汇编语言:依赖于机器,面向机器

(2)高级语言:独立于机器,面向过程或面向对象

(3)面向问题语言:独立于机器,非过程式语言(4GL)

8.好的编程风格应遵循哪四条规则?

(1)节简化(2)模块化(3)简单化(4)文档化

9.软件测试中按照错误的性质和范围进行分类可分为:“功能错误”及其它哪些错误?

(1)系统错误 (2)加工错误(算法错误)(3)数据错误 (4)代码错误

10.什么是静态测试?

静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。

11.什么是动态测试?

动态测试是指事先设计好一组测试用例,然后通过运行程序来发现错误。

12.软件测试过程一般可划分为哪几个主要阶段?

单元测试、集成测试、验收测试、系统测试

13.简述编码原则是什么?

(1)编写易于修改和维护的代码(2)编写易于测试的代码(3)编写详细的程序文档(4)

编程中采用统一的标准和约定,降低程序的复杂性(5)分离功能独立的代码块形成新的模

14.等价分类法的基本思想是什么?

根据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”,从等价类中

选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试。

如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会

有错误。

15.为什么面向对象的开发方法为软件IC(软件集成)及软件重用技术提供了良好的环境?

软件复用是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效

率,降低开发成本的目的。复用的软件成分—称为可复用构件(Reusable Component),从旧

软件中提取,也可以专门为复用而开发。面向对象方法之所以特别有利于软件复用,是由于

它的主要概念及原则与软件复用的要求十分吻合。支持复用的OO 概念与原则是:对象与

类、抽象、封装、继承与一般——特殊结构、整合与整体——部分结构、粒度控制、多态性。

对象与类:OO 方法用对象描述问题域中的事务,并用类作为同种对象的抽象表示。类是系

统的基本构成单位,它符合可复用构件所应具备的那些特性:完整性、独立性、可标识性、

一般性、抽象、封装:尤其是OO 方法的对象封装性,为软件复用技术提供了良好的条件。

16.简述三种面向对象模型的主要功能。

(1)对象模型:表示了静态的结构化的系统数据性质,描绘了系统的静态结构,从客观世

界实体的对象关系角度来描绘对象。

(2)动态模型:该模型描述了系统的控制结构,它表示了瞬间的、行为化的系统控制性质,

它关心的是系统的控制及操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象

的相互行为。

(3)功能模型:描述了系统的所有计算。指出发生的时间、事件和客体。

17.简述文档在软件工程中的作用。

(1)提高软件开发过程的能见度;

(2)提高开发效率;

(3)作为开发人员阶段工作成果和结束标志;

(4)记录开发过程的有关信息便于使用与维护;

(5)提供软件运行、维护和培训有关资料;

(6)便于用户了解软件功能、性能。

18.简述提高可维护性的方法。

(1)建立明确的软件质量目标

(2)利用先进的软件开发技术和工具

(3)建立明确的质量保证工作

(4)选择可维护的程序设计语言

(5)改进程序文档

六、理论应用题

1.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。

答:PDL语言:

N=1

WHILE N<=10 DO

IF A(N)<=A(N+1) MAX =A(N+1);

ELSE MAX =A(N) ENDIF;

N=N+1;

ENDWHILE;

PAD图:

2.根据下列条件使用等价类划分法设计测试用例。某一8位微机,其八进制常数定义为:

以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065。

答:(1)划分等价类并编号,如下表示:

(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子

(3)为不合理等价类测试用例,至少设计一个测试用例

3.根据下列N—S图,写出其对应的伪码。

答:

Start

a

b

Do Until x6

If xl then

f

If x4 then

Do Until x5

i

End Until

Else

g

h

End if

Else

Select Case x2

Case 1:

Do While x3

c

End While

Case 2:

d

Case 3:

e

End Select

End if

End. Until

Stop

4.画出与下图所示的程序流程图对应的程序图,并试计算其巡回秩数V(G)。

答:(1)程序图如下所示:

(2)计算其巡回秩数:V(G)=E–N +2=13–10 +2=5

5.用Jackson图描述下述的一列火车的构成:

一列火车最多有两个火车头。只有一个火车头时则位于列车最前面,若还有第二个火车

头时,则第二个火车头位于最车最后面。火车头既可能是内燃机车也可能是电气机车。车厢

分为硬座车厢、硬卧车厢和软卧车厢等3种。硬座车厢在所有车厢的前面部分,软卧车厢在

所有车厢的后面部分。此外,在硬卧车厢和软卧车厢之间还有一节餐车。

答:

火车

S

1车头 2车头

车头 硬座硬卧一节软卧车头

车头 硬座硬卧一节软卧

车厢 车厢 餐车 车厢 车厢 车厢 餐车 车厢

S I I I S I I I S

内 电一节一节一节内电一节一节一节内电

燃 气 硬座 硬卧 软卧 燃 气 硬座 硬卧 软卧 燃 气

6.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例并标明程序执行路径。

开始

a

(x>1) AND (y=0)

F

c

(x=2) OR (z>1)

F

e

结束

T

T

b

d

语句段1

语句段2

答:(1)语句覆盖测试用例

令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。

(2)判定覆盖——分支覆盖

可以设计如下两组数据以满足判定覆盖:

x=3,y=0,z=1(通过路径abce);

x=2,y=1,z=2(通过路径acde)。

x=2,y=1,z=1;覆盖路径acde

x=1,y=1,z=1;覆盖路径ace

x=3,y=0,z=1;覆盖路径abce

7.分别画出顺序结构、选择结构、while结构、until结构的程序图,并计算它们的V(G)

值。

(a)顺序结构

R1

V(G)= E –N + 2 = 1 –2 + 2 = 1

(b)选择结构

R2

R1

V(G)= E –N + 2 = 4 –4 + 2 = 2

(c)while结构

R1

R2

V(G)= E –N + 2 = 3 –3 + 2 = 2

(d)until 结构

答:

R1

R2

V(G)= E –N + 2 = 3 –3 + 2 = 2

8.什么是判定/条件覆盖?为以下程序流程图设计判定/条件覆盖测试用例并标明程序执行

路径。

开始

a

(x>1) AND (y=0)

F

c

(x=2) OR (z>1)

F

e

结束

T

T

b

d

语句段1

语句段2

答:(1)判定/条件覆盖——它是指设计足够的测试用例,即满足条件覆盖又满足判定覆盖。

(2)测试用例:x=2,y=0,z=3(覆盖x>1,y=0,x=2,z>1,通过路径abcde);

x=1,y=1,z=1(覆盖x≤1,y≠0,x≠2,z≤1,通过路径ace)。

9.画出下列伪码程序的程序流程图和盒图。

START

IF P THEN

WHILE q DO

f

END DO

ELSE

BLOCK

g

n

END BLOCK

END IF

STOP

答:

开始

P

q循环

WHILE q

g

f

n

F

p

q

g

T

q循环

n

f

停止

10.请建立下述的图书馆馆藏出版物的对象模型。

一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD、录音图书磁带和报纸等

出版物,供读者借阅。这些出版物有出版物名、出版者、获得日期、目录编号、书架位置、

借出状态和借出限制等属性,并有借出、收回等服务。

答:

馆藏出版社

出版物名

出版者

获得日期

目录编号

书架位置

借出状态

借出限制

借出

收回

作者

杂志

日期

小册子

作者

录像带

电影名

CD

演员名

录音图书

作者

报纸

日期

11.图中所示的程序流程图描绘了一个非结构化的程序。

(1)为什么说它是非结构化的?

(2)利用附加变量flag,设计一个等价的结构化程序,用盒图描绘你的设计结果。

(3)不用附加变量,设计一个等价的结构化程序,用盒图描绘你的设计结果。

答:

(1)如图所示程序的循环控制结构有两个出口,因此是非结构化的程序。

(2)利用附加变量flag设计的等价的结构化程序如下图

flag=0

F

p>0 T

flag=1 g

(q>=0) OR (flag=1)

(3)不用附加变量flag设计的等价的结构程序如下图

F

p>0

T

g

(p<=0)OR(q>=0)

12.对以下程序进行测试:

PROCEDURE EX(A,B:REAL;VAR X:REAL);

BEGIN

IF(A=3)OR(B> 1)THEN X:=A×B

IF(A>2)AND(B=0)THEN X:=A-3

END

要求:先画出程序流程图。再按语句覆盖法设计测试数据。

开始

A=3 OR B>1

B>

X=A+B

A>2 and B=0

X=A-3

返回

语句覆盖 A=3 B=0

13.高考录取统分子系统有如下功能:

(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;

(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线

文件。

答:

(1)数据流图:

(2)软件结构图:

① 原始分 ② 标准分 ③ 招生计划 ④ 录取线

试根据要求画出该系统的数据流程图,并将其转换为软件结构图。

14.下面是某程序的流程图:

(1)计算它的环路复杂性。

(2)为了完成基本路径测试,求它的一组独立的路径。

答:(1)

环路复杂性=判断数+1=6+1=7(个)

(2)

路径1: 0—①—(13)—(19)

路径2: 0—②—③—(14)—(19)

路径3: 0—②—④—⑤—(15)—(19)

路径4: 0—②—④—⑥—⑦—(16)—(19)

路径5: 0—②—④—⑥—⑧—⑨—(17)—(19)

路径6: 0—②—④—⑥—⑧—⑩—(11)―(18)—(19)

路径7: 0—②—④—⑥—⑧—⑩—(12)—(19)

15.某公司为本科以上学历的人重新分配工作,分配原则如下:

(1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;

(2)如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不

分男女,任课题组组长;

(3)如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分

男女,任课题组组长。

要求:画出分析过程,得出判定表,并进行化简。

答:(1)判定条件可能取值表:

条件名称 取值 符号 取值数

性别

不满18岁

年龄

满18岁小于50岁

超过50岁

硕士

文化程度

(2)计算组合数2*3*2=12;

(3)初步判定表

1 2 3

性 别

文化程度

年 龄

组 长

领 导

科 研

行 政

资 料 员

M

G

L

M

G

Y

M

G

C

本科

M

F

C

Y

L

G

U M3=2

M2=3

M1=2

4

M

U

L

4

M

U

L

5

M

U

Y

6

M

U

C

5,11

-----

U

Y

7

F

G

L

8

F

G

Y

6

M

U

C

9

F

G

C

10

F

U

L

10

F

U

L

11

F

U

Y

12

F

U

C

12

F

U

C

考 研

(4)简化后的判定表

1,2,3

7,8,9

性 别

文化程度

年 龄

组 长

领 导

科 研

行 政

资 料 员

考 研

------

G

------


本文标签: 软件 系统 设计 程序 模型