您的当前位置:首页奥鹏软件工程答案汇总

奥鹏软件工程答案汇总

2024-03-01 来源:爱问旅游网


作业题(一)

一、 填空题

1.软件危机具有下列表现( D ) I、对软件开发成本估计不准确 II、软件产品的质量往往不可靠 III、软件常常不可维护 IV、软件成本逐年上升

A.I、II和III B.I、III和IV C.II、III和IV D.以上都正确

2. 系统定义明确之后,应对系统的可行性进行研究。可行性研究应包括( B )。 A.软件环境可行性、技术可行性、经济可行性、社会可行性 B.经济可行性、技术可行性、操作可行性 C.经济可行性、社会可行性、系统可行性 D.经济可行性、实用性、社会可行性

3. 在进行软件测试时, 首先应当进行( A ),然后再进行集成测试,最后再进行有效性测试。 A.单元测试 B.集成测试 C. 确认测试 D. 组合测试

4. 结构化程序设计思想的核心是要求程序只由顺序、循环和 ( A ) 三种结构组成。 A. 选择 B. 单入口 C. 单出口 D. 有规则 GOTO 5. 划分模块时,一个模块的 ( B )。

A. 作用范围应在其控制范围之外 B. 作用范围应在其控制范围之内 C. 作用范围与其控制范围互不包容 D. 作用范围与其控制范围不受限制

6. ( A )分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。 A.增量模型 B.喷泉模型 C.原型模型 D.螺旋模型

7. 在对数据流的分析中,主要是找到中心变换,这是从( D )导出结构图的关键。 A.数据结构 B.实体关系 C. E-R图 D. 数据流图 8. 测试的关键问题是( D )

A. 如何组织对软件的评审 B. 如何验证程序的正确性 C. 如何采用综合策略 D. 如何选择测试用例 9. 模块( C ),则说明模块的独立性越强。

A. 耦合越强 B. 扇入数越高 C. 耦合越弱 D. 扇入数越低 10. 使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准. A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能

二、判断下列叙述的正确性,将结果(√正确,×错误)填入( )中,并改正错误的说法 。 1. 在软件的开发过程中,工作量最大的一个阶段就是编写程序。(×工作量最大为维护阶段) 2. 当验收测试通过,软件开发就完成了。(×当验收测试通过,软件开发并没有完成还应该有维护。) 3.好的测试用例应能证明软件是正确的。(×好的测试用例不能证明软件是正确的。)

1

4. (√ ) 在程序调试时,找出错误的位置和性质比改正该错误更难。 5. ( ) 模块独立要求高耦合低内聚。×模块独立要求高内聚低耦合。 三、简答题

1. 结构化程序设计的思想是什么? 答:自上而下(自顶向下),逐步求精

2. 一个程序能够既正确又不可靠吗?请加以解释。

答:软件的功能正确并不代表软件是可靠的。可靠性是指在一定的环境下,在给定的时间内系统不发生故障的概率。由于无法对软件进行彻底的测试,因此即使软件的某个功能是正确的,软件中潜在的错误也可能导致其不可靠,如\"2000\"年问题就是如此。

3. 软件测试包括哪些类型的测试?这些测试之间的区别是什么?

答:软件测试包括单元测试、集成测试、确认测试和系统测试等。单元测试集中于单个模块的功能和结构的检验;集成测试集中于模块组合的功能和软件结构检验;确认测试主要检查软件是否符合合同要求,包括需求规格说明、设计规格说明和用户手册等;系统测试集中检验系统所有元素之间协作是否合适,整个系统的性能和功能是否达到。

4. 可行性研究的目的是什么?

答:软件可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目是否值得去开发。可行性研究的目的不是去开发一个软件项目,而是研究这个项目是否值得开发,其中的问题如何解决,主要包括时间、资金、技术等方面的内容。

5. 根据瀑布模型为下列任务排序。

验收测试、项目计划、单元测试、需求复审、成本估计、总体设计、设计复审、市场调研、详细设计、系统测试、实现、编制需求规格说明书。

