您的当前位置:首页正文

软件工程考试试题2

2021-12-10 来源:独旅网


一、填空题 (共10小题,每小题1分,共10分)

1.Jackson方法是一种面向___数据结构__的设计方法。

2.软件工程研究的主要内容是软件开发技术和__软件开发管理___两个方面。

3.若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径执行,这种特征的DFD称为___事务型_数据流图。

4.现在存入银行P元。年利率为i,n年后可得钱数为_ = P×i×n+P__。

5.白盒测试法包括多种具体设计程序测试用例的方法,主要目的是提高测试的________________。

6.确认测试可以发现软件系统是否符合用户的________________要求。 7.状态图反映了状态与_____事件___的关系。

8.数据字典有四类条目,分别是数据流、,数据项 、数据存储和基本加工。

9.软件可维护性可用七种质量特性来衡量,分别是___可理解性______、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

10.测试的模块往往不是独立程序,需要为被测试模块设计若干辅助模块,其中用来模拟被测模块的上级调用模块称为________________模块。

二、名词解释 (共5小题,每小题4分,共20分)

1. 软件生命周期

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期) 2. 软件测试

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求 3.软件维护

软件维护主要是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改,修改时应充分利用源程序。修改后要填写程序改登记表,并在程序变更通知书上写明新旧程序的不同之处

4.软件可靠性

(1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率; (2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力;

5.耦合和内聚

耦合(Coupling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求强内聚,弱耦合。内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量

耦合(Coupling)是指两个或两个以上的电路元件或电网络的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现象 内聚:是一个模块内部各成分之间相关联程度的度量

三、选择填空题(共15空,每空2分,共30分)

从供选择的答案中选出适当的字句填入下面的横线上。

1.软件设计阶段可划分为概要设计阶段和(1) 详细 设计阶段。用结构化设计方法进行设计时,用来表示模块间的调用关系的图叫做(2) 图。根据输入输出的数据结构产生程序结构的设计方法叫做(3) 方法。用来描述软件设计结果的一种著名的语言是(4) 。可以用(5) 图描述输入、处理、输出三者之间的关系。 供选择的答案: (1)

A)逻辑 A)PAD D)SADT

(3) (4)

B)详细

C)程序

D)一般

(2)、(5) B)HCP C)SC E)HIPO

F)NS

D)Jackson D)SDL

A)Dijkstra B)Parnas C)Wirth A)PDL

B)APL C)PSL

2.软件详细设计工具可分为三类,即图示工具、设计语言和表格工具。图示工具中, (6) 简单而应用广泛、(7) 表示法中,每一个处理过程用一个盒子表示,盒子可以嵌套。(8) 可以纵横延伸,图形的空间效果好。(9) 是一种设计语言,它是一种面向(10) 的语言。 供选择的答案: (6)-(8) (9) (10)

A)NS图 A)C A)人

B)流程图 C)HIPO图 B)PDL C)PROLOG B)机器 C)数据结构

D)PAD图 D)PASCAL D)对象

3.1960年底 Dijkstra提倡的(11) 是一种有效的提高程序设计效率的方法。 Dijkstra为了使程序结构易于理解,把基本控制结构限于顺序、(12) 、(13) 3

种,应避免使用(14) 。

(11)不仅提高程序设计的生产率,同时也容易进行程序的(15) 。 供选择的答案: (11)

A)标准化程序设计 C)多道程序设计 E)结构化程序设计 G)表格处理语言

(12) -(13)

A)分支 D)计算

(14) (15)

B)选择 E)输入输出 B)DO语句 B)调试

C)IF语句 C)维护

D)REPEAT语句 D)编码

C)重复

B)模块化程序设计 D)宏语言 F)汇编语言

A)GOTO语句 A)设计

四、简答题(共4小题,每小题5分,共20分)

1.什么是模块的作用域和模块的控制域?为何要求模块的作用域必须在控制域内?

模块的作用域是指模块中判定的作用范围,它是指所有受这个判定影响的模块。如果模块中含有受判定影响的操作,则该模块在这个判定的作用范围之中。如果模块执行与否取决于判定的结果,则该模块及其直接或间接调用的模块均在这个判定的作用范围之中。 模块的控制域是指模块本身及其直接或间接调用的模块。

