您的当前位置:首页正文

软件工程网上作业题答案

2024-02-18 来源:星星旅游
东北农业大学网络教育学院 软件工程网上作业题参考答案

第1章 软件工程学概述 一、选择题

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

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

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

II、对大型软件项目的开发缺乏有力的组织与管理 III、缺乏有力的方法学和工具的支持

IV、软件产品的特殊性和人类智力的局限性 A.I和II B.I、II和IV

C.II、III和IV D.以上都正确 答案:D

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

4. 为了克服软件危机,人们提出了用 ( ) 的原理来设计软件,这就是软件工程诞生的基础。 A. 数学 B. 软件学 C. 运筹学 D. 工程学 答案:D

5、TURBO PASCAL是( )软件。

A.系统软件 B.人工智能 C.事务软件 D.应用软件 答案:D

6.具有风险分析的软件生存周期模型是( ) A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 答案:C

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

A.过于简单 B.不能适应需求的动态变更 C.过于灵活 D.各个阶段需要进行评审 答案:B

8.软件危机是指( )。

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

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

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

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

11.软件的主要特性是( )。

A.高性能 B.高成本 C.包括程序和文档 D.可独立构成计算机系统 答案:B

12.软件开发方法的主要工作模型有( )

A.螺旋模型 B.循环模型 C.瀑布模型 D.专家模型 13.软件工程三要素是( )。

A.高技术人员、方法和工具 B.方法、工具和过程

C.方法、对象和类 D.过程、模型、方法 答案:B

14.软件工程的目标有( )。

A.易于维护 B.低的开发成本 C.高性能 D.短的开发期 答案:B

15.软件工程学的目的和意义是( )。

A.应用科学的方法和工程化的规范管理来指导软件开发 B.克服软件危机

C.做好软件开发的培训工作

D.以较低的成本开发出高质量的软件 答案:D

16. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( ) A. 软件工程 B. 软件周期 C. 软件危机 D. 软件产生 答案:C

17. 快速原型模型的主要特点之一是 ( )

A. 开发完毕才见到产品 B. 及早提供全部完整的软件产品 C. 开发完毕后才见到工作软件 D. 及早提供工作软件 答案:D

18.瀑布模型的存在问题是( )

A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 答案:B

19、软件生存周期模型不包括:( )

A.瀑布模型 B.对象模型 C.增量模型 D.喷泉模型 答案:B

20. 下列哪个不属于软件工程的内涵之一( )

A.应用完善的科学与工程原理 B.经济地开发软件

C.高薪聘请软件高手 D.开发既可靠又能有效运行的软件 答案:C

21.在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于( )。 A.维护时期 B.计划时期 C.运行时期 D.开发时期 答案:B

22. 下列哪个办法不属于解决软件危机的途径之一( )

A. 研制新一代智能计算机 B. 大力扶持软件企业

C. 采用软件工程的解决途径 D. 采用面向对象的软件设计方法 答案:B

23.下面哪一项不属于快速原型模型的优点。 A.可及早为用户提供有用的产品。

B.可保证在开发后期,全面发现错误给以纠正。

C.减少技术应用风险,缩短开发时间,减少费用、提高生产率。

D.促使用户主动参与开发活动,促进各类人员的协调,适应需求变化。 答案:B

24.下列哪个不属于瀑布模型与传统的程序设计的不同之处( )。 A.传统的程序设计开发人员只开发程序,不写文档.

B.传统的程序设计重点在问题求解和算法,并只有自己才能读懂. C.瀑布模型的各阶段要第三方介入审察 D.传统的程序设计规定各阶段必须写文档. 答案:D

25.下面哪个模式不属于软件工程的开发模式

A.基于瀑布模型的开发模式 B.基于原型模型的开发模式 C.基于人机对话的开发模式 D.基于关系数据库的开发模式 答案:C

二、填空题

1. 软件工程学的内容可包括( )、结构、( )、( )、环境、管理、规范等。 答案:理论 方法 工具

2. 软件生存周期一般可分为问题定义、( )、( )、设计、( )、测试、运行与维护阶段。 答案:可行性研究 需求分析 编码 3.软件=( )+( )。

答案:程序 文档

4.软件危机的事实使人们意识到:计算机要推广使用,其关键在于( )技术的革新。

答:软件开发

5.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作( )。 答:软件危机

6.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是

软件工程诞生的基础。 答: 60年代末 工程学

7. 瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 答:运行及维护

三、判断改错题

1. 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。( ) √

2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。( ) ×文档驱动

3.结构化方法的工作模型是使用螺旋模型进行开发。 ( ) ×两者无关

4.软件危机的主要表现是软件的需求量迅速增加,软件价格上升。( ) ×软件危机的主要表现:一方面是无法满足日益增长的对软件的需求;另一方面是难以满足对已有的软件系统维护的需要。 5.RCP法与RSP法的主要区别是,前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。( ) √

四、简答题

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

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

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

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

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

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

(3) 设计阶段:设计阶段的目标是决定软件怎么做,设计人员依据软件需求规格说明文档,确定软件的体系结构,进而确定每个模块的实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。

(4) 实现阶段:实现阶段是将所设计的各个模块编写成计算机可接受的程序代码,与实现相关的文档就是源程序以及合适的注释。

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

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

4.软件产品的特性是什么? 答:

a.软件产品是一种逻辑产品。

b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。

c.软件产品不会用坏,不存在磨损、消耗问题。

d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是\"定做\"的。 e.软件费用不断增加,成本相当昂贵。 5. 什么是软件危机?其产生的原因是什么? 答:

软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面:

a.经费预算经常突破,完成时间一再拖延。 b.开发的软件不通满足用户要求。 c.开发的软件可维护性差。 d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:

a.软件的规模越来越大,结构越来越复杂。 b.软件开发管理困难而复杂。 c.软件开发费用不断增加。

d.软件开发技术落后。 e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

6. 什么是软件工程?它的目标和内容是什么? 答:

软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标: a.付出较低的开发成本; b.面到要求的软件功能; c.取得较好的软件性能; d.开发的软件易于移植; e.需要较低的维护费用;

f.能按时完成开发任务,及时交付使用; g.开发的软件可靠性高; 软件工程的内容:

1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。 2) 软件开发管理:软件管理学、软件经济学、软件心理学。

7. 软件工程面临的问题是什么? 答:

软件工程面临的问题:

a.软件费用。b.软件可靠性。c.软件维护。d.软件生产率。e.软件重用。

8. 什么是软件生存周期?它有哪几个活动? 答:

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

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.

9. 什么是软件生存周期模型?有哪些主要模型? 答:

软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。)

软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等

五、问答题

第2章可行性研究

一、选择题

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

2. 研究开发所需要的成本和资源是属于可行性研究中的 ( ) 研究的一方面。 A. 技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性 答案:B

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

4. 在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于( )。 A.维护时期 B.计划时期 C.运行时期 D.开发时期 答案:B

5. 数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成( )。 A.数据说明条目、控制流条目、加工条目、数据存储条目 B.数据流条目、数据项条目、数据存储条目、加工条目 C.数据源条目、数据流条目、数据处理条目、数据文件条目 D.数据流条目、数据文件条目、数据池条目、加工条目 答案:B

6. DFD 图不反映出系统 ( )

A. 系统做什么 B. 系统功能如何实现 C. 系统由谁来做 D. 系统实现的约束条件 答案:B

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

A.COCOMO 模型 B.McCall 模型 C.McCabe 度量法 D. 时间估算法 答案:A

8. 软件项目计划一般不包括以下哪项内容( )

A培训计划 B人员安排 C进度安排 D软件开发标准的选择和制定 答案:D

9. 可行性研究的目标是 ( ) 。

A. 开发项目 B. 项目值得开发否 C. 规划项目 D. 维护项目 答案:B

10. 分层 DFD 图是一种比较严格又易于理解的描绘方式,它的顶层图的作用在于 ( ) 。 A. 描绘了系统的实现细节

B. 表明了被开发系统的范围以及它和周围环境的数据交换关系 C. 描绘了系统的抽象

D. 描绘了软件实现的作者和绘制的时间 答案:B

11. DFD主要用来描述 ( ) 。

A. 系统的信息及其联系 B. 系统做什么 C. 系统模拟的动态模型 D. 系统功能如何实现 答案:B

12. 对软件复杂性进行度量时,采用代码行度量法,下列说法不正确的是 ( ) 。 A. 每行代码的出错率与源程序行数之间不存在简单的线性关系

B. 对于少于 100 行语句的小程序,源代码行数与出错率是线性相关的 C. 代码行度量法只是一简单的,估计的很粗糙的方法 D. 随着程序的增大,出错率以线性方式增长 答案:D

13. 软件项目计划范围内容是对软件项目的综合描述,定义其所要做的工作以及性能限制。下列不属于软件项目计划范围内容的有 ( ) 。

A. 硬件资源 B. 成本估算 C. 系统接口 D. 进度安排 答案:C

14.DFD图反映系统( )

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

15. 经济可行性研究的范围包括( )