答:、市场调研 项目计划、成本故机、编制需求规格说明书(可同时进行) 需求复审 总体设计 详细设计 设计复审 实现 单元测试 验收测试 系统测试

四、应用题

1、已知有一段程序的含义如下,首先输入任意三个数A,B,C;如果(A>1) AND (B=0) 则C=C/A,否则 (A=2) OR (C>1)则C=C+1;

1)请画出流程图并转化为程序图

2)设计判定条件覆盖和路径覆盖的测试用例。 1、

2

程序图:

1 2 7 3 4 8 5 6 判定覆盖

a点 A>1,A<=1,B=0,B<>0 b点 A=2,A<>2,X>1,X<=1 ⅰ A=2,B=0,X=4 ⅱ A=1,B=1,X=1 路径覆盖:

a点 A>1,A<=1,B=0,B<>0 b点 A=2,A<>2,X>1,X<=1 ⅰ A=2,B=0,X=4 ⅱ A=1,B=1,X=1

3

2、.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用判定表或判定树描述上述问题。 2、

年龄大于40

年龄介于20--40 中学 女 大学 中学 车工 电工 材料员 年龄小于20 初中 脱产学习 高中 男 电工 钳工 大学 技术员 作业题(二)

一、 填空题

1. 产生软件危机的原因可能有( D ) I、用户需求描述不精确、不准确

II、对大型软件项目的开发缺乏有力的组织与管理 III、缺乏有力的方法学和工具的支持 IV、软件产品的特殊性和人类智力的局限性 A.I和II B.I、II和IV C.II、III和IV D.以上都正确 2. 软件测试的目的是( B )

A.评价软件的质量 B.发现软件的错误 C.找出软件中的所有错误 D.证明软件是正确的

3. 研究开发所需要的成本和资源是属于可行性研究中的 ( B ) 研究的一方面。 A. 技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性 4. 模块( B )定义为受该模块内一个判断影响的所有模块集合。 A.控制域 B.作用域 C.宽度 D.接口

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

4

A. 可靠性 B. 有效性 C. 可维护性 D. 可用性

7. 通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是( C ) A. 通信、逻辑、顺序、时间 B. 通信、时间、顺序、逻辑 C. 顺序、通信、时间、逻辑 D. 顺序、通信、逻辑、时间

8. 程序的三种基本控制结构的共同特点是( C )。 A. 只能用来描述简单程序 B. 不能嵌套使用 C. 单入口,单出口 D. 仅用于自动控制系统

9. 设年利率为 i ,若不计复利, n 年后可得钱数为 F ,则这些钱现在的价值是( C ) A. F* ( 1+i*n ) B. ( 1+n*i ) /F C. F/ ( 1+n*i ) D. F/ ( 1+n/ i )

10. 当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为( D ) A .数据耦合 B .公共耦合 C .标记耦合 D .内容耦合

二、判断下列叙述的正确性,将结果(√正确,×错误)填入( )中,并改正错误的说法。

1. ( ) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。错误;用黑盒法测试时,测试用例是根据程序外部功能设计的。错误;用黑盒法测试时,测试用例是根据程序外部功能设计的。

2. ( ) 完成测试作业后,为了缩短源程序的长度应删除程序中的注解。错误;也不应删除注解。错误;也不应删除注解。

3. ( ) 软件维护就是改正软件中的错误。错误;软件维护定义 4. ( 正确 ) 实体 -- 关系图中的数据对象之间的关系也可能有属性。

5. ( ) 测试是为了验证软件已正确地实现了用户的要求。错误;测试的目的是尽可能多地发现软件中的错误,其附带的收获才是验证该软件已正确地实现了用户的要求。 三、简答题

1. DFD和DD的主要作用是什么?两者的关系?

答:DFD是软件系统逻辑模型的一种图形表示(Graphic representation)。主要作用是指明系统中数据是如何流动和变换的,以及描述数据流进行变换的功能,在DFD中出现的每个功能的描述则写在加工说明(PSPEC)中,他们一起构成软件的功能模型。

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