如果模块的作用域不在控制域之内,则会增加模块间数据的传递量,使模块间出现控制耦合。

3. 简述瀑布模型软件开发方法的基本过程

答案瀑布模型规定了各项软件工程活动包括制定软件项目计划进行需求分析和定义软件设计程序编码测试及运行维护。并且规定了它们自上而下相互衔接的固定次序如同瀑布流水逐级下落。然而软件开发的实践表明上述各项活动之间并非完全是自上而下呈线性图式。实际情况是每项开发活动均应具有以下特征 1 从上一项活动接受本项活动的工作对象作为输入 2 利用这一输入实施本项活动应完成的内容 3 给出本项活动的工作成果作为输出传给下一项活动 4 对本项活动实施的工作进行评审。若其工作得到确认则继续进行下一项活动否则返回前项甚至更前项的活动进行返工。

3.简述数据流程图四种基本图形符号的含义。 4.软件危机表现哪些方面?

(1)软件成本日益增长

(2)开发进度难以控制 (3)软件质量差 (4)软件维护困难 4. 软件危机的表现

(1)软件成本日益增长

在计算机发展的早期,大型计算机系统主要是被设计应用于非常狭窄的军事领域。在这个时期,研制计算机的费用主要由国家财政提供,研制者很少考虑到研制代价问题。随着计算机市场化和民用化的发展,代价和成本就成为投资者考虑的最重要的问题之一。20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%。但随着软件产业的发展,软件成本日益增长。相反,计算机硬件随着技术的进步、生产规模的扩大,价格却不断下降。这样一来,软件成本在计算机系统中所占的比例越来越大。到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右。

而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到85%左右。 (2)开发进度难以控制

由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。例如:工厂里要生产某种机器,在时间紧的情况下可以要工人加班或者实行\"三班倒\",而这些方法都不能用在软件开发上。

在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。

BROOK曾经提出:\"在已拖延的软件项目上,增加人力只会使其更难按期完成\"。事实上,软件系统的结构很复杂,各部分附加联系极大,盲目增加软件开发人员并不能成比例地提高软件开发能力。相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。

许多重要的大型软件开发项目,如IBM OS/360和世界范围的军事命令控制系统(WWMCCS),在耗费了大量的人力和财力之后,由于离预定目标相差甚远不得不宣布失败。 (3)软件质量差

软件项目即使能按预定日期完成,结果却不尽人意。1965年至1970年,美国范登堡基地发射火箭多次失败,绝大部分故障是由应用程序错误造成的。程序的一些微小错误可以造成灾难性的后果,例如,有一次,在美国肯尼迪发射一枚阿脱拉斯火箭,火箭飞离地面几十英里高空开始翻转,地面控制中心被迫下令炸毁。后经检查发现是飞行计划程序里漏掉了一个连字符。就是这样一个小小的疏漏造成了这支价值1850万美元的火箭试验失败。

在\"软件作坊\"里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的\"一厢情愿\"而已,这是造成软件不能今人满意的重要因素。

(4)软件维护困难

正式投入使用的软件,总是存在着一定数量的错误,在不同的运行条件下,软件就会出现故障,因此需要维护。但是,由于在软件设计和开发过程中,没有严格遵循软件开发标准,各种随意性很大,没有完整的真实反映系统状况的记录文档,给软件维护造成了巨大的困难。特别是在软件使用过程中,原来的开发人员可能因各种原因已经离开原来的开发组织,使得软件几乎不可维护。

另外,软件修改是一项很\"危险\"的工作,对一个复杂的逻辑过程,哪怕做一项微小的改动,都可能引入潜有资料表明,工业届为维护软件支付的费用占全部硬件和软件费用的40%-75%

2 软件危机的原因

从软件危机的种种表现和软件作为逻辑产品的特殊性可以发现软件危机的原因: (1)用户需求不明确

在软件开发过程中,用户需求不明确问题主要体现在四个方面: ◇ 在软件开发出来之前,用户自己也不清楚软件的具体需求;

