文档库 最新最全的文档下载
当前位置:文档库 › 软件工程试卷C

软件工程试卷C

软件工程试卷C
软件工程试卷C

习题一答案

一、选择题

1. 软件的主要特性是(A B C)。

A) 无形 B) 高成本

C) 包括程序和文档D) 可独立构成计算机系统

2. 软件工程三要素是(B)。

A) 技术、方法和工具B) 方法、工具和过程

C) 方法、对象和类D) 过程、模型、方法

3. 包含风险分析的软件工程模型是(A)。

A) 螺旋模型 B) 瀑布模型C) 增量模型 D) 喷泉模型

4. 软件工程的主要目标是( )。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现

5. 下列属于面向对象开发方法的是(A C D)。

A) Booch B) UML C) Coad D) OMT

6. 软件危机的主要表现是(B D)。

A) 软件成本太高B) 软件产品的质量低劣

C) 软件开发人员明显不足D) 软件生产率低下

7. 软件开发方法的主要工作模型有(A B C)

A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型

8. 软件工程的目标有(A B C D)。

A) 易于维护B) 低的开发成本

C) 高性能D) 短的开发期

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

A) 应用科学的方法和工程化的规范管理来指导软件开发

B) 克服软件危机

C) 作好软件开发的培训工作

D) 以较低的成本开发出高质量的软件

二、判断题

1. 软件就是程序,编写软件就是编写程序。(×)

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

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

4. 结构化方法和JSP方法都不适合于大型软件的开发。(√)

5. 原型化开发方法包括生成原型和实现原型两个步骤。(×)

6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。(×)

7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。(×)

8. 软件工具的作用是为了延长软件产品的寿命。(×)

9. 软件工程过程应该以软件设计为中心,关键是编写程序。(×)

10. RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。(√)

三、简答题

1. 软件产品的特性是什么?

答:●软件是一种逻辑产品,具有无形性;

●软件产品的生产主要是研制;

●软件不存在磨损和老化问题,但存在退化问题;

●软件产品的生产主要是脑力劳动;

●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;

● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。

2. 软件发展有几个阶段?各有何特征?

答:①程序设计阶段。

硬件特征:价格贵、存储容量小、运行可靠性差。

软件特征:只有程序、程序设计概念,不重视程序设计方法。

②程序系统阶段。

硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。

软件特征:程序员数量猛增,开发人员素质低。

③软件工程阶段。

硬件特征:向超高速、大容量、微型化及网络化方向发展。

软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。

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

答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。软件危机主要表现在两个方面:

(1) 软件产品质量低劣,甚至开发过程就夭折。

(2) 软件生产率低,不能满足需要。

4. 什么是软件生存周期模型?它有哪些主要模型?

答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。主要模型包括:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。

5. 有哪些主要的软件开发方法?

答:主要的软件开发方法有:结构化开发方法、Jackson(JSP、JSD)方法、原型化开发方法、维也纳开发方法(VDM)和面向对象的开发方法。

6. 软件生命期各阶段的任务是什么?

答:软件生命期瀑布模型分为六个阶段:

● 可行性研究与计划(确定系统的目标和规模,分析项目的可行性);

● 需求分析与规格说明(明确系统的规格和要求);

● 设计(包括概要设计和详细设计,将系统分解为模块);

● 编程(用程序语言实现每个模块,简单容易);

● 测试(发现并改正错误,分为模块测试、集成测试和系统联调三级);

● 运行维护(扩充功能、纠错等)。

习题二答案

一、选择题

1. 需求分析的主要目的是(BC)。

A) 系统开发的具体方案

B) 进一步确定用户的需求

C) 解决系统是“做什么的问题”

D) 解决系统是“如何做的问题”

2. 需求分析的主要方法有(CD)。

A) 形式化分析方法B) PAD图描述

C) 结构化分析(SA)方法D) OOA法

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

A) 系统模型、ER模型、应用模型

B) 对象模型、动态模型、应用模型

C) E-R模型、对象模型、功能模型

D) 对象模型、动态模型、功能模型

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

A) 系统流程图和模块图

B) DFD图、数据词典、加工说明

C) 软件结构图、加工说明

D) 功能结构图、加工说明

5. 画分层DFD图的基本原则有(ACD)。

A) 数据守恒原则

B) 分解的可靠性原则

C) 子、父图平衡的原则

D) 数据流封闭的原则

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

A) 数据、对象、实体

B) 控制、联系、对象

C) 实体、联系、属性

D) 实体、属性、联系

7. 画DFD图的主要目的是(A D)。

A) 作为需求分析阶段用户与开发者之间交流信息的工具

B) 对系统的数据结构进行描述

C) 对目标系统的层次结构进行描述

D) 作为分析和设计的工具

8. 数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(B)。

A) 数据说明条目、控制流条目、加工条目、数据存储条目

B) 数据流条目、数据项条目、文件条目、加工条目

C) 数据源条目、数据流条目、数据处理条目、数据文件条目

D) 数据流条目、数据文件条目、数据池条目、加工条目

9. 在需求分析阶段主要采用图形工具来描述的原因是(B C D)。

A) 图形的信息量大,便于描述规模大的软件系统

B) 图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重要的细节

C) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用户之间达成一致的需求

D) 图形比文字描述简单、形象

二、判断题

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

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

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

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

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

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

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

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

9. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√)

10. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√)

三、问答题

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

答:

需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。准确地回答“系统必须做什么?” 的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。

需求分析的基本任务包括:

(1) 抽取需求分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。

(2) 模拟和分析需求需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。

(3) 传递需求传递需求的主要任务是书写软件需求规格说明。

(4) 认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。

(5) 进化需求客户的需要总是不断(连续)地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。

2. M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记:副总裁不喜欢报告长度超过一页(B5)。

参考答案提示:

应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。根据快速原型法的特点,说明它特别适合于开发探索型、实验型的软件。

3. 如何画分层数据流图?

答:

总的原则是:至顶而下,逐层分解(画分层数据流图)。

比较复杂的系统不能画在一张纸上,逐层分解的画法可以控制每一层的复杂度。

顶层:将整个系统作为一个加工,描述系统边界(输入与输出)。

中间层:表示某个加工分解为一组子加工,其中的子加工还需进一步分解。

底层:由不再进行分解的基本加工组成。

4. 加工小说明有哪些描述方法?

答:

●结构化语言:介于自然语言和形式语言(如谓词逻辑)之间。

●结构化英语:通常由外层和内层结构组成。

● 汉语的情况:精确、简明扼要、文体可以灵活。

● 判定表:适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。 ● 判定树:本质上与判定表相同,图形表示更易于理解。

5. 考察下图中子图、父图的平衡。

1

图2

参考答案:

显然,图1中子图与父图不平衡。改正如下: 如果有如下数据条目:

订货单=客户+账号+数量 则子、父图平衡

6. 画出银行取款过程的DFD 图。问题描述为:储户用存折取款,首先填写取款单,根据“ 账卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款 数据库”,修改相应数据,并更新“账卡”,同时发出付款通知,出纳向储户付款。

参考答案:

7. 常用的软件需求分析方法有哪些?

答: 结构化分析方法(SA)、功能分解法、信息建模法、面向对象的分析方法(OOA)。

习题三答案 一、 选择题

1. 模块的基本特征是(A C)。 A) 外部特征(输入/输出、功能)

B) 内部特征(输入/输

出、功能)

C) 内部特征(局部数据、代码)

D) 外部特征(局部数

据、代码 )

2. SD 方法的设计总则是(B C D)。 A) 程序简洁、操作方便 B) 结构清晰、合理 C) 模块内聚性强

D) 模块之间耦合度

3. 软件设计的主要任务是(A B D)。

A) 将分析阶段获得的需求说明转换为计算机中可实现的系统 B) 完成系统的数据结构和程序结构设计 C) 完成模块的编码和测试 D) 对模块内部的过程进行设计 4. 设计阶段应达到的目标有(A C D)。 A) 提高可靠性和可维护性 B) 提高应用范围 C) 结构清晰

D) 提高可理解性和

效率

5. 从工程管理的角度来看,软件设计分两步完成(D)。 A) ①系统分析②模块设计

B) ①详细设计②总

体设计

C) ①模块设计②详细设计D) ①总体设计②详细设计

6. 模块独立性准则由以下定性指标来衡量(BD)。

A) 分解度B) 耦合度C) 屏蔽性D) 内聚性

7. 用户界面设计的任务包括(A B C)。

A) 确定用户界面类型B) 建立任务模型

C) 建立用户模型D) 建立功能模型

8. 程序设计语言可以分为(AB C D)。

A) 面向过程的语言B) 机器语言

C) 高级语言D) 汇编语言

9. 程序效率包括(A C D)几个方面的内容。

A) 代码效率B) 运行效率C) 存储效率D) I/O 效率

10. SP方法中的基本控制结构有(A B C)。

A) 顺序结构B) 选择结构C) 重复结构D) GOTO结构

