软件工程理论与实践许家珆习题答案docx.docx

上传人:b****8 文档编号:9618506 上传时间:2023-02-05 格式:DOCX 页数:46 大小:307.99KB
下载 相关 举报
软件工程理论与实践许家珆习题答案docx.docx_第1页
第1页 / 共46页
软件工程理论与实践许家珆习题答案docx.docx_第2页
第2页 / 共46页
软件工程理论与实践许家珆习题答案docx.docx_第3页
第3页 / 共46页
软件工程理论与实践许家珆习题答案docx.docx_第4页
第4页 / 共46页
软件工程理论与实践许家珆习题答案docx.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

软件工程理论与实践许家珆习题答案docx.docx

《软件工程理论与实践许家珆习题答案docx.docx》由会员分享,可在线阅读,更多相关《软件工程理论与实践许家珆习题答案docx.docx(46页珍藏版)》请在冰豆网上搜索。

软件工程理论与实践许家珆习题答案docx.docx

软件工程理论与实践许家珆习题答案docx

习题答案

习题一答案

一、选择题

1.

软件的主要特性是(ABC)。

A)无形

C)包括程序和文档

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

A)技术、方法和工具

C)方法、对象和类

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

A)螺旋模型B)瀑布模型

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

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

5.下列属于面向对象开发方法的是

C)瀑布模型D)专家模型

B)低的开发成本

D)短的开发期

A)螺旋模型B)循环模型

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

A)易于维护

C)高性能

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

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

B)克服软件危机

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

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

二、判断题

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

(>)

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

(>

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

(>

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

(V)

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

(>

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

设计。

(V)

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

(>

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

(>

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

(>

10.RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最

终的产品,而后者将被废弃。

(丁

三、简答题

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

答:

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

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

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

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

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

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

2.软件发展有几个阶段?

各有何特征?

答:

①程序设计阶段。

硬件特征:

价格贵、存储容量小、运行可靠性差。

软件特征:

只有程序、程序设计概念,不重视程序设计方法。

2程序系统阶段。

硬件特征:

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

软件特征:

程序员数量猛增,开发人员素质低。

3软件工程阶段。

硬件特征:

向超高速、大容量、微型化及网络化方向发展。

软件特征:

开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未

完全摆脱软件危机。

3.什么是软件危机?

其产生的原因是什么?

答:

软件危机”(SoftwareCrisis)的出现是由于软件的规模越来越大,复杂度不断增

加,软件需求量增大。

而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及

技术不能适应软件发展的需要。

致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。

软件危机主要表现在两个方面:

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

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

4.什么是软件生存周期模型?

它有哪些主要模型?

答:

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

主要模型

包括:

瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。

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

答:

主要的软件开发方法有:

结构化开发方法、Jackson(JSP、JSD)方法、原型化开

发方法、维也纳开发方法(VDM)和面向对象的开发方法。

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

答:

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

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

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

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

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

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

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

习题二答案

一、选择题

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

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模型中,包含以下基本成分(C)。

A)数据、对象、实体

B)控制、联系、对象

C)实体、联系、属性

D)实体、属性、联系

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

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

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

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

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

8.

(C)。

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

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

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

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

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

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

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

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

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

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

二、判断题

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

(为

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

(V)

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

(V)

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

(>)

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

(>

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

(>

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

(>

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

(>

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

法是E-R图。

(V)

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

致性、完整性、现实性和有效性。

(V)

三、问答题

1.什么是需求分析?

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

答:

需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:

在可行性分析的

基础上,进一步了解、确定用户需求。

准确地回答系统必须做什么?

”的问题。

获得

需求规格说明书。

还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。

它还涉及到这些因素和系统的精确规格说明,以及系统进化之

间的关系。

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

(1)抽取需求分析现行系统存在需要解决的问题。

获取足够多的问题领域的知识,

需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目

标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。

(2)模拟和分析需求需求分析和模拟又包含三个层次的工作。

首先是需求建模。

求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三

种。

需求概念模型的要求包括实现的独立性:

不模拟数据的表示和内部组织等;需求模

拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。

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

(4)认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。

常用的冲突求解方法有:

协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。

(5)进化需求客户的需要总是不断(连续)地增长,但是一般的软件开发又总是落后

于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。

对于传统

的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。

当前的发

展是软件家族法,即产品线方法。

多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。

2.M公司的软件产品以开发实验型的新软件为主。

用瀑布模型进行软件开发已经

有近十年了,并取得了一些成功。

若你作为一名管理员刚加入M公司,你认为快速原

型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记:

总裁不喜欢报告长度超过一页(B5)。

参考答案提示:

应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。

根据快速原型法的特点,

说明它特别适合于开发探索型、实验型的软件。

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

答:

总的原则是:

至顶而下,逐层分解(画分层数据流图)。

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

顶层:

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

中间层:

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

底层:

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

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

答:

•结构化语言:

介于自然语言和形式语言(如谓词逻辑)之间。

•结构化英语:

通常由外层和内层结构组成。

•汉语的情况:

精确、简明扼要、文体可以灵活。

•判定表:

适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。

•判定树:

本质上与判定表相同,图形表示更易于理解。

5.

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

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

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

 

参考答案:

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

答:

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

习题三答案

选择题

1.模块的基本特征是(AC)。

A)外部特征(输入/输出、功能)

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

B)内部特征(输入/输出、功能)

D)外部特征(局部数据、代码)

2.SD方法的设计总则是(CD)。

A)程序简洁、操作方便

C)模块内聚性强

B)结构清晰、合理

D)模块之间耦合度低

3.软件设计的主要任务是(ABD)。

A)将分析阶段获得的需求说明转换为计算机中可实现的系统