2. 自顶向下和由底向上设计的含义以及主要区别是什么?

答:自顶向下是从顶层开始,逐步分解,直至系统所有模块便于掌握。由底向上是首先设计系统的关键部分,然后让系统的其它部分适应它。

区别:自顶向下易于修改和扩展、整体测试较易通过、需要进行详细的可行性论证。由底向上可能导

5

致较大的重新设计、整体测试可能在模块接口间发现不一致等问题、可行性的问题可以较早的发现。

3. 模块间的耦合性有哪几种?

答:非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合、内容耦合。

4. 当沿着螺旋模型的过程流路径向外移时,你认为正在开发或维护的软件发生了什么变化?

答:在使用螺旋模型开发软件的过程中,从核心开始,螺旋的第一圈可能产生软件的规格说明,接下来的螺旋可能用于开发一个原型,随后是软件的更完善的版本。经过计划区域的每一圈是为了调整项目计划,基于从用户评估得到的反馈,调整费用和进度。沿螺旋线自内向外每旋转一圈,便开发出一个更为完善的、新的软件版本。

5. 说明控制域和作用域规则及相互关系,举例说明。

答:、一个模块的控制域(Scope of Control),等于模块本身加上其下级模块(即可供它调用的模块)。一个模块的作用域(Scope of Effect),是受这个模块中的判定所应影响的模块。

本规则的含义:作用域不要超出控制域的范围;(2)软件系统的判定,其位置离受它控制的模块越近越好

四、应用题

1、 根据下列条件使用边界值分析法设计测试用例。

某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围-177~177。如05,0127,-065

输入等价类 八进制整数 测试用例说明 5个数字字符 有一个非数字字符 没有数字字符 一个数字字符 测试数据 01245 03d2 - 0 -后紧跟有非0数字 -1324 -后有字符 八进制范围 在边界上选取数据 -c -177 -178 177 178

2、移动通信公司为促进业务的发展发行优惠卡,具体规则如下:

从未发生过话费拖欠,每月通话费300元以上可获金卡,每月通话费150元以上可获银卡,每月通话费低于150元以上可获普通卡;

6

发生过话费拖欠的,能在规定时间内补清欠款,每月通话费300元以上可获银卡,每月通话费150元以上可获普通卡;

发生过拖欠话费,并未能在规定时间内补清欠款,不能获得优惠卡。 请用判定表描述上述问题的加工逻辑。 判定表如下:

条件 是否有拖欠 拖欠是否还清 每月消费额度 发卡类型

1 无 2 无 发卡的规则 3 无 <150 普通卡 4 有 是 >=300 银卡 5 有 是 <300且>=150 普通卡 6 有 否 无 >=300 <300且>=150 金卡 银卡 作业题(三)

一、 填空题

1. 为了克服软件危机,人们提出了用 ( D ) 的原理来设计软件,这就是软件工程诞生的基础。

A. 数学 B. 软件学 C. 运筹学 D. 工程学 2.具有风险分析的软件生存周期模型是( C )

A.瀑布模型 C.螺旋模型

B.喷泉模型 D.增量模型

3.随着软硬件环境变化而修改软件的过程是( B )

A.校正性维护 C.完善性维护

B.适应性维护 D.预防性维护

4.数据耦合、公共耦合、特征耦合、控制耦合的耦合性从低到高的顺序是( B )

A.数据、公共、特征、控制 C.控制、数据、特征、公共

B.数据、特征、控制、公共 D.控制、数据、公共、特征

5.软件需求分析的主要任务是准确地定义出要开发的软件系统是( C )

A.如何做 C.做什么

B.怎么做 D.对谁做

6. 瀑布模型的关键不足在于( B )

A.过于简单 B.不能适应需求的动态变更 C.过于灵活 D.各个阶段需要进行评审 7.检查软件产品是否符合需求定义的过程称为( A )。 A.确认测试 B.集成测试 C.验收测试 D.验证测试 8.软件复审时,其主要的复审对象是( A )。