11. 内部文档可用注释语言书写,注释语言分为(A B C D)。

A) 序言性注释B) 描述性注释C) 功能性注释

D) 状态性注释

12. 为使程序中数据说明更易于理解和维护,必须遵循以下原则(A B C) 。

A) 数据说明的次序应当规范化

B) 一个语句说明多个变量时,各变量名按字母顺序排列

C) 对于复杂的数据结构,要加注释,说明在程序实现时的特点

D) 定义变量名应按字母顺序排列

13. 源程序的效率与(D)阶段确定的算法的效率直接有关。

A) 概要设计B) 总体设计C) 单元设计D) 详细设计

14. 在详细设计翻译转换成源程序代码后,算法效率反映为对程序的哪几个方面的要求(C D)。

A) 读写速度B) 代码长度C) 存储容量D) 执行速度

15. 提高程序效率的根本途径在于(B D)。

A) 编程时对程序语句进行调整B) 选择良好的设计方法

C) 使程序最大限度的简洁D) 选择良好的数据结构与算法

二、判断题

1. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。(×)

2. 在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用。(×)

3. 信息隐蔽原则有利于提高模块的内聚性。(√)

4. 中心变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图。(×)

5. SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。(×)

6. 所谓结构冲突,是指输入数据与输出数据之间很少或没有结构上的对应关系。通常解决的办法是:构造一个或者多个中间结构,在输入和输出结构之间进行转换。(√)

7. 当模块的控制范围是其作用范围的子集时,模块之间的耦合度较低。(×)

8. JACKSON方法是以数据流、数据封闭性准则逐层分解的。(×)

9. 程序设计语言的工程特性包括:可移植性、可重用性、可维护性、局部性和顺序性。(×)

10. 项目应用领域是选择语言的关键因素。(√)

11. FORTRAN、Pascal、C语言、PL/1和汇编语言都是科学工程计算可选用的语言。(√)

12. 要用快速原型法开发软件,应选用4GL语言。(√)

13. 提高程序效率的根本途径是选择良好的设计方法、数据结构与算法。(√)

14. 良好的程序设计风格简单说就是高的编程技巧。(×)

三、简答题

1. 模块内联系和模块间联系有哪些种类?

答:块间联系的各种类型的划分,从以下3方面考虑:

● 按块间联系的方式(可分为直接引用与过程调用);

●按块间共用信息的作用(可分为数据型、控制型与混合型);

●按块间共用的信息数量多少(信息多联系紧密)。

(1)块间联系的类型,按照耦合度由大到小分为:

内容型:直接引用另一模块的内部信息;

公共型:两个模块引用共同的全程数据区;

控制型:模块间传送的信息用于控制模块的内部逻辑;

复合型:模块间传送复合的数据结构;

数据型:模块间传送单个数据项。

(2)块内联系的类型,按照内聚性从小到大分为:

偶然型:模块内部没有必然联系;

逻辑型:逻辑上相似的功能放进一个模块;

瞬时型:将同时执行的语句放在一个模块;

通信型:模块中的各部分引用共同的数据;

顺序型:模块中一部分的输出是另一部分的收入;

功能型:模块中刚好包含了完成一个基本任务所必需的成分。

2. 分析以下DFD图,说明属于哪种类型的DFD图,并按照相应的变换将其转换为初始的模块结构图。

参考答案:(略)

3. 下图是修改文件记录的DFD图,请确定其主加工。

解:主加工为:账号、修改、写记录。

4. 按照“降低块间联系,提高块内联系”的设计总则对模块进行修改,具体从哪些方面进行改进?

解:

(1) 尽可能建立功能模块;

(2) 消除重复功能;

(3) 模块的作用范围与控制范围,即当作用范围为控制范围的子集时,才能获得较低的块间联系;

(4) 模块的大小适当;

(5) 模块的扇入扇出数不宜太多。

5. 根据模块的作用范围与控制范围的原则,判定a、b两图的正确性。

解:显然,图a不满足作用范围应与控制范围的原则,模块F的作用范围不在控制范围之内。

图b的模块设计合理。

6. 图a中,模块G为判定,判断涉及到模块B、F、G,请指出设计中的错误,再根据改进模块图的基本原则,画出1~2个改进方案(不改变模块G的判断关系),并说明是按照哪条基本原则进行改进的。

解:图b为一个改进方案,将模块G的位置提高,使其作用范围为控制范围的子集,减少模块之间的联系。

7. 编码阶段的主要任务是什,应交付的结果是什么?

答:编码阶段的主要任务是为每个模块编写程序。即是:将详细设计的结果转换为用某种计算机语言写的程序——源程序代码。编码阶段应交付的结果是带有“程序内部文档”的、不再含有语法错误的程序。

8. SP法的自顶向下,逐步求精方法的优点有哪些?

答:此法符合人们解决复杂问题的普遍规律,可提高软件开发的成功率和生产率;而且用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程,开发出来的程序具有清晰的层次结构,因此程序容易阅读和理解。这样,程序自顶向下,逐步细化,分解成一个树型结构。

因此,在同一层次的节点上做细化工作,相互之间没有联系,它们之间的细化工作相互独立;在任何一步发生错误,一般只影响它下层的节点,同一层其他节点不受影响;在以后的测试中,也可以先独立地一个节点一个节点地做,最后再集成。这样,程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码量最大。

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

答:(1) 标识符应按意取名。

标识符即符号名,包括:模块名、常量名、标号名、子程序名、数据区名、缓冲区名等。这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能够见名知意,有助于对程序功能的理解。

(2) 程序应加注释,它分为两类:序言性注释和功能性注释。

序言性注释应置于每个模块的起始部分,主要内容有:①说明每个模块的用途,功能;②说明模块的接口即调用格式、参数描述及从属模块的清单;③数据描述;

④开发历史。

功能性注释是嵌在源程序体中的,用于说明其后的程序段或语句的功能以及数据的状态;也就是解释下面要“做什么”,或是执行下面的语句会发生什么情况;而不是解释下面“怎么做”,因为怎么做常常是与程序重复的,且对读者理解程序没有什么帮助。

10. 样评价程序的执行效率?它与程序清晰性的关系是怎样的?

答:许多程序员往往片面追求效率,其实程序系统的成本不仅包括运行所需的机时,同时还应把程序员及操作员所花费的人力考虑进去。在编程时为追求效率而损害可读性或可靠性,会给以后的维护工作带来困难,所以从整体上看来是不值得的。

此外,还应该认识到,提高程序效率的根本途径在于:选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句进行调整。

(1) 追求建立在不损害程序可读性或可靠性基础上,要先使程序正确、清晰,再提高程序效率。

(2) 不能因为贪图效率上的小利,而破坏程序的清晰性。

(3) 让编译程序去作简单的优化。

(4) 提高程序效率的根本途径在于:选择良好的设计方法和良好的数据结构与算法,而不是靠编程时对程序语句做调整。

11. 假定:需要编一个求解一元二次方程根的子程序,加入到现有的子程序库中,供其他程序员使用。要求:

(1) 为该子程序写一个序言性注释;

(2) 用PASCAL语言或其他语言写出这个子程序(要把根的性质,如:实根、复根、降为一次方程等有区别地通知调用者),并加上描述性注释。

答案:(略)

习题四答案

一、选择题

1. 面向对象程序设计的基本机制(ABC)。

A) 继承B) 消息C) 方法D) 结构

2. 下列属于面向对象的要素有(BCD)。

A) 分类性B) 抽象C) 共享D) 封装

3. 下列选项中属于面向对象开发方法的有(ACD)。

A) Booch B) CAD C) Coad

D) OMT

4. 下列属于Coad方法中面向对象的分析模型的层次有(AB)。

A) 主题层B) 对象层C) 应用层D) 接口层

5. 一个类属性依其特征划分,其类型有(ABCD)。

A) 描述型B) 定义型C) 派生型D) 参考型

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

A) 对象模型B) 动态模型C) 静态模型D) 功能模型

7. 状态是对象属性的值的一种抽象,它的性质有(AB)。

A) 时间性B) 持续性C) 有序性D) 有穷性

8. 数据流图中的处理必须用对象中的操作来实现常见的操作有(ABCD)。

A) 查询B) 动作C) 活动D) 访问

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

A) 自顶向下B) 从内到外C) 自底向上D) 从复杂到简单

二、判断题

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

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

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

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

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

6. 面向对象的设计的主要目标是提高生产效率,提高质量和提高可维护性。(√)

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

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

9. 类的设计过程包括:确定类,确定关联类,确定属性,识别继承关系。(√)

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

11. 主题是一种关于模型的抽象机制,它是面向对象模型的概貌,也是关于某个模型要同时考虑和理解的内容,主题起一种控制作用。(×√)

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

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

14. 面向对象的分析过程主要包括三项内容:理解、表达和验证。(√)

15. 面向对象的设计的主要目标是提高生产效率、提高质量和提高可维护性。(√)

三、简答题

