软件工程方法及实践许家珆习题答案Word下载.docx
- 文档编号:19066816
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:21
- 大小:38.04KB
软件工程方法及实践许家珆习题答案Word下载.docx
《软件工程方法及实践许家珆习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程方法及实践许家珆习题答案Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
(×
)
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
3.构造化法的工作模型是使用螺旋模型进展开发。
4.构造化法和JSP法都不适合于大型软件的开发。
(√)
5.原型化开发法包括生成原型和实现原型两个步骤。
6.面向对象的开发法包括面向对象的分析、面向对象的设计和面向对象的程序设计。
(√)
7.软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
8.软件工具的作用是为了延长软件产品的寿命。
9.软件工程过程应该以软件设计为中心,关键是编写程序。
10.RCP法与RSP法的主要区别是前者采用循环渐进的开发式,原型将成为最终的产品,而后者将被废弃。
三、简答题
1.软件产品的特性是什么.
答:
● 软件是一种逻辑产品,具有无形性;
● 软件产品的生产主要是研制;
● 软件不存在磨损和老化问题,但存在退化问题;
● 软件产品的生产主要是脑力劳动;
● 软件产品的本钱非常昂贵,其开发式目前尚未完全摆脱手工生产式;
●软件具有"
复杂性〞,其开发和运行常受到计算机系统的限制。
2.软件开展有几个阶段.各有特征.
①程序设计阶段。
硬件特征:
价格贵、存储容量小、运行可靠性差。
软件特征:
只有程序、程序设计概念,不重视程序设计法。
②程序系统阶段。
速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。
程序员数量猛增,开发人员素质低。
③软件工程阶段。
向超高速、大容量、微型化及网络化向开展。
开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。
3.什么是软件危机.其产生的原因是什么.
"
软件危机〞(SoftwareCrisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件开展的需要。
致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。
软件危机主要表现在两个面:
(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模型中,包含以下根本成分(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法是面向数据流,建立在数据封闭原那么上的需求分析法。
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.模块的根本特征是(AC)。
A)外部特征(输入/输出、功能)B)部特征(输入/输出、功能)
C)部特征(局部数据、代码)D)外部特征(局部数据、代码)
2.SD法的设计总那么是(CD)。
A)程序简洁、操作便B)构造清晰、合理
C)模块聚性强D)模块之间耦合度低
3.软件设计的主要任务是(ABD)。
A)将分析阶段获得的需求说明转换为计算机中可实现的系统
B)完成系统的数据构造和程序构造设计
C)完成模块的编码和测试
D)对模块部的过程进展设计
4.设计阶段应到达的目标有(AD)。
A)提高可靠性和可维护性B)提高应用围
C)构造清晰D)提高可理解性和效率
5.从工程管理的角度来看,软件设计分两步完成(D)。
A)①系统分析②模块设计B)①详细设计②总体设计
C)①模块设计②详细设计D)①总体设计②详细设计
6.模块独立性准那么由以下定性指标来衡量(BD)。
A)分解度 B)耦合度 C)屏蔽性 D)聚性
7.用户界面设计的任务包括(ABC)。
A)确定用户界面类型B)建立任务模型
C)建立用户模型D)建立功能模型
8.程序设计语言可以分为(BCD)。
A)面向过程的语言 B)机器语言
C)高级语言 D)汇编语言
9.程序效率包括(ACD)几个面的容。
A)代码效率 B)运行效率 C)存储效率 D)I/O效率
10.SP法中的根本控制构造有(ABC)。
A)顺序构造B)选择构造C)重复构造D)GOTO构造
11.部文档可用注释语言书写,注释语言分为(ABCD)。
A)序言性注释B)描述性注释C)功能性注释D)状态性注释
12.为使程序中数据说明更易于理解和维护,必须遵循以下原那么(ABC)。
A)数据说明的次序应当规化
B)一个语句说明多个变量时,各变量名按字母顺序排列
C)对于复杂的数据构造,要加注释,说明在程序实现时的特点
D)定义变量名应按字母顺序排列
13.源程序的效率与(D)阶段确定的算法的效率直接有关。
A)概要设计B)总体设计C)单元设计D)详细设计
14.在详细设计翻译转换成源程序代码后,算法效率反映为对程序的哪几个面的要求(CD)。
A)读写速度B)代码长度C)存储容量D)执行速度
15.提高程序效率的根本途径在于(BC)。
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)提高程序效率的根本途径
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 方法 实践 许家珆 习题 答案