◇ 用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误;

◇ 在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求; ◇ 软件开发人员对用户需求的理解与用户本来愿望有差异。 (2)缺乏正确的理论指导

缺乏有力的方法学和工具方面的支持。由于软件不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化,也是发生软件危机的一个重要原因。 (3)软件规模越来越大

随着软件应用范围的增广,软件规模愈来愈大。大型软件项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。 (4)软件复杂度越来越高

软件不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加。软件产品的特殊性和人类智力的局

限性,导致人们无力处?quot;复杂问题\"。所谓\"复杂问题\"的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。

五、应用题(共1小题,共20分)

1.某学校成绩管理系统中学生成绩评定模块对应的成绩评定规则:若期未考试成绩大于等于85分,平时成绩为优的,成绩定为优,而平时成绩为差的,成绩定为良;若期未考试成绩大于等于75分,平时成绩为优的,成绩定为良,而平时成绩为差的,成绩定为及格;若期未考试成绩大于等于60分, 平时成绩为优的,成绩定为及格,而平时成绩为差的,成绩定为不及格;若期未考试成绩小于60分,成绩定为不及格。请回答以下问题 (1)请绘制成绩评定对应的程序流程图。(6分)

(2)计算成绩评定模块的MaCabe环形复杂度。{7}(4分) (3)用基本路径覆盖法给出测试路径。(5分) (4)为各测试路径设计测试用例(5分)

一、填空题 (共10小题,每小题1分,共10分)

1.Jackson方法是一种面向_____数据结构的软件___________的设计方法。

2.________________过程就是应用软件工程的原理、概念、技术和方法重新开发某个现有的应用系统。

3.若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径执行,这种特征的DFD称为___事物型__数据流图。 4.现在存入银行P元。年利率为i,n年后可得钱数为________________。

5.白盒测试法包括多种具体设计程序测试用例的方法,主要目的是提高测试的________________。

6.内聚程度较低的是____偶然___内聚。 7.状态图反映了状态与____事件___的关系。

8.数据字典有四类条目,分别是数据流、____数据项___、数据存储和基本加工。 9.可行性分析研究的目的是____________ ____。 10.将诊断和改正软件错误的过程称为 调试过程__。

二、名词解释 (共5小题,每小题4分,共20分)

1.软件生命周期 2.形式化方法

——从广义上讲,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要

包括建立精确的数学模型以及对模型的分析活动。

——狭义的讲,形式化方法是运用形式化语言,进行形式化的规格描述、模型推理和验证的方法。

——就形式化建模而言,形式化表示必须包含一组定义其语法语义的形式化规则。这些规则可用于分析给定的表达式是否符合语法规定,或证明该表达式具有某种性质。

3.软件维护

4.软件危机

5.信息隐蔽

信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.

在面向对象方法中,信息隐蔽是通过对象的封装性来实现的。 信息隐蔽的概念与模块的独立性直接相关

三、选择填空题(共15空,每空2分,共30分

从供选择的答案中选出适当的字句填入下面的横线上。

1.软件设计阶段可划分为概要设计阶段和(1) 设计阶段。用结构化设计方法进行设计时,用来表示模块间的调用关系的图叫做(2) 图。根据输入输出的数据结构产生程序结构的设计方法叫做(3) 方法。用来描述软件设计结果的一种著名的语言是(4) 。

可以用(5) 图描述输入、处理、输出三者之间的关系。 供选择的答案: (1)

A)逻辑 A)PAD D)SADT

(3) (4)

B)详细

C)程序

D)一般

(2)、(5) B)HCP C)SC E)HIPO

F)NS

D)Jackson D)SDL

A)Dijkstra B)Parnas C)Wirth A)PDL

B)APL C)PSL

2.软件需求分析的任务不应包括(6) ,进行需求分析可使用多种工具,但(7) 是不适用的。在需求分析中,开发人员要从用户那里解决的最重要问题是(8) 。需求规格说明书的内容不应包括(9) 。该文档在软件开发中具有重要作用,但其作用不应包括(10) 。 供选择的答案: (6) A)问题分折 (7) A) 数据流程图