A.文档 B.程序 C.数据 D.软件配置项

7

9.软件生存周期中时间最长的阶段是( D )

A.需求分析阶段 C.详细设计阶段

B.概要设计阶段 D.维护阶段

10.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是( A )。

A.状态图 B.数据流图 C.系统结构图 D.时序图

二、判断下列叙述的正确性,将结果(√正确,×错误)填入( )中,并改正错误的说法。

(1) ( )一般况来,模块的内聚程度越高,它们之间的耦合程度也就越高。(×) 改正:内聚越高,耦合越低。

(2) ( )程序测试不仅能证明错误的存在,也能证明错误的不存在。(×)改正:仅能证明错误存在 (3) (√)维护是生存周期中花钱最多,延续时间最长的活动。

(4) ( )在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。(×)代价越高

(5) (√ )螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。 三、简答题

1、请说明软件文档的作用?软件开发项目生存期各阶段都包含哪些文档。

答:DFD是软件系统逻辑模型的一种图形表示(Graphic representation)。主要作用是指明系统中数据是如何流动和变换的,以及描述数据流进行变换的功能,在DFD中出现的每个功能的描述则写在加工说明(PSPEC)中,他们一起构成软件的功能模型

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

2、快速原型模型有几种?各有何特点?

答:根据原型的不同作用,有三类原型模型:⑴探索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。⑵实验型原型。这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。⑶演化型原型。这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。

3、解释深度、宽度、扇出、扇入对软件的影响。

答:深度表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。 宽度是软件结构内同一个层次上的模块总数的最大值。一般说来,宽度越大系统越复杂。对宽度影响最大的因素是模块的扇出。扇出是一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和

8

协调过多的下级模块;扇出过小(例如总是1)也不好。经验表明,一个设计得好的典型系统的平均扇出通常是3或4(扇出的上限通常是5~9)。 扇出太大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。一个模块的扇入表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的,但是,不能违背模块独立原理单纯追求高扇入。

观察大量软件系统后发现,设计得很好的软件结构通常顶层扇出比较高,中层扇出较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。

4、 简述渐增式测试方法与非渐增式测试方法的优劣。

答:非渐增式测试一下子把所有模块放在一起,并把庞大的程序作为一个整体来测试,测试者面对的

情况十分复杂。测试时会遇到许许多多的错误,改正错误更是极端困难,因为在庞大的程序中想要诊断定位一个错误是非常困难的。而且一旦改正一个错误之后,马上又会遇到新的错误,这个过程将继续下去,看起来好像永远也没有尽头。

渐增式测试与“一步到位”的非渐增式测试相反,它把程序划分成小段来构造和测试,在这个过程中比较容易定位和改正错误;对接口可以进行更彻底的测试;可以使用系统化的测试方法。因此,目前在进行集成测试时普遍采用渐增式测试方法。

5、 软件的可维护性与哪些因素有关?在软件开发过程中应采取哪些措施才能提高软件产品的可维护性?

答:维护就是在软件交付使用后进行的修改,修改之前必须理解待修改的对象,修改之后应该进

行必要的测试,以保证所做的修改是正确的。如果是改正性维护,还必须预先进行调试以确定错误的具体位置。因此,决定软件可维护性的因素主要有下述5个:

1. 可理解性 2. 可测试性 3. 可修改性 4. 可移植性 5. 可重用性

四、应用题

1、具体问题(如:输入A,B,C三个数要求输出其中最小者),画出程序流程图,并计算其复杂度。(15分)

9

开始 输入a\\b\\c n a2. 某公司为本科以上学历的人重新分配工作,分配原则如下:

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

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

题组组长;

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

组组长。

要求:画出判定表或判定树。

年龄X 学历 性别 报考研究生 行政工作 中层领导 课题组组长 科研人员 资料员

X<18 本科 男 √ X<18 本科 女 √ 50>X≧18 本科 √ 50>X≧18 硕士 √ 10