A.资源有效性 B.管理制度 C.效益分析 D.开发风险 答案:C

16. 可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出( )的回答。

A.确定 B.行或不行 C.正确 D.无二义 答案:B

17 . 为高质量地开发软件项目,在软件结构设计时,必须遵循 ( ) 原则。 A .信息隐蔽 B .质量控制 C .程序优化 D .数据共享 答案:A

18 .数据流图( DFD )是_______ 方法中用于表示系统的逻辑模型的一种图形工具。 A . SA B . SD C . SP D . SC 答案:A

19 .需求规格说明书的作用不包括( )

A .软件验收的依据 B .用户与开发人员对软件要做什么的共同理解 C .软件可行性研究的依据 D .软件设计的依据 答案:C

20 .数据字典是用来定义 _________ 中的各个成份的具体含义的。( ) A .流程图 B .功能结构图 C .系统结构图 D .数据流图 答案:D

21. 软件可行性研究实质上是要进行一次( )需求分析、设计过程。 A.简化、压缩的 B.详细的 C.彻底的 D.深入的 答案:A

22.软件计划的具体任务不包括( )

A.确定软件的作用范围 B.解决软件开发的难点

C. 估算开发所需的资源 D.估算软件成本费用和安排进度

答案:B

23. DFD图不反映出系统( ) A.系统做什么 B.系统功能如何实现 C.数据流向与数据存储 D.系统实现的约束条件 答案:B

24. 软件可行性研究一般不考虑( )

A是否有足够的人员和相关的技术来支持系统开发 B是否有足够的工具和相关的技术来支持系统开发 C待开发软件是否有市场、经济上是否合算 D待开发的软件是否会有质量问题 答案:D

25.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的( )。 A.总貌B.细节C.抽象D.软件的作者 答案A

26.经调查,系统分析员给出有问题的初略陈述,其中部分描述如下:某商场的采购部门要求每天开出定购清单,交采购员;仓库管理员将此要还应输入系统,经库存业务(进贷或出贷)处理后输出。从这段描述可知该部分数据流图中的外部项为: A.采购员、仓库管理员 B.定购清单、库存业务 C.库存业务 D.定购清单、采购员 答案A

27.下列叙述中,_______不属于数据字典的作用。

A.作为编码阶段的描述工具 B.为用户与开发人员之间统一认识 C.作为概要设计的依据 D.为需求分析阶段定义各类条目 答案A

28.数据流是数据流图的基本成分,下列关于数据流的叙述中,______ 是正确的。 A.某加工的输入是一个数据流,该加工的输出也必定是一个数据流 B.多个不同的数据流可以流向一个加工,也可从一个加工中流出 C.数据流只能从加工流向文件,但不能从文件流向加工 D.一个数据流可以从一个文件流向另一个文件 答案B

二、填空题

1. 数据流图的基本符号包括( )、( )、( )、( )。

答:数据输入的源点和数据输出的汇点 加工 数据流 数据存储文件 2. 数据流图和( )共同构成系统的逻辑模型。 答:数据字典

3. 数据字典的内容包括六项:( )、( )、( )、数据存储、处理逻辑、外部实体。 答:数据流 数据项 数据结构 4. 可行性研究的目的是( )。

答:用最小的代价在尽可能短的时间内确定问题是否能够解决 5. 系统流程图是( )的传统工具。 答:描绘物理系统

6. 在可行性研究中,( )是系统开发过程中难度最大,最重要的一个环节。 答:技术可行性

7. 在结构化分析中,( )用于详细地定义数据流图中的成分。 答:数据字典

8. 结构化分析方法中,数据流图的四种基本成分为:加工、源点或终点( )。 答:数据流和文件

9.在数据流图中,用以表示软件系统之外的人员、设备等外部实体的基本成分(元素)称为( )。 答:外部项

三、判断改错题

1.可行性研究阶段要进行一次大大压缩简化了的系统分析和设计的过程。( ) √

2.数据流图表示了软件系统对数据的算法处理过程,即系统的物理模型。( ) ×数据流图定义

3.加工说明是对系统流程图中的加工进行说明。 ( ) ×数据流图

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

四、简答题

1.可行性研究的任务是什么? 答:

a.技术可行性:

考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。 b.经济可行性。 c.社会可行性。

2.可行性研究有哪些步骤? 答:

a.确定项目规模和目标 b.研究正在运行的系统

c.建立新系统的高层逻辑模型 d.导出和评价各种方案 e.推荐可行的方案 f.编写可行性研究报告

3. 成本---效益分析可用哪些指标进行度量?

答:

有形效益度量:

a.货币的时间价值 b.投资回收期 c.纯收入

无形效益:主要从性质上、心理上进行衡量,很难直接进行量的比较。

通常以有形效益度量作为成本---效益分析的度量。

4. 项目开发计划有哪些内容? 答:

a.项目概述 b.实施计划c.人员组织及分工d.交付期限

5.软件工程的基本目标是什么? 答:

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

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

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

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

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

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

(3) 发展为最终的产品 原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。 7.为什么数据流图要分层? 答:

为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。

8.什么是加工逻辑? 答:

加工逻辑就是处理逻辑,加工逻辑是对加工过程的抽象描述。加工逻辑的具体实现就是加工过程。

加工逻辑是指用户对这个加工的逻辑要求,即加工的输入数据流与输出数据流之间的逻辑关系。

加工逻辑主要是说明加工做什么,而不是描述具体的加工过程,如采用哪些加工单元、如何控制执行等实现细节。

五、问答题

1. 指出下列数据流图中存在的问题。(10分)

1 C 3 E B 2 F O B D 3.1 Q 3.4 E P 3.3 3.2 F D

父图 子图

答:

1、父图没有输入数据流;

2、子图的输入数据流应该是C,而不是B;

3、子图的输出数据流应该只有D和E,而不应有F。

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

材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。(10分) 答:

第3章需求分析

一、选择题

1. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 答案:C

2.软件需求分析的主要任务是准确地定义出要开发的软件系统是( ) A.如何做 B.怎么做 C.做什么 D.对谁做 答案:C

3.软件复审时,其主要的复审对象是( )。 A.文档 B.程序 C.数据 D.软件配置项 答案:A

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

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

5.在E-R模型中,包含以下基本成分( )

A.数据、对象、实体 B.控制、联系、对象 C.实体、联接、属性 D.实体、属性、联系 答案:D

6.数据流图中的处理必须用对象中的操作来实现,常见的操作有( )。 A.查询 B.动作 C.活动 D.访问 答案:A

7. 软件需求分析应确定的是用户对软件的 ( ) 。

A. 功能需求和非功能需求 B. 性能需求 C. 非功能需求 D. 功能需求 答案:A

8. 对于一个大型系统,若对设计方案没有把握,可通过 ( ) 来证实设计方案的正确性。 A. 增量构造模型 B. 实验型原型 C. 探索型原型 D. 演化型原型 答案:C

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

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

10.需求分析阶段的任务是确定( ) A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 答案:D

11 .需求规格说明书的作用不包括( )

A .软件验收的依据 B .用户与开发人员对软件要做什么的共同理解

C .研究的依据 D .软件设计的依据 答案:C

12. 需求分析阶段最重要的技术文档之一是:( ) A.项目开发计划 B.设计说明书 C.需求规格说明书 D.可行性分析报告 答案:C

13.需求工程的主要目的是( )

A.系统开发的具体方案 B. 进一步确定用户的需求

C.解决系统是“做什么的问题” D. 解决系统是“如何做的问题” 答案:C

14.不适于作为数据流图处理(加工)框名称的是____。 A.人工校核工资数据 B.工资支票数据 C.打印工资支票 D.计算职工工资 答案:B

二、填空题

1.需求分析的基本任务是准确的回答( )。 答:系统必须做什么

2.需求分析阶段研究的对象是软件项目的( )。 答:用户要求

3.结构化分析方法就是( )自顶向下逐步求精进行需求分析的方法。需求分析的目的之一就是把数据流和数据存储定义到( )。 答:面向数据流 元素级

4.需求分析应交付的主要文档是( )。 答:需求规格说明书

5.在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。通常问题简述中的动词短语将成为数据流图中的( )成分。 答:加工或处理

6.现有一种软件开发方法,它将软件开发过程分成以下阶段:需求分析、原型开发和评价、系统设计和系统实现。这种软件开发方法称为( ) 。 答:原形法

7.所谓“用户要求”是指软件系统必须满足的( )和限制。 答:所有性质

三、判断改错题

1.实体 -- 关系图中的数据对象之间的关系也可能有属性。( ) √

2.在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。( )

3.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。( ) ×加工。

4.快速原型模型可以有效地适应用户需求的动态变化。( ) √

5.在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。 ( ) ×需求分析是解决软件做什么的问题

6.需求管理主要是对需求变化的管理,即如何有效控制和适应需求的变化。 ( ) √

四、简答题

1.什么是需求分析?需求分析阶段的基本任务是什么? 答:

需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

需求分析阶段的基本任务是:

(1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.

(2) 分析与综合,导出软件的逻辑模型. (3) 编写文档

2.什么是结构化分析方法?该方法使用什么描述工具? 答:

结构化分析方法:是面向数据汉进行需求分析的方法。

描述工具:A.数据流图B.数据字典C.描述加工逻辑的结构化语言、判定表、判定树。

3.结构化分析方法通过哪些步骤来实现? 答:

结构化分析方法步骤:

a.了解当前系统的工作流程,获得当前系统的物理模型. b.抽象出当前系统的逻辑模型. c.建立上标系统的逻辑模型. d.作进一步补充和优化.

4.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义? 答:

数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。

作 用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.

基本符号有四种:

→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.

5.画数据流图应该注意什么事项? 答:

画数据流图注意事项:

a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基含义. b.画数据流而不是控制流. c.一般不画物质流.

d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果. e.编号.

f.父图与子图的平衡. g.局部数据存储.

h.提高数据流图的易理解性.

6.什么是字据字典?其作用是什么?它有哪些条目? 答:

字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义 性的说明方式为系统的分析\\设计及维护提供了有关元素的一致的定义和详细的描述.

作 用:1)为系统的分析\\设计及维护提供了有关元素的一致的定义和详细的描述. 2)为分析人员查找数据流图中有关名字的详细定义而服务的.

3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分. 条 目:数据流、数据项、数据存储、基本加工。

7.描述加工逻辑有哪些工具? 答:

a,结构化语言b,判定表c.判定树

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

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

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

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

五、问答题

1.某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系

统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。请用DFD描绘该功能的需求,并建立相应的数据字典。(15分) 答:

(1)数据流条目: 数据流名称:存款单 别 名:无

简 述:储户存款时填写的项目 来 源:储户 去 向:记帐

数据 流 量:未知

组 成:姓名+住址+存款类型+存款日期+利率 数据流名称:取款单 别 名:无

简 述:储户取款时填写的项目 来 源:储户 去 向:统计

数据 流 量:未知

组 成:姓名+住址+取款类型+取款日期+利率

数据流名称:清单 别 名:无

简 述:储户取款后得到的项目 来 源:记录 去 向:储户

数据 流 量:未知

组 成:姓名+住址+取款类型+取款日期+利率+余额 (2)数据存储条目: 数据存储名称:账单 别 名:无

简 述:存放储户信息及其账目

组 成:姓名+住址+余额+存款类型+最后修改日期+利率 组 织 方 式:未知

查 询 要 求:能立即查询 (3)数据项条目: 未知 (4)加工条目: 加工 名:分类检查 编 号:无

激发条件:接收到存/取款单 优 先 级:优先

输 入:存/取款单 输 出:存/取款单

加工逻辑:IF 存款单 THEN 把存款单输出到统计

ELSE

把取款单输出到统计 ENDIF

加工 名:统计 编 号:无 激发条件:取款单 优 先 级:无 输 入:取款单 输 出:清单

加工逻辑:根据账单检查此储户是否存在,不存在输出错误{ IF 取款数<余额 THEN 余额=余额-取款数 输出清单到储户,输出现金到储户 ELSE

输出错误清单到储户 ENDIF }

加工 名:记录 编 号:无 激发条件:存款单 优 先 级:无 输 入:存款单 输 出:存款单

加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{ 余额=余额+存款数 输出存款单到储户 }

储户存款单取款单存款单记录存单储户表单表单处理1存款单处理存款2取款单分类并检查取款单统计

帐单清单处理取款储户32.自学考试报名过程中有个“记录报名单”的加工。该加工主要是根据报名表(姓名、 性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。请绘制该加工的DFD图,并写出数据词典中的数据流条目。(15分) 答:

数据流词典 数据流条目: 报名单 = 姓名 + 性别 + 身份证号 + 课程名 开考课程 = 课程名 + 开考时间 考生名册 = 准考证号 + 姓名 + 课程

3.“决定比赛名单”这个加工,根据“运动员名单”和“比赛项目”产生 “项目参加者”,

如下图所示,运动员名单要包括所在队名,运动员编号号,运动员姓名,及参加的所有项目。请写出这三个数据流条目。(10分)

答:

运动员名单=队名+运动员号+姓名+{项目} 项目=项目名

项目参加者=项目名+{运动员号}

4.某旅馆的电话服务如下:

可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。

要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。(10分)

答:

电话号码=分机号|外线号码 分机号=7201...7299

外线号码=9+[市话号码|长话号码] 长话号码=区号+市话号码

区号=100...300

市话号码=局号+分局号

局号=[455|466|888|552] 分局号=4{数字}4

5.某机械加工公司要建立的仓库管理系统中,有以下功能:

1.入库:入库员负责登记入库物品(编号,品名,型号,数量, 单价,位置,检验员,审批人,入库日期,采购员,供应商)中,包括查看库存中有无这类物品。 2.出库:出库员根据用户要求(编号,品名,型号,数量),查看有无所需物品, 若有查看库存量是否满足,方可提货,并修改库存。 要求:

1)用结构化分析方法,建立仓库系统的0层数据流图 2)建立仓库系统1层DFD(10分)

1) 0层DFD图 0 管用 理 户 仓库系统 员

2)1层DFD图 A1 供应商 入1 库 A2 入库登记表 管理管入库登记 3 员理A3 物品库存表 查询统计 员

出库管理员 2 出库登记 A4 出库登记表 A5 用户表 第4章形式化说明技术

第5章总体设计

一、选择题

1. 结构化程序设计思想的核心是要求程序只由顺序、循环和 ( ) 三种结构组成。 A. 选择 B. 单入口 C. 单出口 D. 有规则 GOTO 答案:A

2. 划分模块时,一个模块的 ( )。

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

3. 在对数据流的分析中,主要是找到中心变换,这是从( )导出结构图的关键。 A.数据结构 B.实体关系 C. E-R图 D. 数据流图 答案:D 4. 模块( ),则说明模块的独立性越强。

A. 耦合越强 B. 扇入数越高 C. 耦合越弱 D. 扇入数越低 答案:C

5. 模块( )定义为受该模块内一个判断影响的所有模块集合。 A.控制域 B.作用域 C.宽度 D.接口 答案:B

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

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

A. 只能用来描述简单程序 B. 不能嵌套使用

C. 单入口,单出口 D. 仅用于自动控制系统 答案:C

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

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

答案:B

10. 模块的内聚性最高的是 ( )

A. 逻辑内聚 B. 时间内聚 C. 偶然内聚 D. 功能内聚 答案:D

11. 在 SD 方法中全面指导模块划分的最重要的原则是 ( ) A. 程序模块化 B. 模块高内聚 C. 模块低耦合 D. 模块独立性 答案:D

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

A.程序的规模 B.程序的效率 C.程序设计语言的先进性 D.程序易读性 答案:D

13. 在以下模块耦合性类型中,模块之间独立性最差的类型是:( ) A.无直接耦合 B.标记耦合 C.控制耦合 D.内容耦合 答案:D

14. 重用率高的模块在软件结构图中的特征是:( )。

A.扇出数大 B.扇入数大 C.内聚性高 D.扇出数小 答案:B

15.软件结构图中,模块框之间若有直线连接,表示它们之间存在() A.调用关系 B.组成关系 C.链接关系 D.顺序执行关系 答案:A

16.为了提高模块的独立性,模块内部最好是() A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 答案:C

17.概要设计最终结果是产生()

A.项目开发计划 B.需求规格说明书

C.软件结构设计说明书 D.可行性分析报告 答案:C

18.SA方法使用的描述手段不包括( ) A. 数据流图 B.程序流程图 C. 数据字典 D.加工说明 答案:B

19.在七种偶合中,最低偶合是( )。

A.内容偶合 B.公共偶合 C.数据偶合 D.非直接偶合 答案:D

20.结构化设计是一种应用最广泛的系统设计方法,是以( )为基础,自顶向下,求精和模块化的过程。

A.数据流 B.数据流图 C.数据库 D.数据结构 答案:B

21.Jackson设计方法由英国的M. Jackson提出的,它是一种面向( )的设计方法。 A.对象 B.数据流 C.数据结构 D.控制结构 答案:C

22.要减少两个模块之间的耦合,则必须( )。 A.两个模块间的调用次数要少

B.模块间传递的参数要少

C.模块间传递的参数要少且布传递开关型参数

D.模块间传递的参数要少且不传递开关型参数以及两模块不引用同样的全局变量 答案:D 23.某模块的输入数据为某工厂中一个车间的生产产量表,通过该模块可以计算出车间中生产工人的平均产量、统计产量前10名的人员名单,从内聚度来看,该模块属于( )。 A.逻辑内聚 B.通信内聚 C.顺序内聚 D.功能内聚 答案:B 24.( ) 不属于概要设计所解决的问题范围。 A.确定模块的层次结构 B.全程数据结构的设计 C.描述系统的功能与性能 D.修改用户手册 答案:C

二、填空题

1. 概要设计过程中要先进行系统设计、( )与( ),确定系统具体的实施方案;然后

进行( ),确定软件结构。

