已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程理论与实践习题答案1习题答案习题一答案一、选择题1软件的主要特性是ABC。A无形B高成本C包括程序和文档D可独立构成计算机系统2软件工程三要素是CD。A技术、方法和工具B方法、工具和过程C方法、对象和类D过程、模型、方法3包含风险分析的软件工程模型是A。A螺旋模型B瀑布模型C增量模型D喷泉模型4软件工程的主要目标是C。A软件需求B软件设计C风险分析D软件实现5下列属于面向对象开发方法的是ABCD。ABOOCHBUMLCCOADDOMT6软件危机的主要表现是BD。A软件成本太高B软件产品的质量低劣C软件开发人员明显不足D软件生产率低下7软件开发方法的主要工作模型有ABCA螺旋模型B循环模型C瀑布模型D专家模型8软件工程的目标有ABC。A易于维护B低的开发成本C高性能D短的开发期9软件工程学的目的和意义是。A应用科学的方法和工程化的规范管理来指导软件开发B克服软件危机C作好软件开发的培训工作D以较低的成本开发出高质量的软件二、判断题1软件就是程序,编写软件就是编写程序。2瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。3结构化方法的工作模型是使用螺旋模型进行开发。4结构化方法和JSP方法都不适合于大型软件的开发。5原型化开发方法包括生成原型和实现原型两个步骤。6面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。7软件危机的主要表现是软件的需求量迅速增加,软件价格上升。8软件工具的作用是为了延长软件产品的寿命。9软件工程过程应该以软件设计为中心,关键是编写程序。软件工程理论与实践习题答案210RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。三、简答题1软件产品的特性是什么答软件是一种逻辑产品,具有无形性;软件产品的生产主要是研制;软件不存在磨损和老化问题,但存在退化问题;软件产品的生产主要是脑力劳动;软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;软件具有“复杂性”,其开发和运行常受到计算机系统的限制。2软件发展有几个阶段各有何特征答程序设计阶段。硬件特征价格贵、存储容量小、运行可靠性差。软件特征只有程序、程序设计概念,不重视程序设计方法。程序系统阶段。硬件特征速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。软件特征程序员数量猛增,开发人员素质低。软件工程阶段。硬件特征向超高速、大容量、微型化及网络化方向发展。软件特征开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。3什么是软件危机其产生的原因是什么答“软件危机”SOFTWARECRISIS的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。软件危机主要表现在两个方面1软件产品质量低劣,甚至开发过程就夭折。2软件生产率低,不能满足需要。4什么是软件生存周期模型它有哪些主要模型答软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。主要模型包括瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。5有哪些主要的软件开发方法答主要的软件开发方法有结构化开发方法、JACKSONJSP、JSD方法、原型化开发方法、维也纳开发方法VDM和面向对象的开发方法。6软件生命期各阶段的任务是什么答软件生命期瀑布模型分为六个阶段可行性研究与计划确定系统的目标和规模,分析项目的可行性;需求分析与规格说明明确系统的规格和要求;设计包括概要设计和详细设计,将系统分解为模块;编程用程序语言实现每个模块,简单容易;测试发现并改正错误,分为模块测试、集成测试和系统联调三级;运行维护扩充功能、纠错等。软件工程理论与实践习题答案3习题二答案一、选择题1需求分析的主要目的是。A系统开发的具体方案B进一步确定用户的需求C解决系统是“做什么的问题”D解决系统是“如何做的问题”2需求分析的主要方法有。A形式化分析方法BPAD图描述C结构化分析SA方法DOOA法3面向对象的分析方法主要是建立三类模型,即。A系统模型、ER模型、应用模型B对象模型、动态模型、应用模型C模型、对象模型、功能模型D对象模型、动态模型、功能模型4法的主要描述手段有。A系统流程图和模块图B图、数据词典、加工说明C软件结构图、加工说明D功能结构图、加工说明5画分层图的基本原则有。A数据守恒原则B分解的可靠性原则C子、父图平衡的原则D数据流封闭的原则6在ER模型中,包含以下基本成分C。A数据、对象、实体B控制、联系、对象C实体、联系、属性D实体、属性、联系7画DFD图的主要目的是AD。A作为需求分析阶段用户与开发者之间交流信息的工具B对系统的数据结构进行描述C对目标系统的层次结构进行描述D作为分析和设计的工具8数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成C。A数据说明条目、控制流条目、加工条目、数据存储条目B数据流条目、数据项条目、文件条目、加工条目C数据源条目、数据流条目、数据处理条目、数据文件条目D数据流条目、数据文件条目、数据池条目、加工条目软件工程理论与实践习题答案49在需求分析阶段主要采用图形工具来描述的原因是BC。A图形的信息量大,便于描述规模大的软件系统B图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重要的细节C图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用户之间达成一致的需求D图形比文字描述简单、形象二、判断题1在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。2法是面向数据流,建立在数据封闭原则上的需求分析方法。3HIPO法既是需求分析方法,又是软件设计方法。4在面向对象的需求分析方法中,建立动态模型是最主要的任务。5加工小说明是对系统流程图中的加工进行说明。6判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。7需求分析的主要方法有SD法、OOA法及HIPO法等。8分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。9信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是ER图。10用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。三、问答题1什么是需求分析需求分析阶段的基本任务是什么答需求分析是当前软件工程中的关键问题,需求分析阶段的任务是在可行性分析的基础上,进一步了解、确定用户需求。准确地回答“系统必须做什么”的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。需求分析的基本任务包括1抽取需求分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。2模拟和分析需求需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模型的表现形式有自然语言、半形式化如图、表、结构化英语等和形式化表示等三种。需求概念模型的要求包括实现的独立性不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。3传递需求传递需求的主要任务是书写软件需求规格说明。4认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方法有协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。5进化需求客户的需要总是不断连续地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化变化就成为软件进化的首要问题。对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前软件工程理论与实践习题答案5的发展是软件家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。2M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记副总裁不喜欢报告长度超过一页B5。参考答案提示应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。根据快速原型法的特点,说明它特别适合于开发探索型、实验型的软件。3如何画分层数据流图答总的原则是至顶而下,逐层分解画分层数据流图。比较复杂的系统不能画在一张纸上,逐层分解的画法可以控制每一层的复杂度。顶层将整个系统作为一个加工,描述系统边界输入与输出。中间层表示某个加工分解为一组子加工,其中的子加工还需进一步分解。底层由不再进行分解的基本加工组成。4加工小说明有哪些描述方法答结构化语言介于自然语言和形式语言如谓词逻辑之间。结构化英语通常由外层和内层结构组成。汉语的情况精确、简明扼要、文体可以灵活。判定表适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。判定树本质上与判定表相同,图形表示更易于理解。5考察下图中子图、父图的平衡。图1图2参考答案显然,图1中子图与父图不平衡。改正如下如果有如下数据条目订货单客户账号数量则子、父图平衡6画出银行取款过程的DFD图。问题描述为储户用存折取款,首先填写取款单,软件工程理论与实践习题答案6根据“账卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“账卡”,同时发出付款通知,出纳向储户付款。参考答案7常用的软件需求分析方法有哪些答结构化分析方法SA、功能分解法、信息建模法、面向对象的分析方法OOA。习题三答案一、选择题1模块的基本特征是AC。A外部特征输入/输出、功能B内部特征输入/输出、功能C内部特征局部数据、代码D外部特征局部数据、代码2SD方法的设计总则是CD。A程序简洁、操作方便B结构清晰、合理C模块内聚性强D模块之间耦合度低3软件设计的主要任务是ABD。A将分析阶段获得的需求说明转换为计算机中可实现的系统B完成系统的数据结构和程序结构设计C完成模块的编码和测试D对模块内部的过程进行设计4设计阶段应达到的目标有。A提高可靠性和可维护性B提高应用范围C结构清晰D提高可理解性和效率5从工程管理的角度来看,软件设计分两步完成D。A系统分析模块设计B详细设计总体设计C模块设计详细设计D总体设计详细设计6模块独立性准则由以下定性指标来衡量。A分解度B耦合度C屏蔽性D内聚性7用户界面设计的任务包括ABC。A确定用户界面类型B建立任务模型C建立用户模型D建立功能模型8程序设计语言可以分为BCD。A面向过程的语言B机器语言软件工程理论与实践习题答案7C高级语言D汇编语言9程序效率包括ACD几个方面的内容。A代码效率B运行效率C存储效率DI/O效率10SP方法中的基本控制结构有ABC。A顺序结构B选择结构C重复结构DGOTO结构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图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图。5SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。6所谓结构冲突,是指输入数据与输出数据之间很少或没有结构上的对应关系。通常解决的办法是构造一个或者多个中间结构,在输入和输出结构之间进行转换。7当模块的控制范围是其作用范围的子集时,模块之间的耦合度较低。8JACKSON方法是以数据流、数据封闭性准则逐层分解的。9程序设计语言的工程特性包括可移植性、可重用性、可维护性、局部性和顺序性。10项目应用领域是选择语言的关键因素。11FORTRAN、PASCAL、C语言、PL/1和汇编语言都是科学工程计算可选用的语言。12要用快速原型法开发软件,应选用4GL语言。13提高程序效率的根本途径是选择良好的设计方法、数据结构与算法。14良好的程序设计风格简单说就是高的编程技巧。三、简答题1模块内联系和模块间联系有哪些种类答块间联系的各种类型的划分,从以下3方面考虑按块间联系的方式(可分为直接引用与过程调用);软件工程理论与实践习题答案8按块间共用信息的作用(可分为数据型、控制型与混合型);按块间共用的信息数量多少(信息多联系紧密)。(1)块间联系的类型,按照耦合度由大到小分为内容型直接引用另一模块的内部信息;公共型两个模块引用共同的全程数据区;控制型模块间传送的信息用于控制模块的内部逻辑;复合型模块间传送复合的数据结构;数据型模块间传送单个数据项。(2)块内联系的类型,按照内聚性从小到大分为偶然型模块内部没有必然联系;逻辑型逻辑上相似的功能放进一个模块;瞬时型将同时执行的语句放在一个模块;通信型模块中的各部分引用共同的数据;顺序型模块中一部分的输出是另一部分的收入;功能型模块中刚好包含了完成一个基本任务所必需的成分。2分析以下DFD图,说明属于哪种类型的DFD图,并按照相应的变换将其转换为初始的模块结构图。参考答案略3下图是修改文件记录的DFD图,请确定其主加工。解主加工为账号、修改、写记录。4按照“降低块间联系,提高块内联系”的设计总则对模块进行修改,具体从哪些方面进行改进解软件工程理论与实践习题答案91尽可能建立功能模块;2消除重复功能;3模块的作用范围与控制范围,即当作用范围为控制范围的子集时,才能获得较低的块间联系;4模块的大小适当;5模块的扇入扇出数不宜太多。5根据模块的作用范围与控制范围的原则,判定A、B两图的正确性。解显然,图A不满足作用范围应与控制范围的原则,模块F的作用范围不在控制范围之内。图B的模块设计合理。6图A中,模块G为判定,判断涉及到模块B、F、G,请指出设计中的错误,再根据改进模块图的基本原则,画出12个改进方案不改变模块G的判断关系,并说明是按照哪条基本原则进行改进的。解图B为一个改进方案,将模块G的位置提高,使其作用范围为控制范围的子集,减少模块之间的联系。7编码阶段的主要任务是什,应交付的结果是什么答编码阶段的主要任务是为每个模块编写程序。即是将详细设计的结果转换为用某种计算机语言写的程序源程序代码。编码阶段应交付的结果是带有“程序内部文档”的、不再含有语法错误的程序。8SP法的自顶向下,逐步求精方法的优点有哪些答此法符合人们解决复杂问题的普遍规律,可提高软件开发的成功率和生产率;而且用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程,开发出来的程序具有清晰的层次结构,因此程序容易阅读和理解。这样,程序自顶向下,逐步细化,分解成一个树型结构。因此,在同一层次的节点上做细化工作,相互之间没有联系,它们之间的细化工作相互独立;在任何一步发生错误,一般只影响它下层的节点,同一层其他节点不受影响;在以后的测试中,也可以先独立地一个节点一个节点地做,最后再集成。这样,程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码量最大。9为了使程序具有良好的设计风格,应注意哪些方面的问题软件工程理论与实践习题答案10答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。ABOOCHBCADCCOADDOMT4下列属于COAD方法中面向对象的分析模型的层次有AB。A主题层B对象层C应用层D接口层5一个类属性依其特征划分,其类型有ABCD。A描述型B定义型C派生型D参考型软件工程理论与实践习题答案116在进行面向对象分析时,所采用的模型有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类是指具有相同或相似性质对象的抽象,对象是抽象的类,类的具体化就是对象。3继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。4多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。5面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。6面向对象的设计的主要目标是提高生产效率,提高质量和提高可维护性。7对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。8面向对象的分析是用面向对象的方法对目标系统的问题空间进行理解、分析和反映。通过对象层次结构的组织确定解空间中应存在的对象和对象层次结构。9类的设计过程包括确定类,确定关联类,确定属性,识别继承关系。10复用也叫重用或再用,面向对象技术中的“类”,是比较理想的可重用软构件。有三种重用方式实例重用、继承重用、多态重用。11主题是一种关于模型的抽象机制,它是面向对象模型的概貌,也是关于某个模型要同时考虑和理解的内容,主题起一种控制作用。12面向对象的分析由对象、结构、继承性和基于消息的通信构成。13支持继承性是面向对象程序设计语言和传统程序设计语言在语言机制方面的根本区别。14面向对象的分析过程主要包括三项内容理解、表达和验证。15面向对象的设计的主要目标是提高生产效率、提高质量和提高可维护性。三、简答题1与传统程序设计模式中的过程调用相比,消息传递机制有何本质区别答1消息传递必须给出信道的信息,通常要指出明显的接受方。2由于接受方是一通信实体,具有保持状态的能力,所以同一发送方在不同时刻向同一接受方发送同样的信息,可因接受方的当前状态不同而得到不同的结果。3消息传递可以是异步的,发送方可以不必等待接受方返回信息就可以继续执行后面的操作,因而支持程序的并发和分布执行,而过程调用只能是同步的,本质上是串行的。2阐述面向对象的特征,并做简要的解释。答1对象惟一性。软件工程理论与实践习题答案12每个对象都有自身惟一的标识,通过这种标识,可找到相应的对象。2分类性。是指将具有一致的数据结构属性和行为操作的对象抽象成类。3继承性。是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。4多态性。是指相同的操作或函数,过程作用于多种类型的对象上,并获得不同的结果。3COAD方法主要由面向对象分析OOA和面向对象设计OOD。OOA方法分析过程和构造OOA概念模型的顺序由5个层次组成,请简述这5个层次。答1发现类及对象。描述如何发现类及对象。从应用领域开始识别类及对象,形成整个应用的基础,然后,据此分析系统的责任。2识别结构。该阶段分为两个步骤。第一,识别“一般特殊”结构,该结构捕获了识别出的类的层次结构;第二,识别“整体部分”结构,该结构用来表示一个对象如何成为另一个对象的一部分,以及多个对象如何组装成更大的对象。3定义主题。主题由一组类及对象组成,用于将类及对象模型划分为更大的单位,便于理解。4定义属性。其中包括定义类的实例对象之间的实例连接。5定义服务。其中包括定义对象之间的消息连接。4面向对象程序设计有哪些优点解开发时间短、效率高、可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短开发时间,这样程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。5比较面向对象方法与结构化方法的特点。解分析是问题抽象做什么,设计是问题求解怎么做,实现是问题的解结果。任何方法学对客观世界的抽象和求解过程都是如此。在问题抽象阶段,结构化方法面向过程,按照数据变换的过程寻找问题的结点,对问题进行分解。因此,与面向对象方法强调的对象模型不同,描述数据变换的功能模型是结构化方法的重点。如果问题世界的功能比数据更复杂或者更重要,那么结构化方法仍然应是首选的方法学。如果数据结构复杂且变换不多,那么如果以过程主导分析和设计,一旦有系统变更就会给下游开发带来极大混乱。由于对过程的理解不同,面向过程的功能细分所分割出的功能模块有时会因人而异。而面向对象的对象细分,从同一问题领域的对象出发,不同人得出相同结论的比率较高。在设计上,结构化方法学产生自顶向下、结构清晰的系统结构。每个模块有可能保持较强的独立性,但它往往与数据库结构相独立,功能模块与数据库逻辑模式间没有映射关系,程序与数据结构很难封装在一起。如果数据结构复杂,则模块独立性很难保证。面向对象方法抽象的系统结构往往并不比结构化方法产生的系统结构简单,但它能映射到数据库结构中,很容易实现程序与数据结构的封装。在软件工程基本原则中有一条“形式化原则”,即对问题世界的抽象结论应该以形式化语言图形语言、伪码语言等表述出来。结构化方法可以用数据流图、系统结构图、数据辞典、状态转移图、实体关系图来进行系统逻辑模型的描述;而面向对象方法可以使用对象模型图、数据辞典、动态模型图、功能模型图。其中对象模型图近似系统结构图与实体关系图的结合,动态模型图类似状态迁移图,功能模型图类似数据流图。6当重要的对象被发现后,通过一组互相关联的模型详细表示类之间的关系和对象的软件工程理论与实践习题答案13行为,这些模型从四个不同的侧面表示了软件的体系结构、静态逻辑、动态逻辑、静态物理和动态物理。试描述一下这四种特性。解静态逻辑模型描述实例化类成员关系、关联、聚集整体/部分、和一般化继承等关系。这被称为对象模型。一般化关系表示属性和方法的继承关系。定义对象模型的图形符号体系通常是从用于数据建模的实体关系图导出的。对设计十分重要的约束,如基数一对一、一对多、多对多,也在对象模型中表示。动态逻辑模型描述对象之间的互相作用。互相作用通过一组协同的对象,对象之间消息的有序的序列,参与对象的可见性定义,来定义系统运行时的行为。静态物理模型通过模块描述代码的布局。动态物理模型描述软件的进程和线程体系结构。习题五答案一、选择题1下列不是模型元素的是(D)。A关联B聚合C依赖D笔记2UML具有扩展性,常见的扩展机制有(BCD)。A修饰B版类C加标签值D约束3UML语言支持的建模方式有(ABD)。A静态建模B动态建模C模块化建模D功能建模4下列各种图可用于动态建模的有(ACD)。A状态图B类图C序列图D活动图5下列属于状态的组成部分的有(AB)。A名称B活动C条件D事件6UML中包括的事件有(ABCD)。A条件为真B收到另一对象的信号C收到操作调用D时间表达式7属性的可见性有(ABD)。A公有的B私有的C私有保护的D保护的8用例之间的关系有(BCD)。A友元B扩展C使用D组合9应用于通用化约束的方式有(ABCD)。A完整B不相交C不完整D覆盖10消息的类型有(ABC)。A同步B异步C简单D复杂二、判断题1UML建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的。2UML是一种建模语言,是一种标准的表示,是一种方法。3泳道是一种分组机制,它描述了状态图中对象所执行的活动。4同步消息和异步消息的主要区别是同步消息的发送对象在消息发送后,不必等待消息处理,可立即继续执行,而异步消息则发送对象必须等待接收对象完成消息处理后,才能继续执行。软件工程理论与实践习题答案145类图中的角色是用于描述该类在关联中所扮演的角色和职责的。6类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。7用例模型的基本组成部件是用例、角色和用例之间的联系。8用例之间有扩展、使用、组合等几种关系。9顺序图描述对象之间的交互关系,重点描述对象间消息传递的时间顺序。10活动图显示动作及其结果。着重描述操作实现中所完成的工作以及用例实例或类中的活动。三、简答题1以图1(一个在学校首次报名的UML活动图)为例,说明如何绘制活动图。图1学校首次报名的UML活动图答要创建一个UML活动图,需要反复执行下列步骤。1定义活动图的范围。首先应该确定建模的范围,是对整个系统建模还是一个子系统一旦定义了作图的范围,应该在其顶部,用一个注释,指明该图的标题和惟一的标识符,还可标注该图的时间及作者姓名。本题的建模范围是一个学校管理系统中的“报名”部分。2添加活动。活动是活动图的核心,活动是完成系统任务所必须执行的处理步骤。可从用例模型出发,对每个角色ACTOR所驱动的主要用例引入一个活动,如果是对整个系统建模,应对每个主要流程引入一个活动。在“报名”的活动图中确定了“FILLOUTENROLLMENT”填写报名表、“ENROLLINUNIVERSITY”登记入学、“OBTAINHELPTOFILLOUTFORMS”帮助填写报名表、“ATTENDUNIVERSITYOVERVIEWPRESENTATION”参加介绍学校会议等6个活动。3添加起点和结束点。每个活动图只能有一个起始点和多个结束点,结束点可以是所有活动的结束,也可以是对执行过程的终止。4添加活动间的转变。当一个活动结束时将进入下一个活动,称为活动转移。可标明活动转移的条件,引起活动转移的事件。如活动“填写报名表”有两个活动转移,当填写报名表不正确时,则转移到活动“帮助填写报名表”,当填写正确时,则转移到活动“登记入学”。5添加判断点。当对建模的逻辑需要做出一个判断时,需要添加判断点。例如,在图1中,在“ENROLLINUNIVERSITY”活动之后,还必须按照入学条件进行判断,满足条件的继续执行入学报到的活动,而不满入学条件的则结束。6找出并行活动。当两个活动间没有直接的联系,而且它们都必需在第三个活动开始软件工程理论与实践习题答案15前结束,那它们是可以并行运行的。在图1中,用同步线描述系统任务中的并发活动,活动“ATTENDUNIVERSITYOVERVIEWPRESENTATION”参加介绍学校会议和“ENROLLINSEMINARS”注册研讨班及“MAKEINITIALTUITIONPAYMENT”交付初始的学费可并行执行,使用同步线表示它们都要在结束整个流程前完成。2简述扩展、使用和细化三种UML依赖关系的异同。答扩展关系是对基本用例在对某些“扩展点”的功能的增加。使用关系表示一个元素为了实现或完成其全部的功能需要用到已存在的另一个模型元素,例如类与类之间的多种方法调用关系。细化关系是不同语义层(如分析和设计)之间模型元素的依赖关系,因此细化关系可描述的语义范围较广,包括模型的逐步细化、优化、变换、模板、模型合成、框架组成等等。3为什么要使用UML答软件开发的过程犹如雕琢一件工艺品,由无形到有形,由粗到细。大家知道,随着计算机应用的飞速发展,软件的复杂程度不断提高,源代码的规模越来越大,项目失败的可能性也相应增加。在长期的研究与实践中,人们越来越深刻地认识到,建立简明准确的表示模型是把握复杂系统的关键。模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。在模型中,先要剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单明了、易于把握。总的来说,使用模型可以使人们从全局上把握系统的全貌及其相关部件之间的关系,可以防止过早地陷入各个模块的细节。因此,面向对象的分析与设计应该从建模开始。4简述UML实际建模过程。答每次迭代都分为以下几个阶段分析阶段。建模的目的是捕捉系统的功能需求,分析、提取所开发系统的“客观世界”领域的类以及描述它们的合作关系。设计阶段。建模的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案。实现阶段。具体工作就是进行编码,同时对已构造的模型作相应的修正。配置阶段。通过模型描述所开发系统的软硬件配置情况。测试阶段。使用前几个阶段所构造的模型来指导和协助测试工作。5在UML中的状态图、协作图、活动图、序列图在系统分析中各起到了什么作用答状态图表示一个类的状态变化,例如订单的状态变化等,在实时系统中用的较多,也可以用于辅助设计用户界面;顺序图表示各个对象如何合作,一起完成一个USECASE,并可以验证和修正类图,协作图从另一个角度来完成这些事情,协作图也可以从顺序图生成。活动图可以用来表示USECASE的各条分支。6简述活动图和状态图的区别。答活动图ACTIVITYDIAGRAM是由状态图变化而来的,它们各自用于不同的目的。状态图着重描述了对象的状态变化以及触发状态变化的事件。但是,从系统任务的观点看系统,它是由一系列有序活动组成的,活动图是从活动的角度描述系统任务,并且可以描述系统任务中的并发活动。活动图描述了系统中各种活动的执行顺序,刻化一个方法中所要进行的各项活动的执行流程。活动图显示动作及其结果,着重描述操作实现中完成的工作以及用例或对象内部的活动。软件工程理论与实践习题答案16在状态图中状态的变迁通常需要事件的触发,而活动图中一个活动结束后将立即进入下一个活动。习题六答案1什么是软件复用答软件复用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的。2软件复用的层次可以分为哪几个级别答1代码的复用;2设计结果的复用;3分析结果的复用;4测试信息的复用。3生产者复用PRODUCTREUSE和消费者复用CONSUMERREUSE有何区别答生产者复用是指建立、获取或者重新设计可复用构件的活动。生产者复用中涉及到的活动包括复用的规划、领域分析、构件的开发、构件库的组织和管理。消费者复用是指使用可复用的构件建立新的软件系统的活动。消费者复用中涉及到的活动包括应用系统的规划、构件的检索和选择、应用系统中非复用部分的开发、应用系统的组装等。4什么是可复用构件相对于普通软件产品,对可复用构件有何特殊要求答可复用构件是指可以在多个软件系统的开发过程中被重复使用的软件产品。相对于普通软件产品,对可复用构件的特殊要求包括具有功能上的独立性与完整性、具有较高的通用性、具有较高的灵活性、具有严格的质量保证和具有较高的标准化程度。5基于构件的软件开发的优势是什么答基于构件的软件开发的优势包括可以显著地改善软件的质量和可靠性;可以极大地提高软件开发的效率;节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。6简述CORBA的对象管理体系的组成。答CORBA的对象管理体系由四个部分组成;这四个部分是对象请求代理、对象服务、公共工具和应用程序对象。7在EJB20规范中定义的EJB构件有哪些类型答在EJB20规范中定义的EJB构件包括以下四种类型无状态会话EJB构件、有状态会话EJB构件、实体EJB构件和消息驱动EJB构件。习题七答案一、选择题1软件测试的主要特点是AC。A软件测试的开销大B软件测试要依靠工具C软件不能进行“穷举”测试D软件测试要依靠人工2整体测试又称为组装测试,其主要内容包括CD。A对整体的性能进行测试B用白盒法设计测试用例进行测试C确定组装策略和次序D对组装过程进行测试3渐增式是将模块一个一个地连入系统,每连入一个模块C。软件工程理论与实践习题答案17A只需要对新连入的模块进行测试B都不需要再进行测试C要对新子系统进行测试D都要进行回归测试4静态测试是以人工的、非形式化的方法对程序进行分析和测试。常用的静态测试方法有BCD。A运行程序并分析运行结果B桌前检查与代码会审C数据流分析图D调用图5集成过程的原则是BC。A按照模块的大小集成B尽早测试包含I/O的模块C尽早测试关键模块D按照“输入处理输出”的次序进行集成6关于白盒法覆盖程度的论述中正确的是AB。A语句覆盖选择测试用例使程序中每条语句至少被执行一次B判定覆盖选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值C条件覆盖选择测试用例使每个条件都满足D条件组合覆盖将所有的判定条件都组合起来执行7软件测试的基本原则是ACD。A关键是注重选择高效的测试用例B选择尽可能多的测试用例C尽量不由程序设计者进行测试D充分注意测试中的群集现象8等价分类法的关键是。A确定等价类的边界条件B按照用例来确定等价类C划分等价类D确定系统中相同和不同的部分二、判断题1单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。2功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。3白盒法是一种静态测试方法,主要用于模块测试。4整体测试又称为逻辑覆盖测试,需要对系统模块的内部结构进行测试。()5在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。6发现错误多的模块,残留在模块中的错误也多。7在分析规范因、果的基础上画出因果图,再将其转换为有限项判断表,就容易得出测试用例。8系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。9有效性测试是在模拟环境或开发环境下运用黑盒法,验证软件特性是否与需求符合。10在发现错误后,则应按照一定的技术去纠正它,纠错的关键是“错误定位”。软件工程理论与实践习题答案18三、简答题1渐增式与非渐增式各有何优、缺点为什么通常采用渐增式答非渐增式是将所有的模块一次连接起来,简单、易行,节省机时,但测试过程中难于查错,发现错误也很难定位,测试效率低。渐增式是将模块一个一个地连入系统,每连入一个模块,都要对新系统进行测试。这种组装测试方案比较非渐增式,容易查出错误及进行错误定位,有利于查出模块接口部分的错误,因此测试效率高。因此通常采用渐增式。2自顶而下增值与自底而上增值各有何优、缺点答自顶而下增值优点能够尽早发现系统主控方面的问题。缺点无法验证桩模块是否完全模拟了下属模块的功能。无法尽早查出底层容易出错的复杂模块中的错误,所以导致过多的回归测试。自底而上增值优点驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。缺点只有当系统所有模块全部组装完成,才能看到系统实体,才能测试系统的主控功能。3等价分类法的基本思想是什么答根据程序的输入特性,将程序的定义域划分为有限个等价区段“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试。如果某个等价类的一个输入数据代表值测试中查出了错误,说明该类中其他测试用例也会有错误。4一般情况驱动模块比桩模块容易设计,为什么答因为驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需要模拟向被测模块传递数据,接收、打印从被测模块返回的数据的功能,较容易实现。而桩模块用于模拟那些由被测模块所调用的下属模块的功能,由于下属模块往往不止一个,也不止一层,同时由于模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系。同时为了模拟下层模块的不同功能,需要编写多个桩模块,而这些桩模块所模拟的功能是否正确,也很难进行验证。因此,驱动模块的设计显然比桩模块容易。5什么是测试和测试答测试是在开发机构的监督下,在确认测试阶段后期由个别用户对软件进行测试,目的是评价软件的FLURPS功能、局域化、可使用性、可靠性、性能和支持性,注重界面和特色。测试是由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性。习题八答案一、选择题1软件维护的类型有ABCD。软件工程理论与实践习题答案19A完善性维护B纠错性维护C适应性维护D预防性维护2各种软件维护的类型中最重要的是A。A完善性维护B纠错性维护C适应性维护D预防性维护3以下属于完善性维护的有BD。A解决开发是未能测试各种可能条件带来的问题B增加联机求助命令C缩短系统的应答时间,使其达到特定要求D为软件的运行增加监控设施4进行系统修改时可能会产生维护的副作用,它们可能有ACD。A修改数据的副作用B修改错误后,又引入了新的错误C修改代码的副作用D文档资料的副作用5确定可维护性的因素主要有BCD。A文档B可理解性C可修改性D可测试性6软件维护阶段所产生的文档主要有AB。A软件问题报告B软件修改报告C软件修改申请报告D测试报告7表达计划安排的主要工具有ABD。APERT图B甘特图CDFD图D进度表二、判断题1软件维护只需要校正性维护、适应性维护和完善性维护。2软件维护总工作量可用公式表示为MPKEXPDC。3生产性活动包括分析评价、修改设计、编写程序代码和设计约束。4改进程序的执行效率不会引入错误。5强调简明性的程序出错率低。6用面向对象方法开发的软件系统,可维护性好。三、简答题1为什么要进行软件维护答软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。一个中等规模的软件,如果其开发过程需要一二年时间,则它投入使用以后,其运行时间可能持续510年之久。在这个维护阶段中,人们需要着手解决开发阶段尚未解决的问题,同时,还解决维护工作本身所产生的问题。做好软件的维护工作不仅能够排除软件中存在的错误,使它能够正常工作,而且还可以使它扩充功能,提高性能,为用户带来新的效益。维护阶段的花费约占整个软件生命期花费的67。因此,应充分认识到维护现有软件的重要意义。2样防止维护的副作用答修改代码所产生的副作用一般可以在退化测试过程中对其造成系统的故障进行查明和纠正;完善设计文档资料可以限制修改数据的副作用,在文档中描述了数据结构,并提供了一种把数据元素、记录、文件以及其他结构与系统模块联系起来的交叉对照表;在软件系统再次交付使用之前,对整个软件配置进行复审,将能大大减少文档资料的副作用。3什么是软件的可维护性可维护性度量的特性是什么答软件的可维护性是指维护人员为纠正软件系统出现的错误或缺陷,以及为满足新的要求而理解、修改和完善软件系统的难易程度。可维护性是所有软件系统都应具备的特点。在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。软件工程理论与实践习题答案20可维护性度量的特性主要有可理解性、可测试性和可修改性。可理解性被定义为人们通过阅读源代码和文档了解软件系统的结构、接口、功能、内部过程以及如何运行的难易程度;可测试性被定义为诊断和测试系统的难易程度;可修改性被定义为修改软件系统的难易程度;它们是密切相关的。4高可维护性的方法有哪些答在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。习题九答案1什么是软件开发工具按照功能进行分类,可以将软件开发工具分成哪几大类答软件开发工具是用来辅助软件的开发、维护、管理和支持等活动的计算机程序系统。它的目的是为了提高软件生产效率和改进软件质量,为软件开发活动提供自动化的开发工具和环境。软件开发工具可以分为以下几种1编程工具;2分析和设计工具;3软件维护工具;4版本控制工具;5项目管理工具;6文档管理工具;7软件配置管理工具;8测试管理工具。2软件开发工具的集成可以分成哪几个层次答软件开发工具的集成可分成如下层次1平台的集成;2界面的集成;3数据的集成。3集成化的CASE环境相对于彼此独立的软件开发工具有哪些明显的优势答集成化的CASE环境
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年耕地租赁合同
- 广告设备购销合同2024年
- 合伙企业协议格式
- 房地产代理销售协议书2024年
- 服装制造商合作合同
- 2024年二手房屋买卖合同范例
- 担保合作协议填写指南
- 合伙餐馆协议书样本专业
- 装修预算合同范本2024年
- 2024设备搬迁运输合同
- 印章启用登记表
- “珍爱生命,我的责任”主题班会课件
- 幼儿园《塑料袋别捂口鼻》
- JJG 880-2006 浊度计检定规程-(高清现行)
- 铁矿石全铁含量的的不确定度评定
- 思维导图模板彩色版
- 自动监测数据标记及电子督办规则考试题
- 合页式包装盒-开盖机构的设计与运动分析
- 石材外墙及铝合金门窗专项施工方案(169页)
- 山体爆破施工方案(审核版)
- 福建省义务教育教改示范性建设学校申报表
评论
0/150
提交评论