ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:28KB ,
资源ID:19958278      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19958278.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程方法与实践许家珆习题答案Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程方法与实践许家珆习题答案Word下载.docx

1、1.软件产品的特性是什么?答:软件是一种逻辑产品,具有无形性;软件产品的生产主要是研制;软件不存在磨损和老化问题,但存在退化问题;软件产品的生产主要是脑力劳动;软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;软件具有“复杂性”,其开发和运行常受到计算机系统的限制。2.软件发展有几个阶段?各有何特征?程序设计阶段。硬件特征:价格贵、存储容量小、运行可靠性差。软件特征:只有程序、程序设计概念,不重视程序设计方法。程序系统阶段。速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长软件特征:程序员数量猛增,开发人员素质低。软件工程阶段。向超高速、大容量、微型化及网络化方向发展。

2、开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。3.什么是软件危机?其产生的原因是什么?“软件危机”(SoftwareCrii)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。软件危机主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折。(2)软件生产率低,不能满足需要。4.什么是软件生存周期模型?它有哪些主要模型?软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。主要

3、模型包括:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。5.有哪些主要的软件开发方法?主要的软件开发方法有:结构化开发方法、Jackon(JSP、JSD)方法、原型化开发方法、维也纳开发方法(VDM)和面向对象的开发方法。6.软件生命期各阶段的任务是什么?软件生命期瀑布模型分为六个阶段:可行性研究与计划(确定系统的目标和规模,分析项目的可行性);需求分析与规格说明(明确系统的规格和要求);设计(包括概要设计和详细设计,将系统分解为模块);编程(用程序语言实现每个模块,简单容易);测试(发现并改正错误,分为模块测试、集成测试和系统联调三级);运行维护(扩充功能、纠错等)。2习

4、题二答案1.需求分析的主要目的是()。A)系统开发的具体方案B)进一步确定用户的需求C)解决系统是“做什么的问题”D)解决系统是“如何做的问题”2.需求分析的主要方法有()。A)形式化分析方法C)结构化分析(SA)方法B)PAD图描述D)OOA法3.面向对象的分析方法主要是建立三类模型,即()。A)系统模型、ER模型、应用模型B)对象模型、动态模型、应用模型C)-模型、对象模型、功能模型D)对象模型、动态模型、功能模型4.法的主要描述手段有()。A)系统流程图和模块图B)图、数据词典、加工说明C)软件结构图、加工说明D)功能结构图、加工说明5.画分层图的基本原则有()。A)数据守恒原则B)分解

5、的可靠性原则C)子、父图平衡的原则D)数据流封闭的原则7.画DFD图的主要目的是(AD)。A)作为需求分析阶段用户与开发者之间交流信息的工具B)对系统的数据结构进行描述C)对目标系统的层次结构进行描述D)作为分析和设计的工具8.数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。A)数据说明条目、控制流条目、加工条目、数据存储条目B)数据流条目、数据项条目、文件条目、加工条目C)数据源条目、数据流条目、数据处理条目、数据文件条目D)数据流条目、数据文件条目、数据池条目、加工条目39.在需求分析阶段主要采用图形工具来描述的原因是(BC)。A)图形的信息量大,便于描述规模大的软

6、件系统B)图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重要的细节C)图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用户之间达成一致的需求D)图形比文字描述简单、形象二、判断题1.在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(某)2.法是面向数据流,建立在数据封闭原则上的需求分析方法。()3.HIPO法既是需求分析方法,又是软件设计方法。4.在面向对象的需求分析方法中,建立动态模型是最主要的任务。(某)5.加工小说明是对系统流程图中的加工进行说明。6.判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(某)7.需求分析的主要

7、方法有SD法、OOA法及HIPO法等。8.分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。(某)9.信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图。10.用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。三、问答题1.什么是需求分析?需求分析阶段的基本任务是什么?需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。准确地回答“系统必须做什么?”的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还

8、涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。需求分析的基本任务包括:(1)抽取需求分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等(2)模拟和分析需求需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需