1.与传统程序设计模式中的过程调用相比,消息传递机制有何本质区别?

答:

(1) 消息传递必须给出信道的信息,通常要指出明显的接受方。

(2) 由于接受方是一通信实体,具有保持状态的能力,所以同一发送方在不同时刻向同一接受方发送同样的信息,可因接受方的当前状态不同而得到不同的结果。

(3) 消息传递可以是异步的,发送方可以不必等待接受方返回信息就可以继续执行后面的操作,因而支持程序的并发和分布执行,而过程调用只能是同步的,本质上是串行的。

2.阐述面向对象的特征,并做简要的解释。

答:

(1) 对象惟一性。

每个对象都有自身惟一的标识,通过这种标识,可找到相应的对象。

(2) 分类性。

是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。

(3) 继承性。

是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。

(4) 多态性。

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

3.Coad方法主要由面向对象分析OOA和面向对象设计OOD。OOA方法分析过程和构造OOA概念模型的顺序由5个层次组成,请简述这5个层次。

答:

(1) 发现类及对象。描述如何发现类及对象。从应用领域开始识别类及对象,形成整个应用的基础,然后,据此分析系统的责任。

(2) 识别结构。该阶段分为两个步骤。第一,识别“一般-特殊”结构,该结构捕获了识别出的类的层次结构;第二,识别“整体-部分”结构,该结构用来表示一个对象如何成为另一个对象的一部分,以及多个对象如何组装成更大的对象。

(3) 定义主题。主题由一组类及对象组成,用于将类及对象模型划分为更大的单位,便于理解。

(4) 定义属性。其中包括定义类的实例(对象)之间的实例连接。

(5) 定义服务。其中包括定义对象之间的消息连接。

4.面向对象程序设计有哪些优点?

解:开发时间短、效率高、可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短开发时间,这样程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。

5.比较面向对象方法与结构化方法的特点。

解:分析是问题抽象(做什么),设计是问题求解(怎么做),实现是问题的解(结果)。任何方法学对客观世界的抽象和求解过程都是如此。在问题抽象阶段,结构化方法面向过程,按照数据变换的过程寻找问题的结点,对问题进行分解。因此,与面向对象方法强调的对象模型不同,描述数据变换的功能模型是结构化方法的重点。如果问题世界的功能比数据更复杂或者更重要,那么结构化方法仍然应是首选的方法学。如果数据结构复杂且变换不多,那么如果以过程主导分析和设计,一旦有系统变更就会给下游开发带来极大混乱。

由于对过程的理解不同,面向过程的功能细分所分割出的功能模块有时会因人而异。而面向对象的对象细分,从同一问题领域的对象出发,不同人得出相同结论的比率较高。

在设计上,结构化方法学产生自顶向下、结构清晰的系统结构。每个模块有可能保持较强的独立性,但它往往与数据库结构相独立,功能模块与数据库逻辑模式间没有映射关系,程序与数据结构很难封装在一起。如果数据结构复杂,则模块独立性很难保证。面向对象方法抽象的系统结构往往并不比结构化方法产生的系统结构简单,但它能映射到数据库结构中,很容易实现程序与数据结构的封装。

在软件工程基本原则中有一条“形式化原则”,即对问题世界的抽象结论应该以形式化语言(图形语言、伪码语言等)表述出来。结构化方法可以用数据流图、系统结构图、数据辞典、状态转移图、实体关系图来进行系统逻辑模型的描述;

而面向对象方法可以使用对象模型图、数据辞典、动态模型图、功能模型图。其中对象模型图近似系统结构图与实体关系图的结合,动态模型图类似状态迁移图,功能模型图类似数据流图。

6.当重要的对象被发现后,通过一组互相关联的模型详细表示类之间的关系和对象的行为,这些模型从四个不同的侧面表示了软件的体系结构、静态逻辑、动态逻辑、静态物理和动态物理。试描述一下这四种特性。

解:静态逻辑模型描述实例化(类成员关系)、关联、聚集(整体/部分)、和一般化(继承)等关系。这被称为对象模型。一般化关系表示属性和方法的继承关系。定义对象模型的图形符号体系通常是从用于数据建模的实体关系图导出的。对设计十分重要的约束,如基数(一对一、一对多、多对多),也在对象模型中表示。

动态逻辑模型描述对象之间的互相作用。互相作用通过一组协同的对象,对象之间消息的有序的序列,参与对象的可见性定义,来定义系统运行时的行为。

静态物理模型通过模块描述代码的布局。动态物理模型描述软件的进程和线程体系结构。

习题五答案

一、选择题

1. 下列不是模型元素的是(D)。

A) 关联B) 聚合C) 依赖D) 笔记

2. UML具有扩展性,常见的扩展机制有(BCD)。

A) 修饰B) 版类C) 加标签值D) 约束

3. UML语言支持的建模方式有(ABCD)。

A) 静态建模B) 动态建模C) 模块化建模D) 功能建模

4. 下列各种图可用于动态建模的有(ACD)。

A) 状态图B) 类图C) 序列图D) 活动图

5. 下列属于状态的组成部分的有(AB)。

A) 名称B) 活动C) 条件D) 事件

6. UML中包括的事件有(ABCD)。

A) 条件为真B) 收到另一对象的信号

C) 收到操作调用D) 时间表达式

7. 属性的可见性有(ABD)。

A) 公有的B) 私有的C) 私有保护的D) 保护的

8. 用例之间的关系有(BC)。

A) 友元B) 扩展C) 使用D) 组合

9. 应用于通用化约束的方式有(ABCD)。

A) 完整B) 不相交C) 不完整D) 覆盖

10. 消息的类型有(ABC)。

A) 同步B) 异步C) 简单D) 复杂

二、判断题

1. UML建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的。(√)

2. UML是一种建模语言,是一种标准的表示,是一种方法。(×)

3. 泳道是一种分组机制,它描述了状态图中对象所执行的活动。(×)

4. 同步消息和异步消息的主要区别是:同步消息的发送对象在消息发送后,不必等待消息处理,可立即继续执行,而异步消息则发送对象必须等待接收对象完成消息处理后,才能继续执行。(×)

5. 类图中的角色是用于描述该类在关联中所扮演的角色和职责的。(√)

6. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。(×)

7. 用例模型的基本组成部件是用例、参与者和用例之间的联系。(√)

8. 用例之间有扩展、使用等几种关系。(√)

9. 顺序图描述对象之间的交互关系,重点描述对象间消息传递的时间顺序。(√)

10. 活动图显示动作及其结果。着重描述操作实现中所完成的工作以及用例实例或类中的活动。(×)

三、简答题

1. 以图1(一个在学校首次报名的UML 活动图)为例,说明如何绘制活动图。

图1 学校首次报名的UML活动图

答:

要创建一个UML活动图,需要反复执行下列步骤。

(1) 定义活动图的范围。首先应该确定建模的范围,是对整个系统建模?还是一个子系统?一旦定义了作图的范围,应该在其顶部,用一个注释,指明该图的标题和惟一的标识符,还可标注该图的时间及作者姓名。本题的建模范围是一个学校管理系统中的“报名”部分。

(2) 添加活动。活动是活动图的核心,活动是完成系统任务所必须执行的处理步骤。可从用例模型出发,对每个角色(actor)所驱动的主要用例引入一个活动,如果是对整个系统建模,应对每个主要流程引入一个活动。在“报名”的活动图中确定了“Fill out enrollment ”(填写报名表)、“Enroll in university”(登记入学)、“Obtain help to fill out fo rms”(帮助填写报名表)、“Attend university overview presentation”(参加介绍学校会议)等6个活动。

(3) 添加起点和结束点。每个活动图只能有一个起始点和多个结束点,结束点可以是所有活动的结束,也可以是对执行过程的终止。

(4) 添加活动间的转变。当一个活动结束时将进入下一个活动,称为活动转移。可标明活动转移的条件,引起活动转移的事件。如活动“填写报名表”有两个活动转移,当填写报名表不正确时,则转移到活动“帮助填写报名表”,当填写正确时,则转移到活动“登记入学”。

(5) 添加判断点。当对建模的逻辑需要做出一个判断时,需要添加判断点。例如,在图1中,在“Enroll in University”活动之后,还必须按照入学条件进行判断,满足条件的继续执行入学报到的活动,而不满入学条件的则结束。

(6) 找出并行活动。当两个活动间没有直接的联系,而且它们都必需在第三个活动开始前结束,那它们是可以并行运行的。在图1中,用同步线描述系统任务中的并发活动,活动“Attend university overview presentation”(参加介绍学校会议)和“enroll in seminars” (注册研讨班)及“Make initial tuition payment”(交付初始的学费)可并行执行,使用同步线表示它们都要在结束整个流程前完成。

2. 简述扩展、使用和细化三种UML依赖关系的异同。

答:扩展关系是对基本用例在对某些“扩展点”的功能的增加。

使用关系表示一个元素为了实现或完成其全部的功能需要用到已存在的另一个模型元素,例如类与类之间的多种方法调用关系。