答:复审系统计划 需求分析 结构设计 2. 层次结构的上一层是下一层的( ),下一层是上一层的( )。 答:抽象 求精

3. 模块独立的概念是( )、( )、( )和局部化概念的直接结果。 答:模块化 抽象 信息隐蔽 4. 模块耦合的强弱取决于( )、( )和通过接口的信息。 答:模块间接口的复杂程度 调用模块的方式

5. 设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低( )提高( )。 答: 耦合 内聚

6. 在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况

出现的内聚称为( )。 答:偶然内聚

7. 一个模块直接调用的模块数目称为模块的( ),一个模块被多少上级模块直接调用称

为模块的( ) 答:扇出 扇入

8. JSD是一种典型的( )的分析设计方法。 答:面向数据结构

9. Jackson图除了可以表达( )外,还可以表达数据结构。 答:程序结构外

10.耦合性和内聚性是衡量( )的两个定性的标准。 答:模块独立性

11.从模块内外的联系来看,结构化设计的要求是( )。 答:模块内联系大、模块间联系小

12.如果两模块间的通信信息是若干个参数,而每个参数是单一的数据项,则称这种耦合性为( )耦合。

答:数据

13.软件工程技术中,控制复杂性的两个基本手段“分解”和( )。 答:抽象

14一个模块直接用另一个模块内部的代码和数据的模块间接的耦合方式称为( )耦合。 答:内容

15定性度量模块独立性的两个标准是内聚性和( ) 答:耦合性

16在模块结构图中,直接调用某一模块的其他模块数称为该模块的( )。 答:扇入数

17.若模块内的各处理元素都在同一时间间隔内执行完成,这种模块内元素间的联系称为( )内聚。 答:时间

18.适合于作为概念性数据模型的所谓第二代数据模型是( )。 答:ER模型

三、判断改错题

1.模块独立要求高耦合低内聚。( ) √

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

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

4.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。( ) √

5.总体设计的基本目的就是回答:\"概括地说,系统应该如何实现?\"这个问题。( ) √

6.软件模块之间的耦合性越弱越好。 √

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

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

四、简答题

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

自顶向下是从顶层开始,逐步分解,直至系统所有模块便于掌握。由底向上是首先设计系统

的关键部分,然后让系统的其它部分适应它。

区别:自顶向下易于修改和扩展、整体测试较易通过、需要进行详细的可行性论证。由底向上可能导致较大的重新设计、整体测试可能在模块接口间发现不一致等问题、可行性的问题可以较早的发现。

2. 模块间的耦合性有哪几种? 答:

非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合、内容耦合 3. 说明控制域和作用域规则及相互关系,举例说明。 答:

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

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

4.解释深度、宽度、扇出、扇入对软件的影响。 答:

深度表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。 宽度是软件结构内同一个层次上的模块总数的最大值。一般说来,宽度越大系统越复杂。对宽度影响最大的因素是模块的扇出。扇出是一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块;扇出过小(例如总是1)也不好。经验表明,一个设计得好的典型系统的平均扇出通常是3或4(扇出的上限通常是5~9)。 扇出太大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。一个模块的扇入表明有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的,但是,不能违背模块独立原理单纯追求高扇入。

观察大量软件系统后发现,设计得很好的软件结构通常顶层扇出比较高,中层扇出较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。 5.什么是软件概要设计?该阶段的基本任务是什么? 答:

软件概要设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换为软件包表示的过程。 基本任务:

(1)设计软件系统结构(简称软件结构)

a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分) b.确定模块的功能。 (功能)

c.确定模块之间的调用关系。 (调用)

d.确定模块之间的接口,即模块之间传递的信息。 (接口) e.评价模块结构的质量。 (质量) (2)数据结构及数据库设计 a.数据结构设计 b.数据库设计:(概念设计、逻辑设计、物理设计)

(3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划) (4)评审

6.软件设计的基本原理包括哪些内容? 答:

软件设计的基本原理:

(1)模块化(四个属性:接口、功能、逻辑、状态) (2)抽象 (3)信息隐蔽

(4)模块独立性(两个定性的度量标准:耦合性与内聚性)

7.衡量模块独立性的两个标准是什么?它们各表示什么含义? 答:

两个定性的度量标准:耦合与内聚性

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。

8.模块间的耦合性有哪几种?它们各表示什么含义? 答:

耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合

无直接耦合:两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。 (无直接关系)

数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。 (数据值 )

标记耦合:指两个模块之间传递的是数据结构。 (数据结构 )

控制耦合:指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能(控制变量 )

公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。 (一个公式数据环境)

内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部 (内部数据 )

9.模块的内聚性有哪几种?各表示什么含义? 答:

模块间的内聚性有6种:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。 偶然内聚:一个模块内的各处理元素之间没有任何联系。

逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 时间内聚:把需要同时执行的动作组合在一起。 通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的输出数据。 顺序内聚:一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是下一功能元素的输入。

功能内聚:最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。

10.什么是软件结构?简述软件结构设计优化准则。

答: 软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。 软件结构设计优化准则:

a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。

b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近

c.软件的深度、宽度、扇入、扇出应适当。 D.模块的大小要适中。

E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。

11.试述\"变换分析\",\"事务分析\"的设计步骤。 答:

变换分析:

a.确定DFD中的变换中心。

b.设计软件结构的顶层和第一层-------变换结构。

c.设计中下层模块。(输入模块下属模块的设计,输出模块下属模块的设计,变换模块下属模块的设计,设计的优化) 事务分析:

a.确定DFD中的事务中心和加工路径。

b.设计软件结构的顶层和第一层------事务结构。(接收、发送给支) c.事务结构中、下层模块的设计、优化工作同变换结构。

五、问答题

1.已知模块C中的一个判定影响到模块B,如图所示,它违反了SD的设计原则。试问: 可以采用哪些手段对结构图作改进,请说明改进办法并画出改进的结构图。(10分)

答:

2.已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。(15分)

A2T1B1EBAAABBBDDA1T2B2CCFFGC答:

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

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

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

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

答:

(1) 数据流图:

(2) 软件结构图:

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

4.图书馆的预定图书子系统有如下功能: (1) 由供书部门提供书目给订购组。 (2) 订书组从各单位取得要订的书目。

(3) 根据供书目录和订书书目产生订书文档留底。 (4) 将订书信息(包括数目,数量等)反馈给供书单位。 (5) 将未订书目通知订书者。

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

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

(1) 数据流图:

(2) 软件结构图:

5.在结构化设计过程中,要将数据流图(DFD)映射成系统结构图(SC),分别画出变换型数据流和事物型数据流的映射方式。(10分) 答:

变换型 事务型

第6章详细设计

一、选择题

1. 软件详细设计阶段的任务是( )。

A.算法设计 B.功能设计 C.调用关系设计 D.输入/输出设计 答案:A

2. 结构化方法是一种( )的软件开发方法。

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

3.SA法的主要描述手段有( )。

A.系统流程图和模块图 B.DFD图、数据词典、加工说明 C.软件结构图、加工说明 D.功能结构图、加工说明 答案:B

4.画分层DFD图的基本原则下面不对的是( )。 A.数据守恒原则 B.分解的可靠性原则

C.子、父图平衡的原则 D.数据流封闭的原则 答案:B

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

A. 模块设计 B. 结构化设计 C.PDL 语言 D. 结构化程序设计 答案:D

6. 下列关于 JSD 方法不正确的说法是 ( ) A.JSD方法主要用于规模不大的数据处理系统

B.JSD方法不明确的划分软件概要设计和详细设计的两个阶段 C.JSD方法适用于输入数据和输出数据之间有对应关系的问题求解

D.JSD 方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适用于详细设计阶段 答案:D

7. 结构化程序设计思想的核心是要求程序只由顺序、循环和 ( ) 三种结构组成。 A. 选择 B. 单入口 C. 单出口 D. 有规则 GOTO 答案:A

8. 详细设计阶段,一种二维树性结构来描述算法的工具称为 ( ) 。 A. IPO 图 B. PAD 图 C. PDL D. 判定树 答案:D

9. 在软件工程开发过程中,数据流图、结构图的创建由 ( ) 工作台提供支持。 A. 测试 B. 分析和设计 C. 程序设计 D. 过程设计 10.在详细设计阶段,经常采用的工具有( )

A.PAD B.SA C.SC D.DFD 答案:A

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

A.代码的规模 B.运行速度 C.质量 D.可维护性 答案:C

12.软件详细设计的主要任务是对( )进行的详细设计。

A.算法和数据结构 B.外部接口 C.软件编码 D.功能 答案:A

13.Jackson方法是一种面向( )的方法。

A.数据流 B.对象 C.数据结构 D.控制流 答案:C

14.软件详细设计的主要任务是确定每个模块的() A.算法和使用的数据结构 B.外部接口 C.功能 D.编程

答案:A

15.PAD(Problem Analysis Diagram)图是一种( )工具。 A.系统描述 B.详细设计 C.测试 D.编程辅助 答案:B