X≧50 本科 男 √ X≧50 本科 女 √ X≧50 硕士 √

作业题(四)

一、 填空题

1.软件危机是指( B )。

A.软件遭到破坏 B.软件开发和维护过程中遇到的问题 C.软件维护出现困难 D.软件不能正常运行系列问题

2. 软件的复杂性是( A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A.固有的 B.人为的 C.可消除的 D.不可降低的

3. ( D )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

A. 软件过程 B. 软件测试 C .软件生存周期 D .软件工程

4.在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于( B )。 A.维护时期 B.计划时期 C.运行时期 D.开发时期 5. 面向对象分析是对系统进行( A )的一种方法。 A.需求建模 B.程序设计 C.设计评审 D.测试验收 6. 软件详细设计阶段的任务是( A )。

A.算法设计 B.功能设计 C.调用关系设计 D.输入/输出设计 7. 在下述哪一种测试中,测试人员必须接触到源程序( C )。

Ⅰ功能测试 Ⅱ结构测试

A.均不需 B.只有Ⅰ C.只有Ⅱ D.Ⅰ和Ⅱ 8. 结构化方法是一种( D )的软件开发方法。

A. 面向用户 B. 面向数据结构 C. 面向对象 D. 面向数据流

9. ( C )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A.多态性 B.继承 C.封装 D.消息

10. 在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,( C )是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。

A.业务需求 B.功能要求 C.非功能需求 D.用户需求

二、判断下列叙述的正确性,将结果(√正确,×错误)填入( )中,并改正错误的说法。 1. ( √ )在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。

2. ( )数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。×加工。 3. ( )软件技术复审是由用户和测试人员实施的一种质量保证活动。×软件技术复审是由用户和测试人员实施的一种质量保证活动。

4. (√ )模型是对现实的简化,建模是为了更好地理解所开发的系统。

5. (√ )模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。 三、简答题

1.软件工程的基本目标是什么?

11

答:软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下: (1) 合理预算开发成本,付出较低的开发费用;

(2) 实现预期的软件功能,达到较好的软件性能,满足用户的需求; (3) 提高所开发软件的可维护性,降低维护费用; (4) 提高软件开发生产率,及时交付使用。

2.原型化方法主要用于解决什么问题?试说明这种方法的主要优缺点。

答:建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。原型在软件开发过程中可以起到以下主要作用:

(1) 明确并完善需求 原型作为一种需求工具,它初步实现所理解的系统的一部分。用户对原型的评价可以指出需求中的许多问题,在你开发真正产品之前,可以最低的费用来解决这些问题。

(2) 探索设计选择方案 原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。

(3) 发展为最终的产品 原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。

3.什么是桩模块?什么是驱动模块?二种渐增式集成测试如何组装模块?

答:在单元测试时,需要为被测程序编制若干测试软件,给它的上级模块或下级模块做替身。代替上级模块的称为测试驱动模块(Test Driver),代替下级模块的称为测试桩模块(Test Stub)。

(1)自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,

(2)自底向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的簇。②为每一个簇编写一个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块簇进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的簇。⑤重复②至④步,直至软件系统全部测试完毕。

4.试说明\"软件生存周期\"的概念。

答:软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。

(1) 计划阶段:确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。软件计划的主要内容包括所采用的软件生命周期模型、开发人员的组织、系统解决方案、管理的目标与级别、所用的技术与工具,以及开发的进度、预算和资源分配。

(2) 分析阶段:分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。通过评审需求规格说明,确保对用户需求达到共同的理解与认识。需求规格说明明确地描述了软件的功能,列出软件必须满足的所有约束条件,并定义软件的输入和输出接口。 (3) 设计阶段:设计阶段的目标是决定软件怎么做,设计人员依据软件需求规格说明文档,确定软件的

12

体系结构,进而确定每个模块的实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。 (4) 实现阶段:实现阶段是将所设计的各个模块编写成计算机可接受的程序代码,与实现相关的文档就是源程序以及合适的注释。

(5) 测试阶段:在设计测试用例的基础上,测试软件的各个组成模块。然后,将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明。

(6) 维护阶段:一旦产品已交付运行之后,对产品所做的任何修改就是维护。维护是软件过程的一个组成部分,应当在软件的设计和实现阶段充分考虑软件的可维护性。维护阶段需要测试是否正确地实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。

5.采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?

答:(1)等价类划分。等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。

(2)边界值分析。该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。

(3)错误推测。错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。

四、应用题

1.下面是一段插入排序的程序,将R[k+1]插入到R[1…k]的适当位置。 R[0] = R[k+1]; j = k;

while (R[j] > R[0]) {

R[j+1] = R[j]; j--; }

R[j+1] = R[0];

(1)画出程序流程图,转换为流图,求环路复杂度

(2)用路径覆盖方法为它设计足够的测试用例(while循环次数为0、1、2次)。 1、画出该程序的流程图:

13

开始 R[0] = R[k+1]; j = k; 1 R[j] > R[0]? 2 N 3 Y R[j+1] = R[j]; j--; R[j+1] = R[0] 结束 环路复杂度为2;

测试用例设计 循环 输 入 数 据 预 期 结 果 覆 盖 路 径 次数 j R[i-2] R[i-1] R[i] R[i+1] R[0] j 0 1 2

2.某校的课酬计算机方案为:

1) 基本课酬为每节课10元。 i - i - i - i - i 1 i 2 - - 1 2 3 3 1 1 3 3 4 4 2 1 2 2 2 2 2 1 2 2 2 2 i i R[i-2] R[i-1] R[i] R[i+1] 约束 路 径 - - - - 1 1 2 2 1 1 2 2 3 3 2 1 3 3 4 4 < = >< >= ①③ ①③ ①②③ ①②③ i-1 - i-1 - i-2 1 i-2 2 >>< ①②②③ >>= ①②②③ 2) 班级人数超过60人,增加基本课酬的10%。 3) 班级人数超过80人,增加基本课酬的20%。 4) 如果教师为副教授,增加基本课酬的10%。 5) 如果教师为教授,增加基本课酬的20%。 6) 如果教师为助教,不增加课酬。