细化关系是不同语义层(如分析和设计)之间模型元素的依赖关系,因此细化关系可描述的语义范围较广,包括模型的逐步细化、优化、变换、模板、模型合成、框架组成等等。

3. 为什么要使用UML?

答:软件开发的过程犹如雕琢一件工艺品,由无形到有形,由粗到细。大家知道,随着计算机应用的飞速发展,软件的复杂程度不断提高,源代码的规模越来越大,项目失败的可能性也相应增加。在长期的研究与实践中,人们越来越深刻地认识到,建立简明准确的表示模型是把握复杂系统的关键。模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。在模型中,先要剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单明了、易于把握。总的来说,使用模型可以使人们从全局上把握系统的全貌及其相关部件之间的关系,可以防止过早地陷入各个模块的细节。因此,面向对象的分析与设计应该从建模开始。

4. 简述UML实际建模过程。

答:每次迭代都分为以下几个阶段:

①分析阶段。建模的目的是捕捉系统的功能需求,分析、提取所开发系统的“客观世界”领域的类以及描述它们的合作关系。

②设计阶段。建模的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案。

③实现阶段。具体工作就是进行编码,同时对已构造的模型作相应的修正。

④配置阶段。通过模型描述所开发系统的软硬件配置情况。

⑤测试阶段。使用前几个阶段所构造的模型来指导和协助测试工作。

5. 在UML中的状态图、协作图、活动图、序列图在系统分析中各起到了什么作用?

答:

状态图表示一个类的状态变化,例如订单的状态变化等,在实时系统中用的较多,也可以用于辅助设计用户界面;顺序图表示各个对象如何合作,一起完成一个use case,并可以验证和修正类图,协作图从另一个角度来完成这些事情,协作图也可以从顺序图生成。活动图可以用来表示use case的各条分支。

6. 简述活动图和状态图的区别。

答:

活动图(Activity Diagram)是由状态图变化而来的,它们各自用于不同的目的。状态图着重描述了对象的状态变化以及触发状态变化的事件。但是,从系统任务的观点看系统,它是由一系列有序活动组成的,活动图是从活动的角度描述系统任务,并且可以描述系统任务中的并发活动。活动图描述了系统中各种活动的执行顺序,刻化一个方法中所要进行的各项活动的执行流程。活动图显示动作及其结果,着重描述操作实现中完成的工作以及用例或对象内部的活动。

在状态图中状态的变迁通常需要事件的触发,而活动图中一个活动结束后将立即进入下一个活动。

习题六答案

1. 什么是软件复用?

答:软件复用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的。

2. 软件复用的层次可以分为哪几个级别?

答:(1)代码的复用;(2)设计结果的复用;(3)分析结果的复用;(4)测试信息的复用。

3. 生产者复用(Product Reuse)和消费者复用(Consumer Reuse)有何区别?

答:生产者复用是指建立、获取或者重新设计可复用构件的活动。生产者复用中涉及到的活动包括:复用的规划、领域分析、构件的开发、构件库的组织和管理。消费者复用是指使用可复用的构件建立新的软件系统的活动。消费者复用中涉及到的活动包括:应用系统的规划、构件的检索和选择、应用系统中非复用部分的开发、应用系统的组装等。

4. 什么是可复用构件?相对于普通软件产品,对可复用构件有何特殊要求?

答:可复用构件是指可以在多个软件系统的开发过程中被重复使用的软件产品。

相对于普通软件产品,对可复用构件的特殊要求包括:具有功能上的独立性与完整性、具有较高的通用性、具有较高的灵活性、具有严格的质量保证和具有较高的标准化程度。

5. 基于构件的软件开发的优势是什么?

答:基于构件的软件开发的优势包括:可以显著地改善软件的质量和可靠性;可以极大地提高软件开发的效率;节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。

6. 简述CORBA的对象管理体系的组成。

答:CORBA的对象管理体系由四个部分组成;这四个部分是对象请求代理、对象服务、公共工具和应用程序对象。

7. 在EJB 2. 0规范中定义的EJB构件有哪些类型?

答:在EJB 2. 0规范中定义的EJB构件包括以下四种类型:无状态会话EJB构件、有状态会话E JB构件、实体EJB构件和消息驱动EJB构件。

习题七答案

一、选择题

1. 软件测试的主要特点是(A C)。

A) 软件测试的开销大B) 软件测试要依靠工具

C) 软件不能进行“穷举”测试D) 软件测试要依靠人工

2. 整体测试又称为组装测试,其主要内容包括(C D)。

A) 对整体的性能进行测试B) 用白盒法设计测试用例进行测试

C) 确定组装策略和次序D) 对组装过程进行测试

3. 渐增式是将模块一个一个地连入系统,每连入一个模块(C)。

A) 只需要对新连入的模块进行测试

B) 都不需要再进行测试

C) 要对新子系统进行测试

D) 都要进行回归测试

4. 静态测试是以人工的、非形式化的方法对程序进行分析和测试。常用的静态测试方法有(B)。

A) 运行程序并分析运行结果B) 桌前检查与代码会审

C) 数据流分析图D) 调用图

5. 集成过程的原则是(B C)。

A) 按照模块的大小集成

B) 尽早测试包含I/O的模块

C) 尽早测试关键模块

D) 按照“输入—处理—输出”的次序进行集成

6. 关于白盒法覆盖程度的论述中正确的是(A B)。

A) 语句覆盖:选择测试用例使程序中每条语句至少被执行一次

B) 判定覆盖:选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值

C) 条件覆盖:选择测试用例使每个条件都满足

D) 条件组合覆盖:将所有的判定条件都组合起来执行

7. 软件测试的基本原则是(A C D)。

A) 关键是注重选择高效的测试用例

B) 选择尽可能多的测试用例

C) 尽量不由程序设计者进行测试

D) 充分注意测试中的群集现象

8. 等价分类法的关键是(C)。

A) 确定等价类的边界条件

B) 按照用例来确定等价类

C) 划分等价类

D) 确定系统中相同和不同的部分

二、判断题

1. 单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(√)

2. 功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。( √)

3. 白盒法是一种静态测试方法,主要用于模块测试。( ×)

4. 整体测试又称为逻辑覆盖测试,需要对系统模块的内部结构进行测试。(×)

5. 在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。(×)

6. 发现错误多的模块,残留在模块中的错误也多。(×)

7. 在分析规范(因、果)的基础上画出因果图,再将其转换为有限项判断表,就容易得出测试用例。(√)

8. 系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。(×)

9. 有效性测试是在模拟环境(或开发环境)下运用黑盒法,验证软件特性是否与需求符合。(√)

10. 在发现错误后,则应按照一定的技术去纠正它,纠错的关键是“错误定位”。(√)

三、简答题

1. 渐增式与非渐增式各有何优、缺点?为什么通常采用渐增式?

答:非渐增式是将所有的模块一次连接起来,简单、易行,节省机时,但测试过程中难于查错,发现错误也很难定位,测试效率低。

渐增式是将模块一个一个地连入系统,每连入一个模块,都要对新系统进行测试。这种组装测试方案比较非渐增式,容易查出错误及进行错误定位,有利于查出模块接口部分的错误,因此测试效率高。因此通常采用渐增式。

2. 自顶而下增值与自底而上增值各有何优、缺点?

答:

①自顶而下增值

优点:能够尽早发现系统主控方面的问题。

缺点:无法验证桩模块是否完全模拟了下属模块的功能。无法尽早查出底层容易出错的复杂模块中的错误,所以导致过多的回归测试。

②自底而上增值

优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。

缺点:只有当系统所有模块全部组装完成,才能看到系统实体,才能测试系统的主控功能。

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

答:根据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。

4. 一般情况驱动模块比桩模块容易设计,为什么?

答:因为驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需要模拟向被测模块传递数据,接收、打印从被测模块返回的数据的功能,较容易实现。

而桩模块用于模拟那些由被测模块所调用的下属模块的功能,由于下属模块往往不止一个,也不止一层,同时由于模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系。同时为了模拟下层模块的不同功能,需要编写多个桩模块,而这些桩模块所模拟的功能是否正确,也很难进行验证。因此,驱动模块的设计显然比桩模块容易。

5. 什么是α测试和β测试?

答:α测试是在开发机构的监督下,在确认测试阶段后期由个别用户对软件进行测试,目的是评价软件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持性),注重界面和特色。

β测试是由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性。

习题八答案

一、选择题

1. 软件维护的类型有(A B C D)。

A) 完善性维护B) 纠错性维护C) 适应性维护

D) 预防性维护

2. 各种软件维护的类型中最重要的是( A)。

A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护

3. 以下属于完善性维护的有(B C D)。

A) 解决开发是未能测试各种可能条件带来的问题

B) 增加联机求助命令

C) 缩短系统的应答时间,使其达到特定要求

D) 为软件的运行增加监控设施

4 进行系统修改时可能会产生维护的副作用,它们可能有(A B C D)。