16.在软件开发中,有利于发挥集体智慧的一种做法是( )。 设计评审B.模块化C.主程序员制D.进度控制 答案:A

17.在开发软件时,( )可用来提高程序员的工作效率。 A.程序开发环境 B.操作系统的作业管理功能 C.编译程序的优化功能 D.并行运算的大型计算机 答案:A 18.某教学设备销售部门制定一项销售优惠政策,一次购买100台或100台以上者按八五折优惠,购买者是教师、学生按九折优惠。设C1表示购买的台数,C2为1、2、0分别表示教师、学生和其他人员,则符合九折优惠判定条件为( )。

A.(C1<100)AND NOT(C2=0) B.(C1<100)AND NOT(C2>0) C.NOT(C1>100)AND(C2=0) D.NOT(C1<100)AND(C2>0) 答案:A

19.银行计算机储蓄管理信息系统中,根据客户提出的要求(如存款、取款、查询、挂失、咨询等)进行相应的业务处理的该层数据流图是( )_。 A.变换型 B.事务型 C.既不是A也不是B D.不一定 答案:B

二、填空题

1. 详细设计的工具有( )、表格工具和语言工具。 答:图形工具

2. 为使用流程图描述结构华程序,限制流程图有五种基本的控制结构( )、( )、( )、

until循环、多情况型选择。 答:顺序型 选择型 while型循环

3. HIPO图是由一组( )图和一张( )图组成。 答:IPO HC

4. IPO图由( )、处理和( )三个框组成。这个图的特点是能够直观的显示三者之间

的关系。 答:输入 输出

5.从数据流图导出初始模块结构图,主要是通过( )两项技术。 答:变换和事务

6.结构化程序设计是一种程序设计技术,它采用( )的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。 答:自顶向下、逐步求精

7.在系统设计时,当数据流图中数据的流动路径几乎是线性时,应采用( )策略设计系统结构图。 答:变换中心

8.模块内部的算法设计在结构化方法的( )阶段进行。 答:详细设计

9.如果一个软件系统完成从卡片机上读入一叠卡片,检查卡片的信息是否合理,然后对旧文件进行修改,产生一个修改过的新文件,并被修改的记录打印成一份报告。对此系统的数据流图,应采用( )设计策略,导出模块结构。 答:变换流

10.Jzckcon法的设计原则是:使程序结构同( )相对应。 答:数据结构

11.在结构化程序设计思想提出以前,在程序设计中曾强调程序的( )。现在人们更重视程序的( )。 答:效率 可理解性

12.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于( )。 答:变换型

三、判断改错题

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

2. 软件技术复审是由用户和测试人员实施的一种质量保证活动。( ) ×软件技术复审是由开发人员实施的一种质量保证活动。 3.过程描述语言可以用于描述软件的系统结构。( ) ×不能

4. 没有Do-case、Do-until形结构,就不能实现某些结构化程序,从而降低了程序的运行效率。( ) √

四、简答题

1.详细设计的基本任务是什么?有哪几种描述方法? 答:

详细设计的基本任务:

(1)为每个模块进行详细的算法设计。 (2)为每个模块内的数据结构进行设计。

(3)对数据库进行设计,即确定数据库的物理结构。 (4)其他设计: a.代码设计

b.输入/输出格式设计。 c.人机对话设计。

(5)编写详细设计说明书。 (6)评审。

描述方法(三种):

a.程序流程图 b.PAD图

C.过程设计语言

2.结构化程序设计基本要求要点是什么? 答:

a.采用自顶向下、逐步求精的程序设计方法 b.使用三种基本程序控制结构构造程序

1).用顺序方式对过程分解,确定各部分的执行顺序。 2).用选择方式对过程分解,确定某个部分的执行条件。

3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。 c.主程序员组的组织形式。 3.根据伪码画出N-S图。

START IF A THEN X1

DO UNTIL B ELSE X2 Y

END IF Z STOP

答:

A

T F

X1 X2 Y UNTIL B

Z

4. 根据伪码画出PAD图。

START SWITCH P

CASE 1: A; break; CASE 2: B; break; CASE 3: C; break; Default; STOP 答:

=1 A P =2 B =3 C 五、问答题

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

中学 材料员 年龄

大于

40

大学 技术员

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

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

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

发生过拖欠话费,并未能在规定时间内补清欠款,不能获得优惠卡。

请用判定表描述上述问题的加工逻辑。 答: 条件 是否有拖欠 拖欠是否还清 每月消费额度 发卡类型 发卡的规则 1 无 >=300 金卡 2 无 银卡 3 无 普通卡 4 有 是 >=300 银卡 5 有 是 <300且>=150 普通卡 6 有 否 无 <300且>=150 <150

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

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

如果年龄满 18 岁不满 50 岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长; 如果年龄满 50 岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。

要求:画出判定表或判定树。 (10分) 答: 年龄X 学历 性别 报考研究生 行政工作 中层领导 课题组组长 科研人员 资料员 X<18 本科 男 √ X<18 本科 女 √ 50>X≧18 本科 √ 50>X≧18 硕士 √ X≧50 本科 男 √ X≧50 本科 女 √ X≧50 硕士 √ 4.某校的课酬计算机方案为: 基本课酬为每节课10元。

班级人数超过60人,增加基本课酬的10%。 班级人数超过80人,增加基本课酬的20%。 如果教师为副教授,增加基本课酬的10%。 如果教师为教授,增加基本课酬的20%。 如果教师为助教,不增加课酬。

如果教师为见习助教,减少基本课酬的10%。 用判定表,表达上述计算方案。(10分) 答: 人数<=60 人数>60 人数>80 教授 副教授 1 T T 2 T T 3 T 4 T 5 T T 6 T T 7 T 8 T 9 T T 10 T T 11 T 12 T 助教 见习 基本课酬金 课酬增10% 课酬增20% 课酬减10% √ √ √ √ T √ T √ √ √ √ √ √ T √ T √ √ √ √ √ √ T √ T √ √

5.的订货单按如下原则处理: 将顾客的信用度分三个档次: 欠款时间不超过30天;

欠款时间超过30天但不超过100天; 欠款时间超过100天。

对于上述三种情况,分别根据库存情况来决定对顾客订货的态度。

情况之一(欠款时间≤30天),如果需求数≤库存量,则立即发货,如果需求数>库存量,则只发现有库存,不足部分待进货后补发。

情况之二(30天<欠款时间≤100天),如果需求数≤库存量,则要求先付款再发货,如果需求数>库存量,则不发货。

情况之三(欠款时间>100天),则通知先付欠款,再考虑是否发货。

试用判定树的形式予以描述(设欠款时间D,需求数N,库存量Q)。(10分) 答:

6.Jackson图表示下图所示的二维表格:(10分)

答:

学生名册 表头 表体 表名 字段名 行* 姓名 性别 年龄 学号

7.程,其流程如下图所示。(10分)

其中b1 、b2、 b3为判定的逻辑条件,s1、 s2为加工处理。试用判定表给予描述。

答:

8.过程如下图所示的流程,试用判定表予以描述。(10分)

条件 b1 b2 b3 结果

s1 s2 1 F … … √ 2 T F F √ 3 T F T √ 4 T T … √ 第7章实现

一、选择题

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

2. 测试的关键问题是( )

A. 如何组织对软件的评审 B. 如何验证程序的正确性 C. 如何采用综合策略 D. 如何选择测试用例 答案:D

3. 使用白盒测试方法时,确定测试数据应根据( )和指定的覆盖标准. A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 答案:A

4. 软件测试的目的是( )

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

5. 确认测试是对软件进行 ( ) 测试。

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

6.检查软件产品是否符合需求定义的过程称为( )。 A.确认测试 B.集成测试 C.验收测试 D.验证测试 答案:A

7. 在下述哪一种测试中,测试人员必须接触到源程序( )。 Ⅰ功能测试 Ⅱ结构测试

A.均不需 B.只有Ⅰ C.只有Ⅱ D.Ⅰ和Ⅱ 答案:C

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

A. Pascal B. C C. Fortran D. Prolog 答案:D

9. 黑盒测试在设计测试用例时,主要需要研究 ( ) A. 需求规格说明与概要设计说明 B. 详细设计说明 C. 项目开发计划 D. 概要设计说明与详细设计说明 答案:A

10. 若有一个计算类型的程序,它的输入量只有一个 X ,其范围是[ -1.0 , 1.0 ],现从输入的角度考虑一组测试用例: -1.001 , -1.0 , 1.0 , 1.001 。设计这组测试用例的方法是 ( )

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

11. 为了使软件具有清晰结构和良好的风格,下面关于程序设计风格的叙述不可取的有 ( )

A. 尽量不要进行浮点数的相等比较 B. 应当有适量的注释 C. 尽可能对代码优化 D. 使用有意义的标识符 答案:D

12.软件调试技术包括( )

A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试 13.软件测试方法中的静态测试方法之一为( ) A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析 答案:A

14.一个成功的测试可以( )。

A.表明程序没有错误 B.发现所有错误 C.提高软件可靠性 D.发现尚未发现的错误 答案:D