B)信息域分析 C) 结构化程序设计 B) 判定表

C) PAD图

D) 确定逻辑模型 D) 数据字典

(8) A) 要让软件做什么 B) 要给该软件提供哪些信息 D) 要让该软件具有何种结构 B) 对算法的详细过程描述 D) 软件的性能

B) 用户和开发人员对软件“要做什么”的共同理解 D) 软件可行性分折的依据

C) 要求软件工作效率怎样 (9) A) 对重要功能的描述

C) 软件确认准则 (10) A) 软件设计的依据

C) 软件验收的依据

3.选出同下列各条叙述关系最密切的字句。

软件从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。(11) 软件在需要它投入使用时能实现其指定的功能的概率。(12) 软件使不同的系统约束条件和用户需求得到满足的容易程度。(13) 在规定的条件下和规定期间内,实现所指定的功能的概率。(14) 尽管有不合法的输入,软件仍能继续正常工作的能力。(15) 供选择的答案:

(11) -(15) A) 可测试性

D) 可移植性 G) 坚固性

B) 可理解性 E) 可用性

C) 可靠性 F) 兼容性 I) 可接近性

H) 可修改性

J) 一致性

四、简答题(共4小题,每小题5分,共20分)

1.什么是模块的作用域和模块的控制域?为何要求模块的作用域必须在控制域内?

2.简述软件工程基本原理的内容和关系。

1、用分阶段的生命周期计划严格管理.2、坚持进行阶段评审.3、实行严格的产品控制.4、采用现代程序设计技术.

5、结果应能清楚地审查.6、开发小组的人员应该少而精 7、承认不断改进软件工程实践的必要性. 这七条原理是确保软件产品质量和开发效率的原理的最小集合。它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。

3.简述数据流程图四种基本图形符号的含义。

1,外部实体

外部实体指系统以外又和系统有联系的人或事物,它说明了数据的外部来源和去处,属于系统的外部和系统的界面。外部实体支持系统数据输入的实体称为源点,支持系统数据输出的实体称为终点。 通常外部实体在数据流程图中用正方形框表示,框中写上外部实体名称,为了区分不同的外部实体,可以在正方形的左上角用一个字符表示,同一外部实体可在一张数据流程图中出现多次,这时在该外部实体符号的右下角画上小斜线表示重复. 2,处理过程

处理指对数据逻辑处理,也就是数据变换,它用来改变数据值。而每一种处理又包括数据输入、数据处理和数据输出等部分。在数据流程图中处理过程用带圆角的长方形表示处理,长方形分三个部分,标识部分用来标识一个功能,功能描述部门是必不可少的,功能执行部门表示功能由谁来完成。 3,数据流

数据流是指处理功能的输入或输出。它用来表示一中间数据流值,但不能用来改变数据值。数据流是模拟系统数据在系统中传递过程的工具。

在数据流程图中用一个水平箭头或垂直箭头表示,箭头指出数据的流动方向,箭线旁注明数据流名。 4,数据存储

数据存储表示数据保存的地方,它用来存储数据。系统处理从数据存储中提取数据,也将处理的数据返回数据存储。与数据流不同的是数据存储本身不产生任何操作,它仅仅响应存储和访问数据的要求。

在数据流程图中数据存储用右边开口的长方条表示。在长方条内写上数据存储名字。为了区别和引用方便,左端加一小格,再标上一个标识,用字母D和数字组成.

4.简述影响程序效率的几种因素。

五、应用题(共2小题,每小题10分,共20分)

1.设计下列伪程序的条件组合覆盖测试用例。 START

INPUT(A,B,C,D) IF(A>0) AND (B>0) THEN X=A+B ELSE X=A-B ENDIF

IF (C>A) OR (D1.已知有如下程序段: begin P1; if C1

then while C2 do P2

enddo

else P3

while C3 do P4 if C4 then P5 else P6; endif

enddo

P7 Endif stop

请用PAD图描述。

因篇幅问题不能全部显示,请点此查看更多更全内容