9、求模拟等。(3)传递需求传递需求的主要任务是书写软件需求规格说明。(4)认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。(5)进化需求客户的需要总是不断(连续)地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发4展是软件家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。2.M公

10、司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记:副总裁不喜欢报告长度超过一页(B5)。参考答案提示:应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。根据快速原型法的特点,说明它特别适合于开发探索型、实验型的软件。3.如何画分层数据流图?总的原则是:至顶而下,逐层分解(画分层数据流图)。比较复杂的系统不能画在一张纸上,逐层分解的画法可以控制每一层的复杂度。顶层:将整个系统作为一个加工,描述系统边界(输入与输出)。中间层:表示某个加

11、工分解为一组子加工,其中的子加工还需进一步分解。底层:由不再进行分解的基本加工组成。4.加工小说明有哪些描述方法?结构化语言:介于自然语言和形式语言(如谓词逻辑)之间。结构化英语:通常由外层和内层结构组成。汉语的情况:精确、简明扼要、文体可以灵活。判定表:适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。判定树:本质上与判定表相同,图形表示更易于理解。5.考察下图中子图、父图的平衡。图1图2参考答案:显然,图1中子图与父图不平衡。改正如下:如果有如下数据条目:订货单=客户+账号+数量则子、父图平衡6.画出银行取款过程的DFD图。问题描述为:储户用存折取款,首先填写取款单,5根据“账卡”中

12、的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“账卡”,同时发出付款通知,出纳向储户付款。7.常用的软件需求分析方法有哪些?结构化分析方法(SA)、功能分解法、信息建模法、面向对象的分析方法(OOA)。习题三答案1.模块的基本特征是(AC)。A)外部特征(输入/输出、功能)C)内部特征(局部数据、代码)2.SD方法的设计总则是(CD)。A)程序简洁、操作方便C)模块内聚性强B)内部特征(输入/输出、功能)D)外部特征(局部数据、代码)B)结构清晰、合理D)模块之间耦合度低3.软件设计的主要任务是(ABD)。A)将分析阶段获得的需求说明转换

13、为计算机中可实现的系统B)完成系统的数据结构和程序结构设计C)完成模块的编码和测试D)对模块内部的过程进行设计4.设计阶段应达到的目标有()。A)提高可靠性和可维护性B)提高应用范围C)结构清晰D)提高可理解性和效率5.从工程管理的角度来看,软件设计分两步完成(D)。A)系统分析模块设计B)详细设计总体设计C)模块设计详细设计D)总体设计详细设计6.模块独立性准则由以下定性指标来衡量()。A)分解度B)耦合度C)屏蔽性D)内聚性7.用户界面设计的任务包括(ABC)。A)确定用户界面类型C)建立用户模型8.程序设计语言可以分为(BCD)。A)面向过程的语言6B)建立任务模型D)建立功能模型B)机

14、器语言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)阶段确定的

15、算法的效率直接有关。A)概要设计B)总体设计C)单元设计D)详细设计14.在详细设计翻译转换成源程序代码后,算法效率反映为对程序的哪几个方面的要求(CD)。A)读写速度B)代码长度15.提高程序效率的根本途径在于(BC)。A)编程时对程序语句进行调整C)使程序最大限度的简洁C)存储容量D)执行速度B)选择良好的设计方法D)选择良好的数据结构与算法1.划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。(某)2.在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用。3.信息隐蔽原则有利于提高模块的内聚性。4.中心变换型的DFD图可看成是对输入数据进行转换

16、而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图。(某)5.SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。(某)6.所谓结构冲突,是指输入数据与输出数据之间很少或没有结构上的对应关系。通常解决的办法是:构造一个或者多个中间结构,在输入和输出结构之间进行转换。()7.当模块的控制范围是其作用范围的子集时,模块之间的耦合度较低。(某)8.JACKSON方法是以数据流、数据封闭性准则逐层分解的。9.程序设计语言的工程特性包括:可移植性、可重用性、可维护性、局部性和顺序性。10.项目应用领域是选择语言的关键因素。11.FORTRAN、Pacal、C语言、PL/1和