15、黑盒技术设计测试用例的方法之一为( )。

A.因果图 B.逻辑覆盖 C.循环覆盖 D.基本路径测试 答案:A

16. 编码阶段的目标是( ) A.对诸如“学生编号”,“职工编号”进行编码设计 B.将软件算法过程翻译成源程序 C.统一各种信息编码

D.选择最适合的程序设计语言 答案:B

17. NET属于( )

A. 3GL B. 4GL

C. 独立于机器的面向算法的语言 D.结构化编程语言 答案:B

18. 以下哪种测试方法不属于白盒测试技术( )

A基本路径测试 B边界值分析测试 C循环覆盖测试 D逻辑覆盖测试 答案:C

19.软件测试方法中的静态测试方法之一为( ) A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析 答案:A

20 .用白盒法技术设计测试用例的方法包括( )

A .错误推测 B .因果图 C .基本路径测试 D .边界值分析 答案:C

21 .软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( )

A 前者属于静态测试,后者属于动态测试 B.前者属于动态测试,后者属于静态测试 C .都属于静态测试 D .都属于动态测试 答案:D

22.为了提高测试的效率,应该( )。 A.随机地选取测试数据

B.取一切可能的输入数据作为测试数据库

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

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

23.与设计测试数据无关的文档是( )。

A.需求说明书 B.数据说明书 C.源程序 D.项目开发设计 答案:D

24.注释是提高程序可读性的有效手段,好的程序注释占到程序总量的____。

A.1/6 B.1/5 C.1/4 D.1/3 答案:D

25.排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的____。

A. 95%B.5%C.50%D.20%

答案:A

26.编码(实现)阶段得到的程序段应该是_______。

A.编辑完成的源程序 B.编译(或汇编)通过的可装配程序 C.可交付使用的程序 D.可运行程序

答案:B

27.下列所述的测试原则中,错误的是_______。

A.应设计非法输入的测试用例 B.测试用例要给出测试的预期结果 C.因维护修改程序后需回归测试 D.开发小组与测试小组合并

答案:D

28.如果一个排序程序所设定的测试用例为

(1) 表空 (2)表中只有一个元素 (3) 表中均有相同的关键字值(4)元素已排序 则此测试方法称为____________。

A、 等价分类法 B.边缘值分析法 C.因果图法 D.错误推测法

答案:D

29.在有集成(组装)测试的叙述中,______ 是正确的。

A、 测试底层模块时不需要桩模块 B、 驱动模块的作用是模拟被调模块 C、 自顶向下测试方法易于设计测试结果

D、 自底向上测试方法有有利于提前预计测试结果

答案:A

30.某程序功能说明中列出“规定每个运动员参赛项目为1——3项”,应用黑盒法中的等价分类法确定等价类是______。

A、 1<=项目数<=3 B.项目数<1 C.项目数>3 D.以上都是

答案:D

31.程序功能说明中指出:由三个输入数据表示一个三角形的三条边长。根据黑盒法中的边缘值分析法设计测试用例,应选_____。

A、 a=3,b=4,c=5 B.a=1,b=2,c=4 C.上述A.B 项目都应选上 D.a=1,b=2,c=3

答案:D

二、填空题

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

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

3. 软件测试的配置主要包括( )、( )和测试程序等。 答:测试计划 测试用例

4. 软件测试的步骤主要包括( )、集成测试、确认测试和( )。 答:单元测试 系统测试

5.黑盒法测试时,如果选择的测试用例需考虑输入条件的各种组合,应采用( )法进行测试。 答:因果图

6.由底向上渐增式是在测试层次结构的大型软件时常用的一种方法。用由底向上渐增式方法对软件进行测试时,需要为每个模块准备一个( ),它的作用是调用被测的模块。 答:驱动模块

7.现有一个计算类型的程序,它的输入只有一个Y,其范围是—50≤Y≤50。现采用黑盒法进行测试,设计了一组测试用例:—100,100,0。设计这组测试用例的方法是( )。 答:等价分类

8.如果某个程序的输入数据的可能值划分为n个合理等价类、m个不合理等价类,这些等价类均为数轴上的一个有限敬意范围,则采用边缘值测试方法至少需要( )个测试用例。

答:2(m+n)

9.在( )测试中,主要测试详细设计和编码实现阶段中的错误。 答:单元

10.选择足够的测算数据,使得判定中的每个条件获得各种可能的值的测试用例产生的方法称为( )覆盖。 答:条件

11.在联合测试时,采用先独立测试每一模块,然后再连到一起运行,这种方式称为( )联调。 答:非渐增式

12.程序评价和测试系统PET的主要功能是支持对FORTRAN程序采用白盒法测试,可以监视测试的( ) 。 答:实际覆盖程度

13.检验是软件开发过程中不可缺少的部分,检验的目的在于( )。 答:发现错误并及时改正

14.( )测试解决的主要问题是模块间接口和连接的测试。 答:集成

15.编程的目标是编写出逻辑上正确又易于( )的程序。 答:阅读或理解

16.单独测试一个模块时,有时需要一个( )驱动被测试的模块.有时还要有一个或几个( )模块模拟由被测试模块调用的模块 。 答:驱动 桩模块

三、判断改错题

1. 当验收测试通过,软件开发就完成了。( )

×当验收测试通过,软件开发并没有完成还应该有维护。 2. 好的测试用例应能证明软件是正确的。( ) ×好的测试用例不能证明软件是正确的。

3. 在程序调试时,找出错误的位置和性质比改正该错误更难。( ) √

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

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

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

7程序测试不仅能证明错误的存在,也能证明错误的不存在。( ) ×改正:仅能证明错误存在

8. 如果通过软件测试没有发现错误,则说明软件是正确的。( ) ×也不能说明

9 集成测试主要由用户来完成。( ) ×集成测试主要由开发人员来完成。

10. 确认测试计划应该在可行性研究阶段制定( ) ×确认测试计划应该在需求分析阶段制定

11. 白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。( ) ×黑盒测试

12. 软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。( ) ×软件定义

13. 判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖是同时满足这两种覆盖标准的逻辑覆盖。( ) √

四、简答题

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

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

软件测试包括单元测试、集成测试、确认测试和系统测试等。单元测试集中于单个模块的功能和结构的检验;集成测试集中于模块组合的功能和软件结构检验;确认测试主要检查软件

是否符合合同要求,包括需求规格说明、设计规格说明和用户手册等;系统测试集中检验系统所有元素之间协作是否合适,整个系统的性能和功能是否达到。 3. 简述渐增式测试方法与非渐增式测试方法的优劣。 答:

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

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

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

在单元测试时,需要为被测程序编制若干测试软件,给它的上级模块或下级模块做替身。代替上级模块的称为测试驱动模块(Test Driver),代替下级模块的称为测试桩模块(Test Stub)。 (1)自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,

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

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

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

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

6. 是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题? 答:

程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。

要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。

7.白盒法?有那些覆盖标准?比较他们的检错能力。 答:

将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。有逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖) 8.试有那些内容? 答:

测试模块的接口、数据结构、重要的执行路径、错误处理、边界条件。 9.集成测试?非渐增式和渐增式有什么区别?渐增式如何组装模块? 答:

将模块组合起来成为一个完整的系统对其进行测试。非渐增式是将模块先进行单元测试然后

组装在一起进行测试。渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。

渐增式组装模块有自顶向下和自底向上两种组装方式。 10.认测试?该阶段有那些工作? 答:

按照需求规格说明书中的确定指标对系统进行功能与性能的测试。进行确认测试(对照需求规格说明书用黑盒法进行测试)、软件配置检查。(文档的完整性、正确性,发现遗漏和错误及时补充和修改)

11.目的是什么?调试的技术有那些? 答:

调试的目的是发现错误的位置并改正错误。简单调试、演绎调试、递归调试、回溯调试。12. 12.简述判定覆盖、条件覆盖、判定/条件覆盖三种方法的原则以及它们之间的相互关系。 答:

判定覆盖是只被测试程序段中不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次(真假分支均被满足一次)。

条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。

判定/条件覆盖是指选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果,

条件覆盖比判定覆盖功能强,因为它使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的值。判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖同时满足这两种覆盖标准的逻辑覆盖。 13. 根据下图,给出按照路径覆盖原则生成的覆盖路径集。

答: 1,2,3 1,2,6,7 1,4,5,3 1,4,5,6,7

五、问答题

1、已知有一段程序的含义如下,首先输入任意三个数A,B,C;如果(A>1) AND (B=0) 则C=C/A,否则 (A=2) OR (C>1)则C=C+1; 1)请画出流程图并转化为程序图(5分)

2)设计判定条件覆盖和路径覆盖的测试用例。(10分) 答:

程序图:

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

2. 根据下列条件使用边界值分析法设计测试用例。(15分) 某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围-177~177。如05,0127,-065

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

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

开始 输入a\\b\\c n a4.下面是一段插入排序的程序,将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)画出程序流程图,转换为流图,求环路复杂度(8分)

(2)用路径覆盖方法为它设计足够的测试用例(while循环次数为0、1、2次)。(7分)