A) 修改数据的副作用B) 修改错误后,又引入了新的错误

C) 修改代码的副作用D) 文档资料的副作用

5 确定可维护性的因素主要有(B C D)。

A) 文档B) 可理解性C) 可修改性

D) 可测试性

6. 软件维护阶段所产生的文档主要有(A BC)。

A) 软件问题报告B) 软件修改报告

C) 软件修改申请报告D) 测试报告

7. 表达计划安排的主要工具有(A B D)。

A) PERT图B) 甘特图C) DFD图

D) 进度表

二、判断题

1 软件维护只需要校正性维护、适应性维护和完善性维护。(×)

2 软件维护总工作量可用公式表示为:M = P + K·exp(D - C)。(×)

3 生产性活动包括分析评价、修改设计、编写程序代码和设计约束。(×)

4 改进程序的执行效率不会引入错误。(×)

5 强调简明性的程序出错率低。(√)

6 用面向对象方法开发的软件系统,可维护性好。(√)

三、简答题

1 为什么要进行软件维护?

答:软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。一个中等规模的软件,如果其开发过程需要一二年时间,则它投入使用以后,其运行时间可能持续5~10年之久。在这个维护阶段中,人们需要着手解决开发阶段尚未解决的问题,同时,还解决维护工作本身所产生的问题。做好软

件的维护工作不仅能够排除软件中存在的错误,使它能够正常工作,而且还可以使它扩充功能,提高性能,为用户带来新的效益。维护阶段的花费约占整个软件生命期花费的67%。因此,应充分认识到维护现有软件的重要意义。

2 样防止维护的副作用?

答:修改代码所产生的副作用一般可以在退化测试过程中对其造成系统的故障进行查明和纠正;完善设计文档资料可以限制修改数据的副作用,在文档中描述了数据结构,并提供了一种把数据元素、记录、文件以及其他结构与系统模块联系起来的交叉对照表;在软件系统再次交付使用之前,对整个软件配置进行复审,将能大大减少文档资料的副作用。

3 什么是软件的可维护性?可维护性度量的特性是什么?

答:软件的可维护性是指维护人员为纠正软件系统出现的错误或缺陷,以及为满足新的要求而理解、修改和完善软件系统的难易程度。可维护性是所有软件系统都应具备的特点。在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。

可维护性度量的特性主要有可理解性、可测试性和可修改性。可理解性被定义为人们通过阅读源代码和文档了解软件系统的结构、接口、功能、内部过程以及如何运行的难易程度;可测试性被定义为诊断和测试系统的难易程度;可修改性被定义为修改软件系统的难易程度;它们是密切相关的。

4 高可维护性的方法有哪些?

答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。

在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。

在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。

在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。

在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。

在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。

为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。

习题九答案

1. 什么是软件开发工具?按照功能进行分类,可以将软件开发工具分成哪几大类?

答:软件开发工具是用来辅助软件的开发、维护、管理和支持等活动的计算机程序系统。它的目的是为了提高软件生产效率和改进软件质量,为软件开发活动提供自动化的开发工具和环境。

软件开发工具可以分为以下几种:(1) 编程工具;(2) 分析和设计工具;(3) 软件维护工具;(4) 版本控制工具;(5) 项目管理工具;(6) 文档管理工具;(7) 软件配置管理工具;(8) 测试管理工具。

2. 软件开发工具的集成可以分成哪几个层次?

答:软件开发工具的集成可分成如下层次:(1) 平台的集成;(2) 界面的集成;(3) 数据的集成。

3. 集成化的CASE环境相对于彼此独立的软件开发工具有哪些明显的优势?

答:集成化的CASE环境具有如下优势:

(1) 软件开发过程中的所有信息都采用统一的存储格式,集中统一存储在共享的中心数据库中,使得在软件工具之间、开发人员之间、开发活动的各个过程之间可以方便而高效地进行数据的共享和交换。

(2) 集成化的CASE环境由于采用了统一的用户界面,为软件开发人员提供了更为方便的使用平台,并且改善了开发人员之间的协调能力。

(3) 集成化CASE环境的使用,可以贯穿软件开发的各个阶段,包括分析、设计、编码、测试、维护和配置,这使得软件开发活动和相关的开发信息可以流畅地由一个开发阶段过渡到下一个开发阶段。

(4) 集成化的CASE环境也具有更好的可移植性,使其可以适用于不同的硬件平台和操作系统。

4. Rational Rose可以建立哪几种模型图?

答:Rational Rose可以建立的模型图共有9种,它们分别是:

(1) 业务用例图(Business Use Case Diagram);

(2) 用例图(Use Case Diagram);

(3) 类图(Class Diagram);

(4) 协作图(Collaboration Diagram);

(5) 时序图(Sequence Diagram);

(6) 活动图(Activity Diagram);

(7) 状态图(Statechart Diagram);

(8) 构件图(Component Diagram);

(9) 部署图(Deployment Diagram)。

5. 简述业务用例图与用例图的区别。

答:业务用例图用于建立机构的业务模型,包括描述整个机构业务执行的流程和所提供的功能等内容。用例图用于对软件系统的需求分析,即用于描述一个软件系统需要完成什么样的功能。

6. 请使用Rose绘制“图书销售管理系统”中“定单”对象的状态图。

答:参考9. 3. 7状态图。

7. 请使用Rose绘制“网上商店购物管理系统”中“购物”流程的活动图。

答:参考9. 3. 6活动

习题十答案

一、选择题

1. 软件工程管理的对象是(B)。

A) 软件开发人员B) 软件工程项目

C) 软件开发过程D) 软件开发速度

2. 以下对软件工程管理的任务和目标最准确的描述是(D)。

A) 明确软件开发项目的工作范围、可能遇到的风险、需要的资源

B) 明确软件开发中要实现的任务和需要经历的里程碑

C) 明确所需的工作量以及进度安排

D) 以上所有答案

3. 在软件管理资源要求中,最为重要的、起决定性的资源是以下哪种资源

(C)。

A) 硬件资源B) 软件资源

C) 人力资源D) 软件复用性及软件部件库

4. 开发一个软件工程的第一步是(A)。

A) 可行性研究B) 组织开发人员

C) 购买开发工具D) 开发任务指定

5. 可行性报告中不包括以下哪个方面(C)。

A) 技术上的可行性B) 经济上的可行性

C) 人力的可行性D) 以上三项

6. 影响软件开发成本估算的因素不包括以下哪项(D)。

A) 软件人员业务水平B) 软件开发规模及复杂度

C) 开发所需时间D) 开发所需硬件资源

7. 自底向上的估计法的特点是(B)。

A) 简单、工作量小、误差大

B) 精度高,但缺少子任务(模块)间的联系

C) 估算较精确,但区分类比较困难

D) 复杂、不可行,一般不采用此种方法

8. 对一个软件工程来说,占总工作量的百分比最大的工作是(D)。

A) 需求分析B) 软件设计

C) 编码工作D) 测试和调试工作

9. 软件质量度量的方法包括(D)。

A) 精确度量B) 全面度量C) 简易度量D) 以上所有答案

10. CMM表示(A)。

A) 软件过程成熟度模型B) 软件过程工业化控制

C) 国际软件质量认证D) 软件统一性标准

二、判断题

1. 软件工程管理是对软件项目的开发管理,是对整个软件生存期的所有活动进行管理。(√)

2. 软件工程管理的主要任务有:软件可行性分析与成本估算、软件生产率及质量管理、软件售后管理。(×)

3. 直接影响软件开发风险的因素是成本估算。(√)

4. 软件开发配备人员的基本原则是:重质量、重数量、重培训。(×)

5. “简易度量”不是软件质量度量的方法。(×)

6. CMM是指导软件开发的一种面向对象的新技术。(×)

7. CMM将软件过程的成熟度分为以下五个级别:初始级、可重复级、已定义级、已管理级和优化级。(√)

8. CMM对开发一个软件所做的基本要求是“有章可循、有章必循”。(√)

三、问答题

1. 简述一个成熟的软件机构应具有的特点。

答:建立了机构级的软件开发和维护过程。软件人员对其有较好的理解。一切活动均遵循过程的要求进行,做到工作步骤有次序,且有章可循;软件过程必要时可做改进,但需要在小型实验和成本效益分析基础上进行;软件产品的质量和客户对软件产品的满意程度不是由开发人员负责监控,而是由负责质量保证的经理负责监控;项目进度和预算是根据以往项目取得的实践经验确定的,因而比较符合实际情况。

2. CMM将软件过程的成熟度分为哪几个级别?

答:初始级、可重复级、已定义级、已管理级和优化级。

3. 可行性分析的任务是什么?

答:可行性分析的任务是对以下三方面的可行性进行研究。

①技术上可行性:研究现有技术、资源及限制能否支持和实现系统的功能、性能,主要是技术风险问题。

②经济上的可行性:进行成本估算及效益评估,确定项目是否值得开发。