17、汇编语言都是科学工程计算可选用的语言。(某)12.要用快速原型法开发软件,应选用4GL语言。13.提高程序效率的根本途径是选择良好的设计方法、数据结构与算法。(某)14.良好的程序设计风格简单说就是高的编程技巧。()三、简答题按块间共用信息的作用(可分为数据型、控制型与混合型);7控制型:模块间传送的信息用于控制模块的内部逻辑;复合型:模块间传送复合的数据结构;数据型:模块间传送单个数据项。逻辑型:逻辑上相似的功能放进一个模块;瞬时型:将同时执行的语句放在一个模块;通信型:模块中的各部分引用共同的数据;顺序型:模块中一部分的输出是另一部分的收入;功能型:模块中刚好包含了完成一个基本任务所必需的

18、成分。2.分析以下DFD图,说明属于哪种类型的DFD图,并按照相应的变换将其转换为初始的模块结构图。(略)3.下图是修改文件记录的DFD图,请确定其主加工。解:主加工为:账号、修改、写记录。(1)尽可能建立功能模块;8(2)消除重复功能;(4)模块的大小适当;(5)模块的扇入扇出数不宜太多。5.根据模块的作用范围与控制范围的原则,判定a、b两图的正确性。显然,图a不满足作用范围应与控制范围的原则,模块F的作用范围不在控制范围之内。图b的模块设计合理。6.图a中,模块G为判定,判断涉及到模块B、F、G,请指出设计中的错误,再根据改进模块图的基本原则,画出12个改进方案(不改变模块G的判断关系),

19、并说明是按照哪条基本原则进行改进的。7.编码阶段的主要任务是什,应交付的结果是什么?编码阶段的主要任务是为每个模块编写程序。即是:将详细设计的结果转换为用某种计算机语言写的程序源程序代码。编码阶段应交付的结果是带有“程序内部文档”的、不再含有语法错误的程序。8.SP法的自顶向下,逐步求精方法的优点有哪些?此法符合人们解决复杂问题的普遍规律,可提高软件开发的成功率和生产率;而且用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程,开发出来的程序具有清晰的层次结构,因此程序容易阅读和理解。这样,程序自顶向下,逐步细化,分解成一个树型结构9标识符即符号名,包括:模块名、常量名、标号名、子程序名、

20、数据区名、缓冲区名等。这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能够见名知意,有助于对程序功能的理解。(2)程序应加注释,它分为两类:序言性注释和功能性注释。序言性注释应置于每个模块的起始部分,主要内容有:说明每个模块的用途,功能;说明模块的接口即调用格式、参数描述及从属模块的清单;数据描述;开发历史功能性注释是嵌在源程序体中的,用于说明其后的程序段或语句的功能以及数据的状态;也就是解释下面要“做什么”,或是执行下面的语句会发生什么情况;而不是解释下面“怎么做”,因为怎么做常常是与程序重复的,且对读者理解程序没有什么帮助。10.样评价程序的执行效率?它与程序清晰性的关系是怎样的

21、?许多程序员往往片面追求效率,其实程序系统的成本不仅包括运行所需的机时,同时还应把程序员及操作员所花费的人力考虑进去。在编程时为追求效率而损害可读性或可靠性,会给以后的维护工作带来困难,所以从整体上看来是不值得的。此外,还应该认识到,提高程序效率的根本途径在于:选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句进行调整。(1)追求建立在不损害程序可读性或可靠性基础上,要先使程序正确、清晰,再提高程序效率。(2)不能因为贪图效率上的小利,而破坏程序的清晰性。(3)让编译程序去作简单的优化。(4)提高程序效率的根本途径在于:选择良好的设计方法和良好的数据结构与算法,而不是靠编程时对