7) 如果教师为见习助教,减少基本课酬的10%。 用判定表,表达上述计算方案。(10分)

1 2 3 4 5 14

6 7 8 9 10 11 12

人数<=60 人数>60 人数>80 教授 副教授 助教 见习 基本课酬金 课酬增10% 课酬增20% 课酬减10%

T T √ √ T T √ √ T T √ T T √ √ T T √ √ T T √ √ T T √ T T √ √ T T √ √ T T √ √ T T √ T T √ √ 作业题(五)

一 填空题

1、TURBO PASCAL是( D )软件。

A、系统软件 B、人工智能 C、事务软件 D、应用软件 2、选择结构的复杂性比顺序结构的复杂性要( B )。 A、小 B、大 C、相等 D、无法比较 3、在数据流图中,○(椭圆)代表( C )。 A、源点 B、终点 C、加工 D、模块

4、模块内聚度越高,说明模块内各成分彼此结合的程度越( B )。 A、松散 B、紧密 C、无法判断 D、相等

5、软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以( A )维护所占的维护量最小。

A、纠错性维护 B、完善性维护 C、预防性维护 D、文档维护

6、软件需求分析是保证软件质量的重要步骤,它的实施应该是在( C )。 A、编码阶段 B、软件开发全过程 C、软件定义阶段 D、软件设计阶段

7、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( D )。 A、结构合理性 B、软件外部功能 C、程序正确性 D、程序内部逻辑 8、进行需求分析可使用多种工具,但( B )是不适用的。 A、数据流图 B、PAD图 C、判定表 D、数据词典

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

10、软件文档是软件工程实施中的重要成分它不仅是软件开发各阶段的重要依据,而且与影响软件的( D )。

A、可理解性 B、可维护性 C、可扩展性 D、可移植性

二、判断下列叙述的正确性,将结果(√正确,×错误)填入( )中,并改正错误的说法。