③社会上的可行性:主要指系统开发后能否运行,是否存在合同、责任、侵权、用户组织管理等方面的问题。

软件工程考试试卷答案

一.选择题 1、TURBO C是(D)软件· A、系统软件 B、人工智能 C、事务软件 D、应用软件. 2、计算机辅助软件工程,简称(D) A、SA B、SD C、SC D、CASE' 3、在数据流图中,O(椭圆)代表(C) A、源点 B、终点 C、处理 D、模块、 4、模块内聚度越高,说明模块内各成分彼此结合的程度越(B) A、松散 B、紧密 C、无法判断 D、相等、 5、软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以(C)维护所占维护量最小。 A、纠错性维护 B、代码维护 C、预防性维护 D、文档维护、 6、软件需求分析是保证软件质量的重要步骤,它的实施应该是在(C) A、编码阶段 B、软件开发全过程 C、软件定义阶段 D、软件设计阶段. 7、软件测试方法,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试(D) A、结构合理性 B、软件外部功能 C、程序正确性 D、程序内部逻辑. 8、软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要(D) A、软件结构 B、软件过程 C、软件模型 D、软件模块、 9、软件文档不仅是软件开发各阶段的重要依据,而且与影响软件的(B) A、可理解性 B、可维护性 C、可扩展性 D、可移植性. 10、在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于(B) A、维护时期 B、计划时期 C、运行时期 D、开发时期, 11、系统定义明确之后,应对系统的可行性进行研究。可行性研究应包括(A) A. 软件环境可行性、技术可行性、经济可行性、社会可行性 B. 经济可行性、技术可行性、操作可行性 C. 经济可行性、社会可行性、系统可行性 D. 经济可行性、实用性、社会可行性 12、(C),则说明模块的独立性越强 A、耦合越强 B、扇入数越高 C、耦合越弱 D、扇入数越低 13、面向数据结构的设计方法(JACKSON方法)是进行(B )的形式化的方法 A.系统设计B、详细设计C、软件设计D、编码 14、模块内聚度越高,说明模块内各成分彼此结合的程度越(B)。 A、松散 B、紧密 C、无法判断 D、相等. 15、软件测试的目的是(C) A.评价软件的质量 B.发现软件的错误. C.找出软件的所有错误 D.证明软件是正确的.

软件工程考试题库

软件工程考试题库 Final approval draft on November 22, 2020

一填空题 1.用原型过程代替全部开发阶段,这种快速原型是(实验型或演化型)原型。 2.可行性研究实质上是进行一种简化、压缩了的(需求分析和设计)。 3.结构图的主要内容有(模块)、(模块的控制关系)、(模块的信息传递)。 4.模块之间的联系越紧密,其耦合性就越(强),模块的独立性就越(差)。 5.软件工程研究的主要内容包括软件开发技术和软件开发管理两个方面,在软件开发技术方面,主要是研究(软件开发方法)、(软件开发过程)、(软件开发工具和环境),在软件开发管理方面,主要是研究(软件管理学)、(软件经济学)、(软件心理学)。 6.状态图反映了(状态)与(事件)的关系,状态图确定了由事件序列引起的(状态序列)。 7.可行性研究实质上是进行一种简化、压缩了的(需求分析和设计)。 8.在数据流图中,(数据流)是数据在系统内传播的路径,因此由一组(成分固定的数据项)组成,加工(又称为数据处理)是对数据流进行某些(操作或交换)。 9.(偶然内聚)指一个模块内的各处理元素之间没有任何联系,这是内聚程度最(差)的内聚。 10假如n个相同的系统(硬件或软件)进行测试,它们的失效时间分别是t1,t2,tn,则平均失效等待时间MTTF=(1/n )。 11(维护申请报告)是一种由用户产生的文档,它用作计划维护任务的基础。 12在软件开发和维护过程中,一个软件往往有许多版本,版本控制工具用来存储、更新、恢复和管理一个软件的(多个版本)。 13软件工具通常由工具、(工具接口)和用户工具三个部分组成。 14类的实例化是(对象)。 15形式化规约语言由(语法)、(语义)和(一组关系)组成。 16 软件质量保证应从(产品计划和设计)开始,直到投入使用和售后服务的软件生存期的每一个阶段中的每一步骤。 17 为了提高软件的质量,软件质量保证的任务大致可归结为以下8类:(正确定义用户要求)、(技术方法的应用)、(提高软件开发的工程能力)、(软件的复用)、(发挥每个开发者的能力)、(组织外部力量协作)、(排除无效劳动)、(提高计划和管理质量)。 18 软件测试时需要的三类信息,分别是(软件配置)、(测试配置)、(测试工具)。 19 在面向对象方法中,信息隐蔽通过对象的(封装性)来实现,类结构分离了(接口)与(实现),从而支持了信息隐蔽。 20 增量模型在开发工程中以一系列(增量方式)开发系统,推迟某阶段的(细节),从而(尽早)产生工作软件。 二选择题 1.(A)是计算机程序及其说明程序的各种文档。 A 软件 B文档 C 数据 D 程序 2.软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、(B)和维护等活动。 A 应用 B 测试 C 检测 D 以上答案都不正确 3.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)。 A 用于验证软件需求的原型 B 垂直原型 C 用于验证设计方案的原型 D 用于演化出目标系统的原型

软件工程试题与答案 (6)

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程试卷A

安徽农业大学经济技术学院2011―2012学年第二学期 《软件工程》试卷(A 卷) 考试形式: 闭卷笔试,2小时 适用专业: 计算机科学与技术 (注:分大类或全校等) 一、单项选择题(每小题1分,共计20分) 1、瀑布模型存在的问题是( ) A 、用户容易参与开发 B 、缺乏灵活性 C .用户与开发者易沟通 D .适用可变需求 2、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据, 因此必须给出什么样的回答。( ) A .确定 B .行或不行 C .正确 D .无二义 3、结构化程序设计主要强调的是( ) A 、程序的规模 B 、程序的效率 C 、程序设计语言的先进性 D 、程序易读性 4、在用户界面层次上对软件进行测试属于哪种测试方法( ) A 、黑盒测试 B 、白盒测试 C 、边界测试 D 、系统测试 5、经济可行性研究的范围包括( ) A 、资源有效性 B 、管理制度 C 、效益分析 D 、开发 风险 6、对象实现了数据和操作的结合, 使数据和操作( )于对象的统一体中。 A 、结合 B 、隐藏 C 、封装 D 、抽象 7、需求分析阶段的任务是确定( ) A 、软件开发方法 B 、软件开发工具 C 、软件开发费 D 、软件系统的功能 8、下列文档与维护人员有关的有( ) A 、软件需求说明书 B 、项目开发计划 C 、概要设计说明书D 、操作手册 9、程序的三种基本控制结构是( ) A 、过程、子程序和分程序 B 、顺序、选择和重复 学院: 专业班级: 姓名: 学号: 装 订 线

C、递归、堆栈和队列 D、调用、返回和转移 10、软件生存周期中时间最长的是()阶段。 A、总体设计 B、需求分析 C、软件测试 D、软件 维护 11、为了提高模块的独立性,模块之间的联系最好的是()。 A、公共耦合 B、控制耦合 C、内容耦合 D、数据 耦合 12、软件概要设计结束后得到() A、初始化的软件结构图 B、优化后的软件结构图 C、模块的接口图和详细算法 D、程序编码 13、软件需求是度量软件质量的基础,不符合需求的软件就不具备() A、软件的特点 B、质量 C、软件产品 D、功能 14、软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作 () A、正确性 B、移植性 C、可靠性 D、完 整性 15、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减 少返工,所以()的编制是很重要的。 A、需求说明 B、概要说明 C、软件文档 D、测试 计划 16、汽车有一个发动机,因而汽车与发动机之间的关系是()关系。 A、一般与特殊 B、整体与部分 C、分类关系 D、is a 关 系 17、在有多重继承的类层次结构图中,它的类层次结构图是()层次结 构 A、树型 B、网状性 C、星型 D、 环型 18、软件部件的内部实现与外部可访问性的分离,是指软件的()。 A、继承性 B、共享性 C、封装性 D、抽 象性 19、在结构图中,不是其主要成分的是()。 A、模块 B、模块间传递的数据 C、模块内部数据 D、模块的控制 关系 20、结构化设计方法在软件开发中,用于()。 A、测试用例设计 B、软件概要设计 C、程序设计 D、软件详细 设计 二、名词解释(每小题2分,共计20分) 21、软件质量 与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,是所有描述计算机软件优秀程度 的特性的组合。

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

软件工程考试题库