开始 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 R[i-2] R[i-1] R[i] R[i+1] 约束 路 径 0 1 2 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 - - - - 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 >>< ①②②③ >>= ①②②③

5.下列子程序进行调试:

procedure example(y,z: real; var x: real) begin

if (y>1) and (z=0) then x:=x/y; if (y=2) or (x=l) then x:=x+l; end.

该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。答题要求: (1)画出流程图。

(2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。(15分)

答:(1)流程图

(2)用白盒法中条件组合覆盖设计测试用例: ① y=2, z=0, x=4; ② y=2, z=1, x=1; ③ y=1, z=0, x=2; ④ y=1, z=1, x=1.

6.某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。现要求用黑盒测试法中的边界值法写出测试用例。(15分) 答: 输入条件 测试用例说明 测试数据 报表日期的 1个数字字符 5 类型及长度 5个数字字符 20035 7个数字字符 2003005 有1个非数字字符 2003.5 全部是非数字字符 MAY--- 6个数字字符 200305

日期范围 在有效范围 200301 边界上选取 200812 数据 200300 200813

月份范围 月份为1月 200301

月份为12月 200312 月份<1 200300 月份>12 200313

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

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

先画出程序流程图。 再按不同逻辑覆盖法设计一种(写出名称)测试数据。(15分) 答:

语句覆盖 A=3 B=0

8.程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。 (15分)

(1)按等价分类法设计测试用例(要求列出设计过程) (2)按边缘值分析法设计测试用例。 答:

1)合理等价类 选修1门 选修2门 选修3门 不合理等价类 没选课 选3门以上 测试用例 选修=2 选修=0 选修>3 2) 边缘值法

0,1,3,4

9.设被测试的程序段为: begin s1 ;

if (x=0) and (y>2) then s2;

if (x<1) or (y=1) then s3 ; s4 ; end

可供选择的测试数据组为: x y Ⅰ 0 3 Ⅱ 1 2 Ⅲ -1 2 Ⅳ 3 1

找出实现(1)语句覆盖;(2)条件覆盖;(3)判定覆盖至少要选择的数据组。(15分) 答:(1)Ⅰ (2) Ⅰ,Ⅳ (3) Ⅰ,Ⅱ

第8章维护

一、选择题

1.随着软硬件环境变化而修改软件的过程是( ) A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 答案:B

2.软件生存周期中时间最长的阶段是( ) A.需求分析阶段 B.概要设计阶段 C.详细设计阶段 D.维护阶段 答案:D

3. 下列属于维护阶段的文档是 ( )

A. 软件规格说明 B. 用户操作手册 C. 软件问题报告 D. 软件测试分析报告 答案:C

4. 因计算机硬件和软件环境的变化而作出的修改软件的过程称为 ( ) A. 校正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护 答案:B

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

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

答案:B

6. 下列文档与维护人员有关的有 ( )

A. 软件需求说明书 B. 项目开发计划 C. 概要设计说明书 D. 操作手册 答案:C

7. 验收测试是对软件进行 ( ) 测试。

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

8. 纠错是由 ( ) 来完成的。

A. 测试者 B. 程序员 C. 用户 D. 系统管理人员 答案:B

9. ( ) 这种维护性活动数量较大,占整个维护活动的 50% 。

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

10.在下列工具与环境中( )属于较早期的CASE(计算机辅助软件工程)。 A.基于信息工程CASE B.人工智能CASE C.结构的基于图形CASE D.集成的CASE环境

11 .维护中因删除一个标识符而引起的错识是 _________ 副作用。( ) A .文档 B .数据 C .编码 D .设计 答案:C

12 .软件维护的困难主要原因是( )

A .费用低 B .人员少 C .开发方法的缺陷 D .维护难 答案:D

13、在软件维护的内容中,占维护活动工作量比例最高的是( )。

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

14、当前时期软件维护的费用在总费用中的比例为( )。

A.35%~40% B.40%~60% C.60%~70% D.70%~80%或更高 答案:D

15、软件维护的副作用,是指( )。 A.开发时的错误 B.隐含的错误

C.因修改软件而造成的错误 D.运行时误操作 答案:C

16. 软件维护的副作用主要有以下哪几种( )

A编码副作用、数据副作用、测试副作用 B编码副作用、数据副作用、调试副作用 C编码副作用、数据副作用、文档副作用 D编码副作用、文档副作用、测试副作用 答案:C

17.在维护请求且进行的维护过程中,应先( ),然后对维护要求进行评估并分别处理。 A.确定维护类型 B.安排维护先次序

C.组织人员维护 D.分析软件错误的严重程序 答案:A

18.全局数据结构的错误通常在( )中检查。

A.单元测试 B.有效性测试 C.集成(系统)测试 D.确认测试 答案:B

19.维护机构接受维护申请后,接下的工作是( )。

A.回归测试 B.评价申请 C.执行维护 D.组织复审 答案:B

20.软件维护过程中,( )将会引起维护副作用。 A.修改代码或数据后未作测试

B.进行改正性维护时错误未全部改正

C.进行完善性、适应性或预防性维护时考虑因素不全面 D.维护过程中发生系统运行错误 答案:A

二、填空题

1.提高程序的可理解、可修改、可测试的程度,就意味着增强软件件的( )。 答:可维护性

2.如果按用户要求增加新功能或个性已有的功能而进行的维护工作,称为( )。 答:完善性维护

3.一般来说,在管理软件中,软件生存周期各个阶段的工作量以( )阶段所占的比例最大。 答:维护

4.改正性维护中,根据文档是提供的测试用例,重新对修改部分进行的测试称为( )测试。 答:回归

5.软件能被理解、被修改、被测试的易难程度称为( )性。 答:可维护

6.文档是软件开发人员.维护人员.用户以及计算机之间的( ), 软件开发人员在各个阶段以文档作为前段工作成果的( )和后段工作的( )。 答:桥梁 体现 基础

三、判断改错题

1. 在软件的开发过程中,工作量最大的一个阶段就是编写程序。( ) ×工作量最大为维护阶段

2. 软件维护就是改正软件中的错误。( ) ×软件维护定义

3.维护是生存周期中花钱最多,延续时间最长的活动。( ) √

4. 软件开发小组的组成人员的素质应该好,而人数则不宜过多。 √

5. 文档只起备忘录的作用,可以在软件开发完成后再整理生成。( ) ×文档在软件开发阶段占有重要位置,是各阶段评审的依据。 6. 文档是影响软件可维护性的决定因素。( ) √

四、简答题

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

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

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

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

维护就是在软件交付使用后进行的修改,修改之前必须理解待修改的对象,修改之后应该进行必要的测试,以保证所做的修改是正确的。如果是改正性维护,还必须预先进行调试以确定错误的具体位置。因此,决定软件可维护性的因素主要有下述5个: 1. 可理解性 2. 可测试性 3. 可修改性 4. 可移植性 5. 可重用性

3.软件维护有哪些内容? 答:

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

4.软件维护的特点是什么? 答:

A.非结构化维护和结构化维护 B.维护的困难性 C.软件强维护的费用

5.软件维护的流程是什么? 答:

A.制定申请维护报告B.审查申请报告并批准C.进行维护并作详细记录D.覆审

6.提高可维护性的方法有哪些? 答:

A.建立明确的软件质量目标。B.利用先进的软件开发技术和工具。 C.建立明确的质量保证工作。D.选择可维护的程序设计语言。 E、改进程序文档。

五、问答题

第9-12章 面向对象

一、选择题

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

2. 面向对象分析是对系统进行( )的一种方法。

A.需求建模 B.程序设计 C.设计评审 D.测试验收 答案:A

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

4.下列不属于面向对象开发方法的是() A.Booch B.UML C.Coad D.OMT 答案:B

5. 面向对象的分析方法主要是建立三类模型,即( )

A.系统模型,ER模型,应用模型 B.对象模型,动态模型,实现(应用)模型 C.ER模型,对象模型,功能模型 D.对象模型,动态模型,功能模型 答案:B

6.面向对象程序设计的基本机制( ) A.继承 B.消息 C.方法 D.结构 答案:A

7. 下列属于面向对象的要素有( ) A.分类性 B.抽象 C.对象 D.封装 答案:C

8.在进行面向对象分析时,所采用的模型有( )。

A.对象模型 B.动态模型 C.静态模型 D.功能模型 答案:A

9.状态是对象属性的值的一种抽象,它的性质有( )。 A.时间性 B.持续性 C.有序性 D.有穷性 答案:A

10.建立继承关系时所采用的方式有( )。

A.自顶向下 B.从内到外 C.自底向上 D.从复杂到简单 答案:A

11.对象是人们要研究的任何事物,主要的对象类型有( )。 A.有形实体 B.作用 C.事件 D.性能说明 答案:A

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

A. 同一类 B. 不同类 C. 同一应用 D. 不同应用 答案:D

13. 状态是对象 ( ) 的抽象。

属性值 B. 方法 C. 功能 D. 行为 答案:D