15

1. ( ) 软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。( × )软件需求规格说明书在软件开发中具有重要的作用,但软件需求规格说明书的形成是在软件可行性分析之后。 2. ( )尽可能推迟程序的逻辑实现是按照瀑布模型开发软件的一条重要的指导思想。( × )尽可能推迟程序的物理实现是按照瀑布模型开发软件的一条重要的指导思想。

3. ( )模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。( × )模块化程序设计中,模块适中,模块化的优点越明显。一般来说,模块的大小都在10行以下。 4. ( )为了加快软件维护作业的进度,应尽可能增加维护人员的数目。( × )一般情况下,增加维护人员的数目,并不能加快软件维护作业的进度。

5. ( √ )一般情况下,发现错误多的程序模块,残留在模块中的错误也多。 三、简答题

1、软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。

答:可复用的软件元素包括(选5种):

项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。

2、白盒测试法有哪些覆盖标准?试对他们的检错能力进行比较。

答:白盒测试法的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它可能会使一些条件的不到测试。条件覆盖对每一条件进行单独检查,一般情况它的检错能力较判定覆盖强,但有时达不到判定覆盖的要求。判定/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机系统软件实现方式的限制,实际上不一定达到条件覆盖的标准。条件组合覆盖发现错误能力较强,凡满足其标准的测试用例,也必须满足前四种覆盖标准。前五种覆盖标准把注意力集中在单个判定或判定的各个条件上,可能会使程序某些路径没有执行到。路径覆盖根据各判定表达式取值的组合,使程序沿着不同的路径执行,查错能力强。但由于它是从各判定的整体组合出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

3、调试的目的是什么?调试有哪些技术手段?

答:调试的目的是确定错误的原因和位置,并改正错误,因此调试也成为纠错。调试技术主要有:简单的调试方法,主要有在程序中插入打印语句、运行部分程序等;归纳法调试,他从测试结果发现的线索(错误迹象、征兆)入手、分析他们之间的联系,导处错误原因的假设,然后再证明或否定这个假设;演绎法调试,该方法列出所有可能的错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因;回溯法调试,该方法从程序产生错误的地方出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原因为止。

4、软件设计的基本原理包括哪些内容?

答:模块化。是指解决一个复杂问题时自顶向下逐层把软件系统化分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段。

抽象。抽象是认识复杂现象过程中使用的思维工具即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素。软件工程过程中的每一部都可以看作是对软件解决方法的抽象层次的一次细化。

16

信息隐蔽。是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。

数据独立性。指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单。

5、某学校需要开发一个学生成绩管理系统,教务人员可以通过该系统维护学生信息、课程信息和成绩信息,学生可以随时查询自己的成绩单,该系统的实体关系图如下所示:

请问图中是否应该增加\"教务人员\"?试说明理由。

答:不应该增加\"教务人员\",因为教务人员只是该系统的一个使用者,系统不处理其属性信息。

四、应用题

1. (10分)某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副教授,教授)作不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。请用等价类划分法设计测试用例。

2. 求一组数组中的最大数, 数组表示为A(n) ,n=1,2……n的自然数。 1) 请画出程序流程图 2) 请画出该算法的N-S图 3) 请用PAD图来表示该算法

1、解: 输入条件 合理等价类 ①教授 职称 ②副教授 ③讲师 不合理等价类 ⑤四种职称之外任意一种 职称兼工龄 ⑥助教兼工龄等于两年 ④助教兼工龄大于2年 ⑦助教兼工龄小于两年 设计测试用例: 输入数据 教授 副教授

预期结果 输入有效,进行调整工资处理 输入有效,进行调整工资处理 覆盖范围 ① ② 17

讲师 助教 3 助教 2 助教 1 工程师 输入有效,进行调整工资处理 输入有效,进行调整工资处理 输入有效,不调整工资处理 输入有效,不调整工资处理 输入无效 ③ ④ ⑥ ⑦ ⑤

2、 18

19

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