软件工程概述 一单项选择 1.软件生命周期一般包括:软件开发期和软件运行期,下述(D)不是软件开发期所应包含的内容。 A需求分析B结构设计C程序编制D软件维护 2.软件是一种逻辑产品,它的开发主要是(A)。 A研制B拷贝C再生产D复制 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是(C)。 A喷泉模型B增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B)阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计B可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C)产品 A有形B消耗C逻辑D文档 6.(C)把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A原型模型B螺旋模型C基于知识的智能模型D喷泉模型 7.(B)阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。 A概要设计B详细设计C编码D测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A)。 A原型模型B瀑布模型C基于知识的智能模型D变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是(C)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是(D)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C)。 A可修改性B可靠性C可适应性D可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B)。 A可移植性B可重用性C容错性D可适应性 13.软件特性中,(A)是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性D可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为(B)。 A可理解性B可维护性C可适应性D可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C). A可理解性B可修改性C可移植性D可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是(D)。 A有效性B可适应性C正确性D可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A)。 A可修改性B可适应性C可维护性D可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B)。 A可理解性B可互操作性C可维护性D可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向

软件工程试卷

一、名词解释(15分) 1.软件工程 2.结构化方法 3.软件可靠性 4.对象与类 5.变更控制 二、填空(20分) 1.增量模型适合于________不明确、设计方案有一定风险的软件项目。 2.结构化分析方法的分析策略是__________。 3.可行性研究实质上是要在较高层次上以较抽象的方式进行___________的过程。 4.衡量模块独立性的两个定性标准是_________。 5.Jackson方法是一种面向______________的设计方法。 6.软件集成测试的方法主要有两种,它们是__________。 7.维护阶段是软件生存周期中花费精力和费用_____________的阶段。 8.继承性是子类自动共享其父类的______________机制。 9.在面向对象方法中,人们常用状态图描述类中对象的___________。 10.规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为_________软件。 三、选择(20分) 1.需求分析中,开发人员要从用户那里解决的最重要的问题是( )。 A、要让软件做什么 B、要给该软件提供哪些信息 C、要求软件工作效率怎样 D、要让该软件具有何种结构 2.DFD中的每个加工至少有( )。

A、一个输入流或一个输出流 B、一个输入流和一个输出流 C、一个输入流 D、一个输出流 3.详细设计与概要设计衔接的图形工具是( )。 A、DFD图 B、SC图 C、PAD图 D、程序流程图 4.下列几种类型中,耦合性最弱的是( )。 A、内容型 B、控制型 C、公共型 D、数据型 5.确认测试中,作为测试依据的文档是( )。 A、需求规格说明书 B、设计说明书 C、源程序 D、开发计划 6.为了适应软硬件环境变化而修改软件的过程是( )。 A、校正性维护 B、完善性维护 C、适应性维护 D、预防性维护 7.瀑布模型是一种( )。 A、整体开发模型 B、非整体开发模型 C、风险驱动模型 D、对象驱动模型 8.用于描述对象模型的工具是( )。 A、数据流图 B、结构图 C、状态图 D、对象图 9.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的( )上 A.配置项 B.程序 C.基线 D.过程

软件工程期末试卷(A卷)

《软件工程》期末试卷(A卷) 一.单项选择题(每小题1分,共22分) 1.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合B.隐藏C.封装D.抽象 2.软件生命周期中所花费用最多的阶段是( D )。 A.详细设计B.软件编码C.软件测试D.软件维护 3.需求分析中开发人员要从用户那里了解( A )。 A.软件做什么B.用户使用界面 C.输入的信息D.软件的规模 4.测试的关键问题是( D )。 A.如何组织对软件的评审B.如何验证程序的正确性 C.如何采用综合策略D.如何选择测试用例 5.( D )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A.软件过程B.软件测试 C.软件生命周期D.软件工程方法学 6.( A )意味着一个操作在不同的类中可以有不同的实现方式。 A.多态性B.多继承C.类的可复用D.信息隐藏 7.单元测试的测试用例主要根据( D )的结果来设计。 A.需求分析B.源程序C.概要设计D.详细设计 8.随着软硬件环境变化而修改软件的过程是( B )。 A.校正性维护B.适应性维护 C.完善性维护D.预防性维护 9.在白盒测试技术测试用例的设计中,( A )是最弱的覆盖标准。 A.语句覆盖B.路径覆盖 C.条件组合覆盖D.判定覆盖 10.结构化程序设计的一种基本方法是( C )。 A.筛选法B.迭代法 C.逐步求精法D.递归法11.不适合作为科学工程计算的程序设计语言是( D )。 A.Pascal B.C C.Fortran D.Prolog 12.只有单重继承的类层次结构是( C )层次结构。 A.网状型B.星型 C.树型D.环型 13.面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。 A.Booch方法B.Coad方法C.UML语言D.OMT方法 14.瀑布模型本质上是一种( A )。 A.线性顺序模型B.顺序迭代模型 C.线性迭代模型D.及早见产品模型 15.软件维护产生的副作用,是指( C )。 A.开发时的错误B.隐含的错误 C.因修改软件而造成的错误D.运行时误操作 16.软件详细设计的主要任务是确定每个模块的( A )。 A.算法和使用的数据结构B.外部接口 C.功能D.编程 17.软件结构图的形态特征能反映程序重用率的是( C )。 A.深度B.宽度C.扇入D.扇出 18.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚B.时间内聚 C.功能内聚D.通信内聚 19.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A.调用关系B.组成关系 C.链接关系D.顺序执行关系 20.“软件危机”是指( C )。 A.计算机病毒的出现 B.利用计算机进行经济犯罪活动 C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统 21.具有风险分析的软件生命周期模型是( C )。 A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 22.数据流图(DFD)中的每个数据处理至少需要( D )。 A.一个输入数据流 B.一个输出数据流 C.一个输入或者输出数据流 D.一个输入数据流和一个输出流

软件工程考试试题(含答案)

一、填空题(每空1分,共25分) 1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、 编码、测试和____________。 2.基于软件的功能划分,软件可以划分成__________、__________、__________三种。 3.可行性研究,应从、技术可行性、运行可行性、和开 放方案可行性等方面研究。 4.系统流程图是描绘的传统工具。它的基本思想是用图形符号以 描绘系统里面的每个部件。 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、 和。 6.结构化分析方法是面向________________进行需求分析的方法。结构化分析方法使 用________________与________________来描述。 7.是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为3类,即________________、________________和 ________________。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、 复查和管理复审、________________。 10.大型软件测试包括、、确认测试和 四个步骤。 1、可行性研究需求分析运行与维护 2、系统软件支撑软件应用软件 3、经济可行性法律可行性 4、物理系统黑盒子形式 5、加工数据流数据存储文件 6、数据流数据流图DFD 数据字典DD 7、继承性 8、图示工具、设计语言表格工具 9、审查测试 10、单元测试集成测试系统测试 二、单项选择题(每小题2分,共20分) 1 2 3 4 5 C C C A C 6 7 8 9 10 D D A C B 1.软件设计中划分模块的一个准则是()。 A、低内聚低耦合 B、低内聚高耦合 C、高内聚低耦合 D、高内聚高耦合 2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向()的软件 设计方法。

软件工程题库

软件工程单元一(概述) 一单项选择 1.软件是一种逻辑产品,它的开发主要是(A )。 A研制B拷贝C再生产D复制 2.软件生命周期一般包括:软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。 A需求分析 B 结构设计C程序编制D软件维护 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。 A喷泉模型 B 增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B )阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C )产品 A有形 B 消耗C逻辑D文档 6.(C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型 7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。A概要设计 B 详细设计 C 编码 D 测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A )。 A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是(D )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C )。 A可修改性B可靠性C可适应性 D 可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B )。 A可移植性B可重用性 C 容错性 D 可适应性 13.软件特性中,(A )是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性 D 可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为(B )。 A可理解性 B 可维护性C可适应性 D 可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C ). A可理解性B可修改性C可移植性 D 可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。 A有效性B可适应性C正确性 D 可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A )。 A可修改性B可适应性C可维护性 D 可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B )。 A可理解性B可互操作性C可维护性 D 可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力指的是(C )。 A 可理解性 B 可互操作性C可追踪性 D 可维护性 20.软件的可修改性支持软件的(D )。 A 有效性 B 可互操作性C可追踪性 D 可维护性 21.软件的可移植性支持软件的(A )。 A 可适应性 B 可互操作性C可追踪性 D 有效性 22.软件的可理解性支持软件的(B )。

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程考试题(带答案)..

一、选择题 1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B) A) 可行性研究,问题定义,需求分析。 B) 问题定义,可行性研究,需求分析。 C) 可行性研究,需求分析,问题定义。 D) 以上顺序都不对。 2.可行性研究主要从以下几个方面进行研究:(A) A)技术可行性,经济可行性,操作可行性。 B)技术可行性,经济可行性,系统可行性。 C)经济可行性,系统可行性,操作可行性。 D)经济可行性,系统可行性,时间可行性。 3 耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下:(C) A) 内容耦合,控制耦合,数据耦合,公共环境耦合。 B) 内容耦合,控制耦合,公共环境耦合,数据耦合。 C) 内容耦合,公共环境耦合,控制耦合,数据耦合。 D) 控制耦合,内容耦合,数据耦合,公共环境耦合。4.在详细设计阶段所使用到的设计工具是:(A) A) 程序流程图,PAD图,N-S图,HIPO图,判定表, 判定树. B) 数据流程图,Yourdon 图,程序流程图,PAD图, N-S图,HIPO图。 C) 判定表,判定树,PDL,程序流程图,PAD图,N- S图。 D) 判定表,判定树,数据流程图,系统流程图,程序 流程图,层次图。 5 按照软件工程的原则,模块的作用域和模块的控制域之间的关系