22、程序语句做调整。11.假定:需要编一个求解一元二次方程根的子程序,加入到现有的子程序库中,供其他程序员使用。要求:(1)为该子程序写一个序言性注释;(2)用PASCAL语言或其他语言写出这个子程序(要把根的性质,如:实根、复根、降为一次方程等有区别地通知调用者),并加上描述性注释。答案:习题四答案1.面向对象程序设计的基本机制(ABC)。A)继承B)消息C)方法D)结构D)封装2.下列属于面向对象的要素有(BCD)。A)分类性B)抽象C)共享3.下列选项中属于面向对象开发方法的有(ACD)。A)BoochB)CADC)CoadD)OMT4.下列属于Coad方法中面向对象的分析模型的层次有(AB

23、)。A)主题层B)对象层C)应用层5.一个类属性依其特征划分,其类型有(ABCD)。A)描述型B)定义型C)派生型6.在进行面向对象分析时,所采用的模型有(ABD)。10D)接口层D)参考型习题六答案1.什么是软件复用?软件复用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的。2.软件复用的层次可以分为哪几个级别?(1)代码的复用;(2)设计结果的复用;(3)分析结果的复用;(4)测试信息的复用。3.生产者复用(ProductReue)和消费者复用(ConumerReue)有何区别?生产者复用是指建立、获取或者重新设计可复用构件的活动。生产

24、者复用中涉及到的活动包括:复用的规划、领域分析、构件的开发、构件库的组织和管理。消费者复用是指使用可复用的构件建立新的软件系统的活动。消费者复用中涉及到的活动包括:应用系统的规划、构件的检索和选择、应用系统中非复用部分的开发、应用系统的组装等。4.什么是可复用构件?相对于普通软件产品,对可复用构件有何特殊要求?可复用构件是指可以在多个软件系统的开发过程中被重复使用的软件产品。相对于普通软件产品,对可复用构件的特殊要求包括:具有功能上的独立性与完整性、具有较高的通用性、具有较高的灵活性、具有严格的质量保证和具有较高的标准化程度。5.基于构件的软件开发的优势是什么?基于构件的软件开发的优势包括:可

25、以显著地改善软件的质量和可靠性;可以极大地提高软件开发的效率;节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。6.简述CORBA的对象管理体系的组成。CORBA的对象管理体系由四个部分组成;这四个部分是对象请求代理、对象服务、公共工具和应用程序对象。7.在EJB2.0规范中定义的EJB构件有哪些类型?在EJB2.0规范中定义的EJB构件包括以下四种类型:无状态会话EJB构件、有状态会话EJB构件、实体EJB构件和消息驱动EJB构件。习题七答案1.软件测试的主要特点是(AC)。A)软件测试的开销大B)软件测试要依靠工具C)软件不能进行“穷举”测试D)软件测试要依靠人工2.整体测试又称

26、为组装测试,其主要内容包括(CD)。A)对整体的性能进行测试C)确定组装策略和次序B)用白盒法设计测试用例进行测试D)对组装过程进行测试3.渐增式是将模块一个一个地连入系统,每连入一个模块(C)。A)只需要对新连入的模块进行测试B)都不需要再进行测试C)要对新子系统进行测试D)都要进行回归测试164.静态测试是以人工的、非形式化的方法对程序进行分析和测试。常用的静态测试方法有(BCD)。A)运行程序并分析运行结果C)数据流分析图5.集成过程的原则是(BC)。A)按照模块的大小集成B)尽早测试包含I/O的模块C)尽早测试关键模块D)按照“输入处理输出”的次序进行集成6.关于白盒法覆盖程度的论述中

27、正确的是(AB)。A)语句覆盖:选择测试用例使程序中每条语句至少被执行一次B)判定覆盖:选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值C)条件覆盖:选择测试用例使每个条件都满足D)条件组合覆盖:将所有的判定条件都组合起来执行7.软件测试的基本原则是(ACD)。A)关键是注重选择高效的测试用例B)选择尽可能多的测试用例C)尽量不由程序设计者进行测试D)充分注意测试中的群集现象8.等价分类法的关键是()。A)确定等价类的边界条件B)按照用例来确定等价类C)划分等价类D)确定系统中相同和不同的部分1.单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。2.功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。3.白盒法是一种静态测试方法,主要用于模块测试。4.整体测试又称为逻辑覆盖测试,需要对系统模块的内部结构进行测试。5.在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。(某)6.发现错误多的模块,残留在模块中的错误也多。()7.在分析规范(因、果)的基础上画出因果图,再将其转换为

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

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