B)完成系统的数据结构和程序结构设计

C)完成模块的编码和测试

D)对模块内部的过程进行设计

4.设计阶段应达到的目标有(AD)。

A)提高可靠性和可维护性

C)结构清晰

B)提高应用范围

D)提高可理解性和效率

5.从工程管理的角度来看,软件设计分两步完成

A)①系统分析②模块设计

C)①模块设计②详细设计

(D)。

B)①详细设计②总体设

D)①总体设计②详细设

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

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

D)内聚性

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

A)确定用户界面类型

C)建立用户模型

8.程序设计语言可以分为(BCD)。

A)面向过程的语言

B)建立任务模型

D)建立功能模型

B)机器语言

 

C)咼级语言

D)汇编语言

9.

程序效率包括(ACD)几个方面的内容。

A)

代码效率B)运行效率

C)存储效率

D)I/O效率

10.

SP方法中的基本控制结构有(ABC)o

A)

顺序结构B)选择结构

C)重复结构

D)GOTO结构

11.

内部文档可用注释语言书与,注释语言分为

(ABCD)o

A)

序言性注释B)描述性注释

C)功能性注释

D)状态性注释

12.

为使程序中数据说明更易于理解和维护,必须遵循以下原则

(ABC)o

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

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

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

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

13.

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

、判断题

1.

(>)

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

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

(>

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

(V)

4.中心变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可

以使用事务分析技术得到初始的模块结构图。

(>

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

(>

6.所谓结构冲突,是指输入数据与输出数据之间很少或没有结构上的对应关系。

通常

解决的办法是:

构造一个或者多个中间结构,在输入和输出结构之间进行转换。

(V)

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

(>

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

(>

9.程序设计语言的工程特性包括:

可移植性、可重用性、可维护性、局部性和顺序性。

(>

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

(V)

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

(>

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

(V)

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

(>

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

(V)

三、简答题

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)BoochB)CAD

C)Coad

D)OMT

4.

下列属于Coad方法中面向对象的分析模型的层次有

(AB)。

A)主题层B)对象层

C)应用层

D)接口层

5.

一个类属性依其特征划分,其类型有

(ABCD)。

A)描述型B)定义型

C)派生型

D)参考型

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

A)对象模型B)动态模型

C)静态模型

D)功能模型

7.

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

A)时间性B)持续性

C)有序性

D)有穷性

8.

数据流图中的处理必须用对象中的操作来实现常见的操作有

(ABCD)。

A)查询B)动作

C)活动

D)访问

9.

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

A)自顶向下B)从内到外

C)自底向上

D)从复杂到简单

10.

对象是人们要研究的任何事物主要的对象类型有(ABCD)

A)有形实体B)作用

C)事件

D)性能说明

二、判断题

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

(>)

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

(V)

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

4.多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,

多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。

(>

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

(V)

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

(V)

7.对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从

客观世界实体的对象关系角度来描述,表现了对象的相互关系。

(V)

8.面向对象的分析是用面向对象的方法对目标系统的问题空间进行理解、分析和反映。

通过对象层次结构的组织确定解空间中应存在的对象和对象层次结构。

(V)

9.类的设计过程包括:

确定类,确定关联类,确定属性,识别继承关系。

(V)

10.复用也叫重用或再用,面向对象技术中的类”是比较理想的可重用软构件。

有三

种重用方式:

实例重用、继承重用、多态重用。

(V)

11.主题是一种关于模型的抽象机制,它是面向对象模型的概貌,也是关于某个模型要

同时考虑和理解的内容,主题起一种控制作用。

(V)

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

(>

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

(V)

14.面向对象的分析过程主要包括三项内容:

理解、表达和验证。

(V)

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

(V)

三、简答题

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1