是:(A) A)模块的作用域应在模块的控制域之内。 B)模块的控制域应在模块的作用域之内。 C)模块的控制域与模块的作用域互相独立。 D)以上说法都不对。 6在软件生命周期中,能准确确定软件系统的体系结构的功能阶段是(C) A.概要设计 B.详细设计 C.需求分析 D.可行性分析 7下面不是软件工程的3个要素的是(C) A过程 B.方法 C.环境 D.工具 8.下面不属于软件的组成的是(B) A程序 B.记录 C.文档 D.数据 9在瀑布模型中,将软件分为若干个时期,软件项目的可行性研究一般归属于(C) A.维护时期 B.运行时期 C.定义时期 D.开发时期 10.在瀑布模型中,下面(C)是其突出的缺点。 A.不适应平台的变动 B.不适应算法的变动 C.不适应用户需求的变动 D.不适应程序语言的变动 11下面不属于软件的特点的是(D)。 A软件是一种软件产品 B软件产品不会用坏,不存在磨损、消耗问题 C软件产品的生产主要是研制 D软件产品非常便宜 12 软件开发工具是协助开发人员进行软件开发活动所使用的软件或环境。下面不是软件开发工具的是(A)。

软件工程试题与答案

《软件工程模拟试题及参考答案》(一) 一、单向选择题(四选一、每小题3分,共18分) 1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。 对应 映射 反映 反射 2、盒图也称为(D)或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 流程图 框图 判定表 N-S图 3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。 程序 数据 逻辑 物理 4、人机界面的风格大致经过了(B)代的演变。

三 四 五 六 5、以下不属于白盒测试技术的是(D) 逻辑覆盖 基本路径测试 循环覆盖测试 等价类划分 6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。 纠错性维护 适应性维护 改善性维护 预防性维护 二、填空题(每空2分,共18分) 1.文档—一种数据媒体和其上所记录的(数据)。 2.机器语言、汇编语言:依赖于机器,面向(机器) 3.软件有效性,指软件系统的时间和(空间)效率。 4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。

7.一个软件的深度是指其控制的(层数)。 8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终 可运行的代码的过程叫(编码)过程。 9.软件维护是软件生命周期的(最后)一个阶段。 三、判断题(每小题2分,共24分,错误打X、正确打√) 1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之 一。(√) 2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X) 3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第 一手资料,并从中提取出有价值的需求。(√) 4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计 一些复杂的算法等场合。(√) 5.流程图也称为程序框图是最常用的一种表示法。(√) 6.面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三 种基本形式表示数据等步骤。(√) 7.理想的人机界面应针对具有典型个性的特定的一类用户设计。(√) 8.数据输入的一般准则中包括尽量增加用户输入的动作。(X) 9.用穷举测试是较现实的测试方法。(X) 四、简答题(每小题4分,共20分)

软件工程题库

软件工程题库 一单项选择 1.软件是一种逻辑产品,它的开发主要是(A )。 A研制B拷贝C再生产D复制 2.软件生命周期一般包括:软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。 A需求分析 B 结构设计C程序编制D软件维护 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。 A喷泉模型 B 增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B )阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C )产品 A有形 B 消耗C逻辑D文档 6.(C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型 7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。A概要设计 B 详细设计 C 编码 D 测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A )。 A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是( D )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C )。 A可修改性B可靠性C可适应性 D 可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B )。 A可移植性B可重用性 C 容错性 D 可适应性 13.软件特性中,(A )是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性 D 可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为( B )。 A可理解性 B 可维护性C可适应性 D 可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C ). A可理解性B可修改性C可移植性 D 可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。 A有效性B可适应性C正确性 D 可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A )。 A可修改性B可适应性C可维护性 D 可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B )。 A可理解性B可互操作性C可维护性 D 可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行

软件工程试题和答案

一、选择 1、在软件开发的各种资源中,(B)是最重要的资源。 A开发工具B方法C硬件环境D人员 2、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A固有的B人为的C可消除的D不可降低的 3、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A )系统。 A需求不确定的B需求确定的C管理信息D决策支持 4、单元测试的测试用例主要根据( D )的结果来设计。 A需求分析B源程序C概要设计D详细设计 5、(A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A软件过程B软件工具C软件生存周质量保证D软件工程 6、(A )意味着一个操作在不同的类中可以有不同的实现方式。 A多态性B类的复用C封装 7、软件测试计划开始于需求分析阶段,完成于(D )阶段。 A需求分析B软件设计C软件实现D软件测试 8、在软件生存周期的瀑布模型中一般包括计划、(C )、设计、编码、测试、维护等阶段。 A可行性分析B需求采集C需求分析D问题定义 9. 软件需求分析阶段的测试手段一般采用( C )。 A总结B阶段性报告C需求分析评审D不测试 10. (C )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A多态性B继承C封装D消息 11. 软件测试是为了(B )而执行程序的过程。

A纠正错误B发现错误C避免错误D证明正确 12. 在结构化分析方法中,(C )表达系统内部数据运动的图形化技术。 A数据字典B实体关系图C数据流图D状态转换图 13. 软件工程的基本要素包括方法、工具和( A )。 A过程B软件系统C硬件环境D人员 14. TURBO PASCAL是(A)软件。 A、系统软件 B、人工智能 C、事务软件 D、应用软件 15、选择结构的复杂性比顺序结构的复杂性要(B)。 A、小 B、大 C、相等 D、无法比较 16、模块内聚度越高,说明模块内各成分彼此结合的程度越(B)。 A、松散 B、紧密 C、无法判断 D、相等 17、软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以()维护所占的维护量最小(C)。 A、纠错性维护 B、代码维护 C、预防性维护 D、文档维护 18、在下述哪一种测试中,测试人员必须接触到源程序(C)。 Ⅰ功能测试Ⅱ结构测试 A、均不需 B、只有Ⅰ C、只有Ⅱ D、Ⅰ和Ⅱ 19、软件设计阶段的输出主要是(D)。 A、程序 B、模块 C、伪代码 D、设计规格说明书 20、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试(D)。 A、结构合理性 B、软件外部功能 C、程序正确性 D、程序内部逻辑 21、下面哪几个阶段是软件的设计阶段(D)。 A、编码 B、可行性研究 C、测试 D、维护 E、需求分析 22、数据字典是用来定义(D )中的各个成分的具体含义的。 A.流程图B.功能结构图C.系统结构图D.数据流图

软件工程试题及答案

软件工程 一、填空题(每题2分,共20分) 1、系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种 元素之间的( )情况。 2、成本效益分析的目的是从( )角度评价开发一个项目是否可行。 3、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和( ) 。 4、在JSP方法中解决结构冲突的具体办法是( )。 5、详细设计的任务是确定每个模块的内部特性,即模块的算法、( )。 6、所有软件维护申请报告要按规定方式提出,该报告也称( )报告。 7、独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路 径是至少包含有一条( )的边的路径。 8、设计任何一个人机界面,一般必须考虑()四个方面。 9、在软件测试中,已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明 的规定正常进行的方法称为()测试法。 10、()是对软件结构中模快间关联程度的一种度量。 三、判断题(每题2分,共20分) 1. 缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。 () 2. 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。() 3. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手 资料,并从中提取出有价值的需求。() 4. 快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些 复杂的算法等场合。() 5. 流程图也称为程序框图是最常用的一种表示法。 6. 面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三种基 本形式表示数据等步骤。() 7. 理想的人机界面应针对具有典型个性的特定的一类用户设计。() 8. 数据输入的一般准则中包括尽量增加用户输入的动作。() 9. 用穷举测试是较现实的测试方法。() 10、在软件维护过程中改善性维护是为适应环境的变化而修改软件的活动。() 四、论述题(共40分) 1、软件维护是软件生命周期的重要组成,而影响维护的因素较多,除了人员因素、技术因素和 管理因素外,还有程序自身的因素,具体影响因素可归纳为:a) 软件系统的规模;b) 软件系统的年龄;c) 软件系统的结构。 试回答以下问题: 1) 给出上述三项因素的解释,阐述“规模”、“年龄”和“结构”的具体含义。(6分) 2) 扼要分析影响维护工作量的因素,即分析可能增加维护工作量的因素和可能减少维护工作 量的因素。(8分) 3) 简单传述软件可维护性度量的含义。(8分) 2、可行性研究报告的主要内容有哪些?(8分) 3、系统设计的内容是什么?(10分) 五、综合题(20分)某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一 个计算机辅助企业管理系统,其中:

相关文档
相关文档 最新文档