软件工程导论试题集修订.pdf
《软件工程导论试题集修订.pdf》由会员分享,可在线阅读,更多相关《软件工程导论试题集修订.pdf(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章:软件工程学概述一.填空题1.计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于原理和理论、而软件工程侧重于如何建造一个软件系统2.计算机程序及其说明程序的各种文档称为文件;计算任务的处理图像对象和处理规则的描述称为程序;有关计算机程序功能、设计、编制、使用的文字或图形资料称为文档;3.软件开发环境是相关一组软件工具的集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成的;这一术语的英文是 ComputerAidedSoftwareEngineering;5.平台集成是指工具运行在相同的硬件/操作系统平台上;数据集成是指工具使用共享数据模型来操作;表示集成是指工具提供
2、相同的用户界面;6.根据支持的范围,CASE 工具可分为窄支持、较宽支持和一般支持工具;7.软件危机的主要原因有软件本身的特点和缺乏好的开发方法和手段;8.增量模型是一种非整体开发的模型;软件在该模型中是“逐渐”开发处理的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题;或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品;9.结构化方法总得指导思想是自顶而下逐步求精;它的基本原则是功能的分解与抽象;它是软件工程中最早出现的开发方法,特别适用于数据处理领域的问题;10.面向对象开发方法包括面向对象分析、面向对象设计、面
3、向对象实现、三部分;11.瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型;它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、_编码、测试、维护,它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落;12.瀑布模型本质上是一种线性顺序模型;13.构造原型时,必须注意功能性能取舍,忽略一切暂时不关心的部分;14.属性指的是类中对象所具有的性质数据值;不同对象的同一属性可以具有相同或不同的属性值;15.结构化方法和原型化方法是软件开发中常使用的两种方法,在实际的应用中,它们之间的关系表现为相互补充;二.判断题1.瀑布模型的存在问题是缺乏灵活性;2.软件是一种
4、逻辑产品;3.软件工程学科出现的主要原因是程序设计方法学的影响;4.有关计算机程序功能、设计、编制、使用的文字或图形资料称为文档;开放式工作台或者提供控制集成机制,或者可剪裁,其数据集成或协议是独立的;6.在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是版本控制工具;7.平台集成是指工具运行在相同的硬件/操作系统平台上;8.软件生存周期模型有多种,功能模型是软件生存周期模型;9.从结构化的瀑布模型看,在软件生命周期中得 8 个阶段中,详细设计阶段出错,对软件的影响最大;10.软件生存周期中时间最长的阶段是需求分析阶段;11.软件开发的结构化生命周期方法将软件生命周期划
5、分成需求分析、功能定义、系统设计;12.增量模型是一种整体开发模型;13.构造模型时,主要考虑全部功能;14.瀑布模型本质上是一种线性迭代模型;15.快速原型思想是在研究概要设计阶段的方法和技术中产生的;三.名词解释1.软件工程;软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科;2.软件生命周期模型;软件生命周期模型是描述软件开发过程中各种活动如何执行的模型;3.经济可行性;进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发;4.社会可行性;要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、
6、操作方式是否可行;5.投资回收期;投资回收期就是使累计的经济效益等于最初的投资费用所需的时间;6.结构冲突;输入数据与输出数据结构找不到对应关系的情况,称为结构冲突;7.模块化;把程序划分成独立运行且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求;8.对象;描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体;9.白盒测试;白盒测试又叫做结构测试,把程序看成装在一个透明的白盒子里,按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作;10.耦合;耦合是对一个软件结构内各个模块之间互连程
7、度的度量;11.内聚;内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展;12.系统流程图;系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的信息流动情况;13.独立路径;独立路径是指包括一组以前没有处理的语句或条件的一条路径;从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径;14.喷泉模型;喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程;15.变换模型;变换模型是一种适合于形式化开发方法的模型,从软件需求形式化说明开始经过一系列变换,最终得到系统的目标程序;
8、此模型必须有严格的数学理论和形式化技术的支持,尚处于研究和实验阶段;四.简答题1.请简要说明可行性分析的内容;技术可行性:技术分析说明使用现有系统是否能完成本系统的开发;经济可行性:经济分析应着重两个因素“成本和收益”,应向管理层提供有关这两方面足够的操作可行性:系统的操作方式是否能够在组织内得到认同,是否违背有关法律、制度、道德、信息;如果项目的收益大于成本,则此项目可以说是经济上可行;文化等因素;2.请写出六种软件 CASE 工具;1PowerDesigner 分析设计工具或软件建模工具,2RationalRose 分析设计工具或软件建模工具,3WinRunner测试工具,4MSProje
9、ct项目管理工具,5MSVisio软件开发绘图工具、6VSS软件配置工具;3.什么是软件工程软件工程的目标是什么软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对中所选方法的研究;目标:1 合理预算开发成本,付出较低的开发费用、2 实现预期的软件功能,达到较好的软件性能,满足用户的需求、3 提高软件的可维护性,降低维护费用、4 提高软件开发生产率,及时交付使用;4.什么是结构化分析方法该方法使用什么描述工具结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理;结构化分析方法用抽象模型的
10、概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止描述工具:1 系统流程图 2 数据流程图 3 数据字典 4IPO 图 5 层次方框图 6 实体关系图 7 状态变迁图5.软件设计的基本原理包括什么模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程;每个模块完成一个特定的子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能;模块化是软件解决复杂问题所具备的手段;抽象:是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息过程或
11、数据,对于不需要这的细节,不考虑其他因素;软件工程中每一步都是对软件解决方法的抽象层次的一次细化;些信息的其他模块来说,是不能访问的;通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制;模块独立性;指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单;衡量模块独立性有两个标准耦合性和内聚性,可判断设计方案的优劣;6.简述容错技术的四种主要手段,并解释结构冗余:包括静态冗余、动态冗余和混合冗余;信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息;时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响;冗余附加技术:指为实现上述冗余技术所需的资
12、源和技术;7.软件生命周期划分成哪些阶段软件生命周期各阶段软件生命周期由软件定义、软件开发和运行维护三个时期组成;1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试;3.维护时期:主要任务是使软件持久地满足用户的需要;8.简要说明软件危机产生的原因1.软件缺乏可见性,导致对软件开发成本,工作量,速度的估计不准确;2.对用户要求没有完整准确的认识,不能适应用户的需求;3.缺乏对软件产品和开发过程的质量控制,导致软件产品的质量往往靠不住;4.在实践过程中或多或少的采用了错误的方法和技术;5.开发和维护过程中文档化工作做的不好,缺
13、乏配置管理;五.综合题解答:六.论述题方案 11.从软件过程中选择 3 种说明其名称、示意图以及特点;1.螺旋模型:螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险;理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型瀑布模型:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落;增量模型又称演化模型;在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成;2.试
14、论述软件工程方法学的 3 个要素;通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型;三要素:方法、工具和过程;3.试论述软件生命周期模型瀑布模型:优点:1.可强迫开发员采用规范的方法 2.严格地规定了每个阶段必须提交的文件 3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;缺点:传统的瀑布模型过于理想化,是由文档驱动的;快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试
15、;户反馈意见的方法,获取用户真正的需要;以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击;维护只是螺旋模型中另一个周期;4.评价软件工具的原则1 易用性:友好的用户界面,用户乐于使用;2 对开发方法的支持:能满足预期的任务和功能需求,且能支持完成该任务所遵循的方法学;3 稳健性:具备自检测机制,即使在故障情况下也不会导致严重后果;4 性能:能使资源得到充分有效的利用;5 工具结构柔性:工具结构是柔软的、可修改的和可扩充的;5.软件生命周期划分成哪些阶段软件生命周期各阶段软件生命周期由软件定义、软件开发和运行维护三个时期组成;1.软件定义时期划分为三个阶段:
16、问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试;3.维护时期:主要任务是使软件持久地满足用户的需要;6.什么是软件过程它与软件工程方法学有何关系软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型7.试论述可行性研究的任务1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性:8.试论述需求分析的准则1、必须并描述的信息域,根据这条准则应该建立数据模型;2、必须
17、定义软件应完成的功能,这条准则要求建立功能模型;3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型;4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节;9.试论述需求分析的任务1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修正系统开发计划;10.试论述应该从哪些方面研究目标系统的可行性技术上的可行性使用现有的技术能实现这个系统吗社会、政策允许的可行性11.在软件开发过程中必须遵循下列软件工程原则;抽象:采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解;信息隐蔽:遵循信息
18、封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节模块化:按模块划分系统的体系结构,使得各模块间有良好的接口;这样有助于信息隐蔽和抽象,局部化:按抽象数据类型思想及问题域中的概念来建立模块,确保模块之间低耦合,模块内部高确定性:软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的;这有助于人们之一致性:强调软件开发过程的标准化、统一化;包括文档格式的一致,工作流程的一致,内、外完备性:软件系统不丢失任何重要成分,可以完全实现系统所要求功能;可验证性:开发大型的软件系统需要对系统自顶向下、逐层分解;系统分解应遵循系统易于检隐藏在模块内部,使用者只能通过模块接口访问模块中封装
19、的数据;有助于表示复杂的系统;内聚;这有助于控制解的复杂性;间的沟通,保证整个开发工作协调一致;部接口的一致,系统规格说明与系统行为的一致等;经济上的可行性这个系统的经济效益能超过它的开发成本吗 投资与效益操作可行性系统的操作方式在这个用户组织内行得通吗查、测试、评审的原则,以确保系统的正确性;12.软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素 试说明之;软件工程包括三个要素:方法、工具和过程;软件工程方法为软件开发提供了“如何做”的技术;它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等;软件工程方
20、法常采用某一种特殊的语言或图形的表达方法及一套质量保证标准;软件工具为软件工程方法提供了自动的或半自动的软件支撑环境;目前,已经推出了许多软件工具,已经能够支持上述的软件工程方法;特别地,已经有人把诸多的软件工具集成起来,使得一种工具产生的信息可以为其它的工具所使用,这样建立起一种被称之为计算机辅助软件工程 CASE 的软件开发支撑系统;CASE 将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境;软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的;过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需
21、要的管理、及软件开发各个阶段完成的里程碑;13.什么是 CASECASE 工具有哪些分类CASE 是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发;从学术研究角度讲,CASE 是多年来在软件开发管理、软件开发方法、软件开发环境和软件工具等方面研究和发展的产物;CASE 把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸引了 CAD 计算机辅助设计、软件工程、操作系统、数据库、网络和许多其它计算机领域的原理和技术;因而,CASE 领域是一个应用集成和综合的领域;从产业角度讲,CASE 是种类繁多的软件开发和系统集成的产品及软件工具的集合;CASE 分类:
22、CASE 技术种类 CASE 系统所涉及到的技术有两类:一类是支持软件开发过程本身的技术;另一类是支持软件开发过程管理的技术;从 CASE 系统产生方式来看,还有一种特殊的 CASE 技术,即元CASE 技术;他是生成 CASE 系统的生成器所采用的技术;该生成器可用来创建支持软件开发过程活动及过程管理的 CASE 系统;CASE 工具的分类对 CASE 工具分类的标准可分为:功能;功能是对软件进行分类的最常用的标准;支持的过程;根据支持的过程,工具可分为设计工具、编程工具、维护工具等;支持的范围;根据支持的范围,可分为窄支持、较宽支持和一般支持工具;窄支持指支持过程中特定的任务,较宽支持是指
23、支持特定过程阶段;一般支持是指支持覆盖软件过程的全部阶段或大多数阶段;1993 年,Fuggetta 根据 CASE 系统对软件过程的支持范围,提出 CASE 系统可分为三类:支持单个过程任务的工具;工具可能是通用的,或者也可能归组到工作台;工作台支持某一过程所有活动或某些活动;他们一般以或多或少的集成度组成工具集;环境支持软件过程所有活动或至少大部分;他们一般包括几个不同的工作台,将这些工作台以某种方式集成起来;14.软件工程标准化的意义是什么都有哪些软件工程标准软件工程标准化可以为软件工程各个阶段的活动提供统一的行动规范和衡量准则,使得各种工作都能有章可循;软件开发环境是指在计算机的基本软
24、件的基础上,为支持软件的开发而提供的一组工具软件系统;具体地说,软件开发环境是一组相关工具的集合;这些相关工具按一定的开发方法或一定开发处理模型组织起来的,这些相关工具支持整个软件生存期的各阶段或部分阶段;软件开发环境的发展阶段:170 年代,软件开发与设计方法出现了结构化分析技术的一整套相互衔接的 SA-SD 的方法学;与软件工程标准根据其制定机构与适用范围,可分为:1、国际标准2、国家标准3、行业标准4、企业规范5、项目课题规范15.什么是软件开发环境 请列出其发展情况;此相适应的计算机辅助软件工程技术则主要由开发孤立的软件工具而逐步向程序设计环境的开发和使用方向发展,出现了第一代的基于正
25、文的 CASE 工具;280 年代中期与后期,主要是实时系统设计方法,以及面向对象的分析和设计方法的发展,它克服了结构化技术的缺点;在这期间开发了第二代的 CASE 工具,其特点是支持使用图形表示的结构化方法,如数据流图与结构图;其开发环境表现在提高环境中工具的集成性方面,如集成的项目支持环境;380 年代后期和 90 年代初期出现了基于信息工程 CASE技术,这种环境集成了用于项目计划、490 年代出现一系列集成的 CASE 软件产品,用以实现需求管理、应用程序分析设计和建模、编分析、设计、编程、测试和维护的一个工具箱的集合;码、软件质量保证和测试、过程和项目管理及文档生成管理等软件开发工作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 试题 修订
限制150内