14. 动态模型的描述工具是 ( ) 。

A. 对象图 B. 结构图 C. 流程图 D. 状态图 答案:D

15. 在确定对象的属性中,所有 ( ) 是候选的对象。 A. 名词 B. 动词 C. 词组 D. 修饰性名词词组 答案:A

16.对象实现了数据和操作的结合,使数据和操作( )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 答案:C

17.OOA是( )

A. 结构化分析 B.面向对象程序设计 C. 面向对象程序分析 D. 面向对象分析 答案:D

18. 面向对象的特征不包括( )

A.继承性。 B.多态性。 C.互换性 D. .封装性 答案:C

19. 在面向对象软件开发方法中,类与类之间主要有以下结构关系() A继承和聚集 B继承和一般 C聚集和消息传递 D继承和方法调用 答案:A

20. 以下哪一项不是面向对象的特征( )

A多态性 B继承性 C封装性 D过程调用 答案:D

21.对象实现了数据和操作的结合,使数据和操作( )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 答案:C

22. 在面向对象软件开发方法中,类与类之间主要有以下结构关系( ) A继承和聚集 B继承和一般 C聚集和消息传递 D继承和方法调用 答案:A

23. 以下哪一项不是面向对象的特征( )

A多态性 B继承性 C封装性 D过程调用 答案:D

24.下面所列的性质中,( )不属于面向对象程序设计的特性。 A.继承性 B.重用性 C.封装性 D.可视化

答案:D

25.下列是面向对象设计方法中有关对象的叙述,其中( )是正确的。 A.对象在内存中没有它的存储区 B.对象的属性集合是它的特征表示 C.对象的定义与程序中类型概念相当 D.对象之间不能相互通信 答案:B

26.在面向对象软件方法中,“类”是( )。

A.具有同类数据的对象的集合 B.具有相同操作的对象的集合

C.具有同类数据的对象的定义 D.具有同类数据和相同操作的对象的定义 答案:D

27.面向对象分析时,所标识的对象为______是错误的。 与目标系统有关的物理实体

与目标系统发生作用和人或组织的角色 目标系统运行中需记忆的事件 目标系统中环境场所的状态 答案:D

28.面向对象设计OOD模型的主要部件中,通常不包括_____。 通信部件 B.人机交互部件 C.任务管理 D.数据管理 答案:A

29.面向对象设计时,对象信息的隐藏主要是通过______实现的。 A.对象的封装性 B.子类的继承性 C.系统模块化 D.模块的可重用 答案:A

30.作为面向对象分析的基础、由问题领域中的对象所组成、用ER图来描述是____。

A、 消息模型 B.处理模型 C.状态模型 D.瀑布模块

答案:A

二、填空题

1. 面向对象技术是一整套关于如何看待( )和( )的关系,以什么观点来研究问题

并进行分析求解,以及如何进行系统构造的软件方法学。 答:软件系统 现实世界

2. 面向对象方法是一种运用( )、( )、( )、( )、消息传送、多态性等概念来构

造系统的软件开发方法。 答:对象 类 封装 聚合

3. 面向对象的软件工程方法是面向对象方法在( )领域的全面应用。 答:软件工程

4. UML的定义包括( )和( )两个部分。 答:UML语义 UML表示法

5. 面向对象的开发,最大的优点是帮助分析者、设计者及用户清楚地表述( ),便于互相进行交流通讯。 答:抽象概念

6.OOA模型规定了一组对象如何协同才能完成软件系统所指定的工作。这种协同在模型中是以表明对象通信方式的一组( )连接来表示的。

答:消息

三、判断改错题

1.面向对象的的方法以类作为最基本的元素,它是分析问题和解决问题的核心。 ( ) 对象

2.类是指具有相同或相似性质对象的抽象,对象是抽象的类,类的具体化就是对象。( ) 类是指具有相同或相似性质对象的抽象,类的具体化就是对象。

3.继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。( ) √

4.多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。 ( ) √

5.面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 ( ) √

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

7.对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述的,表现了对象的相互关系。 ( ) √

8.面向对象的分析是用面向对象的方法对目标系统的问题空间进行理解、分析和反映。 通过对象层次结构的组织确定解空间中应存在的对象和对象层次结构。 ( ) √

9. 在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例。 ( ) × 对象是类的实例,类是生成对象的模板。

10.复用也叫重用或再用,面向对象技术中的“类\",是比较理想的可重用软构件。有 三种重用方式:实例重用、继承重用、多态重用。 ( ) √

11. 用面向对象方法分析、设计、实现软件,仍属线性的瀑布开发模型。( ) ×开发模型的选取与使用与面向对象方法无必然关系

12.面向对象的分析由对象、结构、继承性和基于消息的通信构成。 ( ) √

13.支持继承性是面向对象程序设计语言和传统程序设计语言在语言机制方面的根本区别。 ( ) √

14.结构化方法和OO方法都是一种面向过程的软件开发方法。( ) ×OO方法不是

15.面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序实现。( ) √

16.软件工具的作用是为了延长软件产品的寿命( )。 ×是辅助软件开发

四、简答题

1. 说明对象、类、类结构、消息的基本概念? 答:对象:是客观实体在问题域中的抽象。 类:具有相似或相同性质的对象的抽象就是类。

类结构:类的结构通常有一般----具体(分类结构)整体---抽象(组装结构) 消息:对象之间通信的构造。

2. 面向对象的特征和要素?

答:特征:一致性、多态性、分类性、继承性。要素:共享、封装、抽象。

3.说明对象模型的特征?

答:对象模型表示了静态的、结构化的、系统数据性质,描述了系统的静态结构,表现了对象间的相互关系,模型主要关心系统中对象的结构、属性和操作使用对象图来描述。

4. 说明动态模型的特征。

答:动态模型描述了与时间和变化有关的系统性质,描述的是系统的控制结构,表示了瞬间的系统控制性质,它关心系统的控制,操作顺序,从对象的状态角度出发表现对象的相互行为。

5. 功能模型的特征。

答:功能模型描述了系统的所有计算。

6. 三种模型的关系?

答:功能模型描述发生了什么,动态模型确定什么时候发生,对象模型确定发生的客体。

7.三种模型的建立过程?

答:对象模型:确定类、准备数据字典、确定联系、确定属性、完善对象模型。 动态模型:准备脚本、准备事件跟踪、构造状态图。 功能模型:确定输入输出值、建立DFD.

五、问答题

1.一本书有一个封面、一个目录、一个前言、若干章、每章有若干节、每节有若干段每段有若干句子、每节有0个或多个插图,还有0个或多个表格,最后有一个附录。试建立该书的对象模型。 答:

2.某机械加工公司要建立的仓库管理系统中,有以下功能:

1.入库:入库员负责登记入库物品(编号,品名,型号,数量, 单价,位置,检验员,审批人,入库日期,采购员,供应商)中,包括查看库存中有无这类物品。 2.出库:出库员根据用户要求(编号,品名,型号,数量),查看有无所需物品, 若有查看库存量是否满足,方可提货,并修改库存。 要求:

1)建立仓库系统用例图

2)画出仓库系统模块结构图(10分) 答:

1)用例图

库入库登记

管理 理员 员 查询统计 出

库 管理 出库登记 员

仓库管理系统 2)仓库系统模块结构图

物品入库 物品出库 查询统计

3.某机械加工公司要建立的仓库管理系统中,有以下功能:

1.入库:入库员负责登记入库物品(编号,品名,型号,数量, 单价,位置,检验员,审批人,入库日期,采购员,供应商)中,包括查看库存中有无这类物品。 2.出库:出库员根据用户要求(编号,品名,型号,数量),查看有无所需物品, 若有查看库存量是否满足,方可提货,并修改库存。

要求:

1)设该系统的实体只有:供应商,仓库物品,用户。画出这些实体及它们的联系的图形(数据模型ER图)。

2)根据ER图,给出仓库系统的主要类图 答:

1)E-R图

数量 数量

供应商 入库 供应商ID 时间

2)主要类图 入库类 供应商类 供应商ID 地址 电话 负责人 增用户() 验证() 修改() 查商户()

入库ID * 1 物品ID 日期 数量 1 * 物品 出库 用户 物ID 时间 用户ID 物品类 出库类 出库ID * 1 物品ID 用户 日期 1 * 用户类 用户ID 物ID 名称 供应商ID 型号 增物品() 更新() 删除() 查库存() 统计() * 1 用户名 电话 增用户() 验证() 修改() 查用户() 登记1() 修改() 查入库() 登记2() 修改() 查出库() 数据维护类 * 1 * 1 1 * 连接字 表名 输入数组 输出数组 增加() 更新() 查询() 统计() 删除() 1 * 4. 网上购书系统为注册用户、书商和系统管理员服务。注册用户登陆后可以选购图书,书商在网站上发布出售的图书信息,系统管理员负责定期查询整理书目和管理书价。用用例图表示上述需求。(10分)

注册用户

网上购书系统整理图书选购图书登陆调整书价系统管理员发布出售信息查询客户信息-结束2*-结束1*书商

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