《软件工程》习题集2_第1页
《软件工程》习题集2_第2页
《软件工程》习题集2_第3页
《软件工程》习题集2_第4页
《软件工程》习题集2_第5页
已阅读5页,还剩55页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程习题集赵绪辉渤海大学信息科学与工程学院2005年9月I目录一软件与软件工程1二软件项目管理3三需求分析5四面向对象的需求分析7五软件设计10六程序设计语言和编码12七软件测试14八软件维护16综合试卷一17综合试卷二20综合试卷三23附参考答案26一软件与软件工程参考答案26二软件工程管理参考答案28三需求分析参考答案29四面向对象的需求分析参考答案31五软件设计参考答案36六程序设计语言和编码参考答案38七软件测试参考答案40八软件维护参考答案42综合试卷一参考答案及评分标准44综合试卷二参考答案及评分标准46综合试卷三参考答案及评分标准48一软件与软件工程一、选择题1软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5下列属于面向对象开发方法的是()A、BOOCHB、UMLC、COADD、OMT6软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。B、克服软件危机。C、作好软件开发的培训工作。D、以较低的成本开发出高质量的软件。二、判断题1软件就是程序,编写软件就是编写程序。2瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。3结构化方法的工作模型是使用螺旋模型进行开发的。4结构化方法和JSP方法都不适合于大型软件的开发5原型化开发方法包括生成原型和实现原型两个步骤。6面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。7软件危机的主要表现是软件的需求量迅速增加,软件价格上升。8软件工具的作用是为了延长软件产品的寿命。9软件工程过程应该以软件设计为中心,关键是编写程序。10RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。三、简答题1软件产品的特性是什么2软件发展有几个阶段各有何特征3什么是软件危机其产生的原因是什么4什么是软件生存周期模型它有哪些主要模型5有哪些主要的软件开发方法6软件生命期各阶段的任务是什么二软件项目管理一、选择题1、软件工程管理的对象是()A、软件开发人员B、软件工程项目C、软件开发过程D、软件开发速度2、以下对软件工程管理的任务和目标最准确的描述是()A、明确软件开发项目的工作范围、可能遇到的风险、需要的资源;B、明确软件开发中要实现的任务和需经历的里程碑;C、明确所需的工作量以及进度安排;D、以上所有答案3、在软件管理资源要求中,最为重要的、起决定性的资源是以下哪种资源()A、硬件资源B、软件资源C、人力资源D、软件复用性及软件部件库4、开发一个软件工程的第一部是()A、可行性研究B、组织开发人员C、购买开发工具D、开发任务指定5、可行性报告中不包括一下哪个方面()A、技术上的可行性B、经济上可行性C、人力的可行性D、经济上的可行性6、影响软件开发成本估算的因素不包括以下那项()A、软件人员业务水平B、软件开发规模及复杂度C、开发所需时间D、开发所需硬件资源7、自底向上的估计法的特点是()A、简单、工作量小、误差大B、精度高,但缺少子任务(模块)间的联系C、估算较精确,但区分类比较困难D、复杂、不可行,一般不采用此种方法8、对一个软件工程来说,占总工作量的百分比最大的工作是()A、需求分析B、软件设计C、编码工作D、测试和调试工作9、软件质量度量的方法包括()A、精确度量B全面度量C、简易度量D、以上所有答案10、CMM表示()A、软件过程成熟度模型B、软件过程工业化控制C、国际软件质量认证D、软件统一性标准。二、判断题1、软件工程管理是对软件项目的开发管理,是对整个软件生存期的所有活动进行管理。2、软件工程管理的主要任务有软件可行性分析与成本估算、软件生产率及质量管理、软件售后管理3、直接影响软件开发风险的因素是成本估算4、软件开发配备人员的基本原则是重质量、重数量、重培训5、“简易度量”不是软件质量度量的方法6、CMM是指导软件开发的一种面向对象的新技术7、CMM将软件过程的成熟度分为以下五个级别初始级、可重复级、已定义级、已管理级和优化级8、CMM对开发一个软件所做的基本要求是“有章可循、有章必循”三、简答题1简述一个成熟的软件机构应具有的特点2、CMM将软件过程的成熟度分为哪几个级别三需求分析一、选择题1需求分析的主要目的是()A、系统开发的具体方案B、进一步确定用户的需求C、解决系统是“做什么的问题”D、解决系统是“如何做的问题”2需求分析的主要方法有()A、形式化分析方法B、PAD图描述C、结构化分析(SA)方法D、OOA法3面向对象的分析方法主要是建立三类模型,即()。、系统模型、ER模型、应用模型、对象模型、动态模型、应用模型、模型、对象模型、功能模型、对象模型、动态模型、功能模型4法的主要描述手段有()、系统流程图和模块图、图、数据词典、加工说明、软件结构图、加工说明、功能结构图、加工说明5画分层图的基本原则有()。、数据守恒原则B、分解的可靠性原则C、子、父图平衡的原则D、数据流封闭的原则6在ER模型中,包含以下基本成分()。A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、实体、属性、联系7画DFD图的主要目的是()A、作为需求分析阶段用户与开发者之间交流信息的工具。B、对系统的数据结构进行描述。C、对目标系统的层次结构进行描述。D、作为分析和设计的工具。8数据字典是数据流图中所有元素的定义的集合,一般由以下4类条目组成()。A、数据说明条目、控制流条目、加工条目、数据存储条目B、数据流条目、数据项条目、文件条目、加工条目C、数据源条目、数据流条目、数据处理条目、数据文件条目D、数据流条目、数据文件条目、数据池条目、加工条目9在需求分析阶段主要采用图形工具来描述的原因是()。A、图形的信息量大,便于描述规模大的软件系统。B、图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重要的细节。C、图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用户之间达成一致的需求。D、图形比文字描述简单、形象二、判断题1在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。2法是面向数据流,建立在数据封闭原则上的需求分析方法。3法既是需求分析方法又是软件设计方法。4在面向对象的需求分析方法中,建立动态模型是最主要的任务。5加工小说明是对系统流程图中的加工进行说明。6判定表的优点是容易转换由计算机实现,缺点是不能够描述组合条件。7需求分析的主要方法有SD法、OOA法及HIPO法等。8分层的DFD图可以用于可行性分析阶段,描述系统的逻辑结构。9信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是ER图。10用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。三、简答题1什么是需求分析需求分析阶段的基本任务是什么2M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记副总裁不喜欢报告长度超过一页(B5)。3如何画分层数据流图4加工小说明有哪些描述方法5常用的软件需求分析的方法有哪些四面向对象的需求分析一、选择题1面向对象程序设计的基本机制()A继承B消息C方法D结构2下列属于面向对象的要素的()A分类性B抽象C共享D封装3下列选项中属于面向对象开发方法的有()ABOOCHBCADCCOADDOMT4下列属于COAD方法中面向对象的分析模型的层次有()A主题层B对象层C应用层D接口层5一个属性依其特征,其类型有()A描述型B定义型C派生型D参考型6下列在面向对象分析的时候采用的模型有()A对象模型B动态模型C静态模型D功能模型7状态是对象属性的值的一种抽象,它的性质有()A时间性B持续性C有序性D有穷性8数据流图中的处理必须用对象中的操作来实现常见的操作有()A查询B动作C活动D访问9建立继承关系时所采用的方式有()A自顶向下B从内到外C自底向上D从复杂到简单10对象是人们要研究的任何事物主要的对象类型有()A有形实体B作用C事件D性能说明11下列不是常见的模型元素间的关系有()A关联B聚合C依赖D笔记12UML具有扩展性,常见的扩展机制有()A修饰B版类C加标签值D约束13UML语言支持的建模方式有()A静态建模C动态建模C模块化建模D功能性建模14下列各种图可用于动态建模的有()A状态图B类图C序列图D活动图15下列属于状态的组成部分的有()A名称B活动C条件D事件16UML中包括的事件有()A条件成真B收到另一对象的信号C收到操作调用D经过指定时间间隔17属性的可见性有()A公有的B私有的C私有保护的D保护的18用例之间的关系有()A友元B扩展C使用D组合19应用于通用化约束的方式有()A完整B不相交C不完整D覆盖20消息的类型有()A同步B异步C简单D复杂二、判断题1面向对象的的方法是以类作为最基本的元素,它是分析问题解决问题的核心。2类是指具有相同或相似性质对象的抽象,对象是抽象的类,类的具体化就是对象。3继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系。4多态性增强了软件的灵活性和重用性,允许用更为明确,易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。5面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。6面向对象的设计主要目标是提高生产效率,提高质量和提高可维护性。7对象模型表示了静态的,结构化的,系统数据性质,描述了系统的静态结构,她是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。8面向对象的分析是用面向对象的方法对目标系统的问题空间进行理解,分析和反映。通过对象层次结构的组织确定解空间中应存在的对象和对象层次结构。9类的设计过程确定类,确定关联类,确定属性,识别继承关系。10复用也叫重用或再用,面向对象技术中的“类”,是比较理想的可重用软构件,有三种重用方式实例重用,继承重用,多态重用。11主题是一种关于模型的抽象机制,它是面向对象模型的概貌,也是关于某个模型要同时考虑和理解的内容,主题起一种控制作用。12面向对象的分析由对象,结构,继承性和基于消息的通信构成。13支持继承性是面向对象程序设计语言和传统程序设计语言在语言机制方面的根本区别。14面向对象的分析过程主要包括三项内容理解,表达和验证。15面向对象的设计的主要目标是提高生产效率,提高质量和提高可维护性。16UML是由图和元模型组成的。UML的语义是定义在一个四层建模概念框架中的,这四个层次分别是元元模型层,元模型层,模型层,用户模型层17UML是一种建模语言,是一种标准的表示,是一种方法。18元素是UML的基本构成单位,它包括模型元素和视图元素19关系是模型元素的抽象子类型。关系的责任是在元素实例中建立语义连接。除非由子类型另外指定,与所有连接相同元素实例的关系实例关联的名字实例必须是唯一的20角色是关联角色实例到属性实例集合的共享聚集。角色的责任是指定如何在关联实例的一端将类型实例的实例划分21类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。22用例模型的基本组成部件是用例,角色和系统23用例之间有扩展,使用,组合,三种关系24序列图描述对象是如何交互的并且将重点放在消息序列上25活动图显示动作及其结果。着重描述操作实现中所完成的工作以及用例实例或类中的活动。三、简答题1与传统程序设计模式中的过程调用相比,消息传递机制有何本质区别2阐述面向对象的特征,并做简要的解释3COAD方法严格区分了面向对象分析OOA和面向对象设计OOD。OOA方法利用五个层次和活动定义和记录系统行为,输入和输出。请简述这五个层次4面向对象程序设计有哪些优点5面向对象方法与结构化方法比较。6当重要的对象被发现后,通过一组互相关联的模型详细表示类之间的关系和对象的行为,这些模型从四个不同的侧面表示了软件的体系结构静态逻辑、动态逻辑、静态物理和动态物理。试描述一下这四种特性。7如何绘制活动图8简述四种UML依赖关系异同。9为什么要使用UML10简述UML实际建模过程11在UML中的状态图,协作图,活动图,序列图在系统分析中各起到了什么作用12简述关联和依赖的区别。五软件设计一、选择题1模块的基本特征是()A、外部特征(输入/输出、功能)B、内部特征(输入/输出、功能)C、内部特征(局部数据、代码)D、外部特征(局部数据、代码2SD方法的设计总则是()A、程序简洁、操作方便B、结构清晰、合理C、模块内聚性强D、模块之间耦合度低3软件设计的主要任务是()A、将分析阶段获得的需求说明转换为计算机中可实现的系统B、完成系统的数据结构和程序结构设计C、完成模块的编码和测试D、对模块内部的过程进行设计4设计阶段应达到的目标有()A、提高可靠性和可维护性;B、提高应用范围;C、结构清晰;D、提高可理解性和效率5HIPO图由()A组成直观目录表B、PAD图C、IPO图D、详细的IPO图6从工程管理的角度来看,软件设计分两步完成()A、1、系统分析2、模块设计B、1、详细设计2、总体设计C、1、模块设计2、详细设计D、1、总体设计2、详细设计7用户界面设计的任务包括()A、确定用户界面类型B、建立任务模型C、建立用户模型D、建立功能模型8模块独立性准则由以下定性指标来衡量()、分解度、耦合度、屏蔽性、内聚性二、判断题1划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好2在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用3信息隐蔽原则有利于提高模块的内聚性4中心变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图5SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应6所谓结构冲突,是指输入数据与输出数据之间很少或没有结构上的对应关系。通常解决的办法是构造一个或者多个中间结构,在输入和输出结构之间进行转换7HIPO图是以功能、功能完备性准则逐层分解的三、简答题1模块内联系和模块间联系有哪些种类2照“降低块间联系,提高块内联系”的设计总则对模块进行修改,具体从哪些方面进行改进六程序设计语言和编码一、选择题1程序设计语言可以分为()A面向过程的语言B、机器语言C、高级语言D、汇编语言2程序效率包括()几个方面的内容。A、代码效率B、运行效率C、存储效率D、/效率3SP方法中的基本控制结构有()A、顺序结构B、选择结构C、重复结构D、GOTO结构4内部文档可用注释语言书写,注释语言分为()A、序言性注释B、描述性注释C、功能性注释D、状态性注释5为使程序中数据说明更易于理解和维护,必须遵循以下原则()。A、数据说明的次序应当规范化;B、一个语句说明多个变量时,各变量名按字母顺序排列;C、对于复杂的数据结构,要加注释,说明在程序实现时的特点;D、定义变量名应按字母顺序排列。6源程序的效率与()阶段确定的算法的效率直接有关。A、概要设计B、总体设计C、单元设计D、详细设计7在详细设计翻译转换成源程序代码后,算法效率反映为对程序的哪几个方面的要求()A、读写速度B、代码长度C、存储容量D、执行速度8提高程序效率的根本途径在于()A编程时对程序语句做调整;B选择良好的设计方法;C使程序最大限度的简洁;D选择良好的数据结构与算法。二、简答题1编码阶段的主要任务是什么2结构化程序设计的优点是什么如何在编码中使用这种方法3为何要进行程序的注释应怎样进行程序的注释4什么是应该提倡的编程风格为了有良好的设计风格,应注意哪些方面的问题5编码阶段的主要任务是什,应交付的结果是什么6SP法的自顶向下,逐步求精方法的优点有哪些7为了有良好的设计风格,应注意哪些方面的问题8怎样评价程序的执行效率它与程序清晰性的关系是怎样的9假定需要编一个求解一元二次方程根的子程序,加入到现有的子程序库中,供其他程序员使用。要求1)为该子程序写一个序言性注释;2)用PASCAL语言或其它语言写出这个子程序(要把根的性质,如实根、复根、降为一次方程等等有区别地通知调用者),并加上描述性注释。七软件测试一、选择题1软件测试的主要特点是()A、软件测试的开销大B、软件测试要依靠工具C、软件测试要验证软件正确性D、软件不能进行“穷举”测试2整体测试又称为组装测试,其主要内容包括()A、对整体的性能进行测试B、设计测试用例进行功能测试C、设计测试用例进行测试D、对组装过程进行测试3渐增式是将模块一个一个的连入系统,每连入一个模块,()A、只需要对新连入的模块进行测试。B、都不需要再进行测试。C、都要对新子系统进行测试。D、都要进行回归测试。4静态测试是以人工的、非形式化的方法对程序进行分析和测试。常用的静态测试方法有()A、状态图B、流程图C、数据流分析图D、调用图5集成过程的原则是()A、尽量将所有模块集成到系统中B、尽早测试关键模块C、集成尽早测试关键模块尽早测试包含I/O的模块D、按照输入处理输出的次序进行集成6关于白盒法覆盖程度的论述中正确的是()A、语句覆盖选择测试用例使程序中每条语句至少被执行一次B、判定覆盖选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值。C、条件覆盖选择测试用例使每个条件都满足。D、条件组合覆盖将所有的判定条件的都组合起来执行。7软件测试的基本原则是()A、关键是注重测试用例的选择B、选择尽可能多的测试用例C、尽量不由程序设计者进行测试D、充分注意测试中的群集现象8等价分类法的关键是()A、选择测试用例B、找出等价类的边界条件C、划分等价类D、通过输入条件,确定无效等价类二、判断题1单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。2功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。3白盒法是一种静态测试方法,主要用于模块测试。4软件测试的目的是进一步对程序进行调试,发现错误。5在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。6白盒法是一种静态测试方法,主要用于模块测试。7在分析规范(因、果)的基础上画出因果图,再将其转换为有限项判断表,就容易得出测试用例。8系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。9有效性测试是在模拟的环境(或就是开发环境下)下运用黑盒法,验证软件特性是否与需求符合。10在发现错误后,则应按照一定的技术去纠正它。纠错的关键是“错误定位”。三、简答题1渐增式与非渐增式各有何优、缺点为什么通常采用渐增式2自顶而下增值与自底而上增值各有何优、缺点3等价分类法的基本思想是什么4一般,驱动模块比桩模块容易设计,为什么5什么是测试和测试八软件维护一、选择题1软件维护的类型有A完善性维护B纠错性维护C适应性维护D预防性维护2各种软件维护的类型中最重要的是()。A完善性维护B纠错性维护C适应性维护D预防性维护3以下属于完善性维护的有()。A解决开发是未能测试各种可能条件带来的问题;B增加联机求助命令;C缩短系统的应答时间,使其达到特定要求;D为软件的运行增加监控设施。4进行系统修改时可能会产生维护的副作用,它们可能有()。A修改数据的副作用B修改错误后,又引入了新的错误C修改代码的副作用D文档资料的副作用5确定可维护性的因素主要有()。A文档B可理解性C可修改性D可测试性6软件维护阶段所产生的文档主要有()。A软件问题报告B软件修改报告C软件修改申请报告7表达计划安排的主要工具有()APERT图B甘特图CDFD图D进度表二、判断题1软件维护只需要校正性维护、适应性维护和完善性维护2软件维护总工作量可用公式表示为MPK;EXP(DC)3生产性活动包括分析评价、修改设计、编写程序代码和设计约束4改进程序的执行效率不会引入错误5强调简明性的程序出错率低6用面向对象方法开发的软件系统,可维护性好三、简答题1为什么要进行软件维护2怎样防止维护的副作用3什么是软件可维护性可维护性度量的特性是什么4高可维护性的方法有哪些综合试卷一试卷总分100分答卷时间110分钟试卷类型A一、单项选择题(每小题的四个备选答案只有一个正确答案,每题1分,共10分)1在问题分析阶段,用户需求具有()A模糊性,全面性,一致性B全面性,精确性,一致性C模糊性,歧义性,不一致性D全面性,精确性,不一致性2数据流图的绘制应采用()A问题分解、逐步求精的方法B模块化方法C原型化方法D结构化方法3在软件的生存期模型中,软件开发不包括()A概要设计B组装测试C实现D维护4软件复杂性度量模型应遵循下列基本原则()A软件复杂性与程序大小的关系不是线性的B控制结构复杂的程序较复杂C数据结构复杂的程序较复杂D以上A,BC均对5下面内聚度最高的是()A过程性内聚B功能性内聚C逻辑性内聚D偶然性内聚6在将需求规格说明书提交给设计阶段之前,必须进行A修改B追踪C调试D评审7软件设计的主要任务是()A根据需求规格说明导出系统的实现方案B实现用户需求的一致化,精确化,安全化C编程序D写代码8下面哪一类是白盒测试的基本技术()A基本路径测试B等价分类法C边界值分析法D对比测试法9软件生存周期模型不包括A瀑布模型B、对象模型C、增量模型D、喷泉模型10功能点度量的优点是()A适用于开发的各个时期B只适用于过程语言C与程序设计语言无关E不涉及主观因素二、填空题(每题2分,共30分)1计算机软件是与计算机系统操作有关的程序、规程、规则及任何与之有关的_和_。2程序设计说明书由系统分析员编写,交给_使用。3影响编码质量的因素包括编程语言,_和_。4白盒测试包括_和_两种技术。5软件生存周期的软件定义分为_和_两个阶段。6软件维护的内容包括纠错性维护,适应性维护、改善性维护和_。7螺旋模型是生存周期模型与原型的结合,不仅体现了两个模型的优点,而且还增加了新的成分_。8软件工程的定量描述离不开度量、测量和_3个基本概念。91991年8月,美国卡内基梅隆大学软件工程研究所公开发布CMM即_V10。10需求分析可分为问题分析、_和_3个阶段。11软件开发阶段由_、_和测试3个基本活动组成。12无论基于哪一种数据管理方法,数据持久存储服务的设计都包括定义_和定义_两部分。13_是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。14可以用三种抽象方法开发软部件功能抽象、_、_。15快速原型方法的关键在于如何快速地实现可运行的原型,以便尽快提交_确认,然后再进行改进。三、名词解释(每小题4分,共16分)1软件工程2软件需求3软件测试4软件维护四、简答题(每小题5分,共30分)1软件开发过程中必须遵循哪些软件工程原则至少列出5条并简述之2面向对象方法学包含哪些核心概念简述之3写出至少5种内聚度。4SD方法能方便地将数据流图转换为软件结构,其过程分哪5步5UML的消息类型有几种,哪几种6瀑布模型的缺陷有哪些五、应用题(1题6分,2题8分,共14分)1针对“高校学生学籍成绩管理系统”至少列出六项系统需求2画出“高校学生学籍成绩管理系统”的顶级和第一级数据流图,并转化为相应的程序结构。综合试卷二试卷总分100分答卷时间110分钟试卷类型B一、选择题(每小题的四个备选答案只有一个正确答案,每题1分,共10分)1需求分析报告的任务是()A正确评价当前系统B彻底了解管理方法C是用户接受分析人员的观点D弄清用户的要求,确定待开发软件的功能要求,性能需求和运行环境约束。2系统软件和应用软件总称计算机的()A软件系统B操作系统C数据库管理系统D语言编译系统3在数据流图中的数据存储是指()A手工台帐B数据存储的地方C数据库文件D磁盘文件4,测试属于()A系统测试B单元测试C综合测试D确认测试5用结构化程序设计方法编程时,任何程序均由以下三种基本逻辑结构组成()A控制结构、选择结构、执行结构B顺序结构、控制结构、选择结构C循环结构、顺序结构、选择结构D顺序结构、转移结构、循环结构6需求规格说明书的主体包括()A人员需求,成本需求B进度需求,人员需求C功能与行为需求描述及非行为需求描述D进度安排,软件设计方案,质量控制方案7软件设计在过程上可分为两个阶段A总体设计和数据设计B概要设计和详细设计C过程设计和界面设计D数据设计和过程设计8多个软件元素相互通信并协同完成任务的能力称之为()A可维护性B可适应性C可互操作性D可移植性9单元测试的对象是()A模块B子系统C系统D硬件系统10下列属于维护阶段的文档是A软件规格说明B用户操作手册C软件测试分析报告D软件问题报告二、填空题(每题2分,共30分)9开发软件的可行性分析应包括_上的可行性,_上的可行性和法律上的可行性。10类之间具有_关系和_关系。11OO方法主张分析人员在_空间中直接模拟_空间中的对象及其行为。12计算机软件由二部分组成,一是_,二是_。13结构化模块结构图的设计方法有_和_。14软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个_集成的过程。15软件工程是将系统的、规范的、可度量的工程化方法应用于_、_和维护的全过程及上述方法的研究。16变换模型是基于_规格说明语言及程序变换的软件开发模型。9软件工程的风险分析包括风险标识、风险估算、_和_四部分。10CMM的能力成熟度共分5级L1初始级、L2可重复级、L3_、L4可管理级、L5_。11UML的用例与用例之间存在_和_两种关系。12按照重用活动是否跨越相似性较少的多个应用领域,软件重用可区别为_重用和_重用两类。13快速原型的构造过程可以归纳为_、_、检查、改进四个步骤。14软件设计可分为_和_两大步骤。15_测试针对程序的每一条逻辑路径都要分别设计测试用例,检查要支和循环的情况三、名词解释(每小题4分,共16分)2计算机软件2数据流图3软件可维护性4软件测试四、简答题(每小题5分,共30分)1高质量的软件应该具备哪些条件3写出至少5种耦合度。3人机界面的设计可分为哪几个步骤4简述螺旋模型的基本开发过程。5衡量某种程序语言是否适合于特定的项目,应考虑下面哪些因素6SD方法能方便地将数据流图转换为软件结构,其过程分哪5步五、应用题(1题6分,2题8分,共14分)1针对“小型图书管理系统”至少列出六项系统需求2画出“小型图书管理系统”的顶级和第一级数据流图,并转化为相应的程序结构。综合试卷三试卷总分100分答卷时间110分钟试卷类型C一、项选择题(每小题的四个备选答案只有一个正确答案,每题1分,共10分)1问题分析阶段的参加人员主要有()A用户B设计人员C分析员D分析员和用户2下述耦合度最低者为()A公共耦合B内容耦合C外部耦合D非直接耦合3软件开发阶段的三个基本活动为()A分析,设计,编码B分析,设计,测试C设计,编码,测试D分析,编码,测试4在SD方法中,将数据流变换的信息流分为()A变换流和事务流B输入,输出流C输入,转换,输出流D事件,控制流5软件设计阶段的文本可为()A需求规格说明书B用户手册C设计规格说明书D可行性分析报告6启发式设计策略中不包括()A降低耦合读,提高内聚度B改造程序结构,追求单入口和单出口的模块C改造程序结构,减少扇入D改造程序结构,使任一模块的作用域在其控制域内7可行性研究的工作成果是()A初步的项目开发计划B设计规格说明书C测试说明书D需求规格说明书8软件工程有()三部分组成A目标,方法,过程B方法,工具,过程C目标,方法,工具D目标,工具,过程9一个成功的测试可以。A表明程序没有错误B发现所有错误C提高软件可靠性D发现尚未发现的错误10在下述说明中,哪一个不属于软件设计活动()A总体结构设计B数据设计C界面设计D程序设计二、填空题(每题2分,共30分)1_是一种数据媒体和其上记录的数据。2软件生存周期的软件定义分为_和_两个阶段。3逆向工程和_是目前预防性维护采用的主要技术。4螺旋模型是生存周期模型与原型的结合,不仅体现了两个模型的优点,而且还增加了新的成分_。5在将需求规格说明书提交给设计阶段之前,必须进行_。6_图是表示数据对象及其关系的图形语言机制。7UML静态图包括类图、_和_。8软件设计可分为_和_两大步骤。9面向对象的重用通常不允许用户直接修改库中_,对类库进行扩充或修改的办法只是将新的子类加入到类库的继承层次结构中。10_测试完全不考虑程序的内部结构和处理过程。测试仅在程序界面上进行。11软件开发阶段由_、_和测试3个基本活动组成。12软件维护的内容包括_,适应性维护、改善性维护和预防性维护。13软件工程的风险分析包括风险标识、_、风险评价和_四部分。14无论基于哪一种数据管理方法,数据持久存储服务的设计都包括定义_和定义_两部分。15人机界面设计过程先后涉及四个模型,设计模型、_、终端用户对未来系统的假想、_。三、名词解释(每小题4分,共16分)1软件生命周期2软件工程3协作图4软件重用四、简答题(每小题5分,共30分)1软件工程的目标有哪些至少写出5种2面向对象方法学包含哪些核心概念简述之3UML的消息类型有几种,哪几种4人机界面的设计可分为哪几个步骤5一个程序段的文档应包括哪些内容6螺旋模型有哪些优点五、应用题(1题6分,2题8分,共14分)1针对“通用在线考试系统”至少列出六项系统需求2画出“通用在线考试系统”的顶级和第一级数据流图,并转化为相应的程序结构。附参考答案一软件与软件工程参考答案一、选择题1ABC2CD3A4C5ABCD6BD7ABC8ABC9ABCD二、判断题1错误2错误3错误4正确5错误6正确7错误8错误9错误10正确三、简答题1软件产品的特性是什么答软件是一种逻辑产品,具有无形性;软件产品的生产主要是研制;软件不存在磨损和老化问题,但存在退化问题。软件产品的生产主要是脑力劳动;软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式。软件具有“复杂性”,其开发和运行常受到计算机系统的限制。2软件发展有几个阶段各有何特征答程序设计阶段。硬件特征价格贵、存储容量小、运行可靠性差。软件特征只有程序、程序设计概念,不重视程序设计方法。程序系统阶段。硬件特征速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。软件特征程序员数量猛增,开发人员素质低。软件工程阶段。硬件特征向超高速、大容量、微型化及网络化方向发展。软件特征开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。3什么是软件危机其产生的原因是什么答“软件危机”(SOFTWARECRISIS)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。“软件危机”主要表现在两个方面1软件产品质量低劣,甚至开发过程就夭折。2软件生产率低,不能满足需要。4什么是软件生存周期模型它有哪些主要模型答软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。主要模型包括瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。5有哪些主要的软件开发方法答主要的软件开发方法有;结构化开发方法、JACKSON(JSP、JSD)方法、原型化开发方法、维也纳开发方法(VDM)和面向对象的开发方法。6软件生命期各阶段的任务是什么答软件生命期瀑布模型分为六个阶段可行性研究与计划(确定系统的目标和规模、分析项目的可行性)需求分析与规格说明(明确系统的规格和要求)设计(包括概要设计和详细设计,将系统分解为模块)编程(用程序语言实现每个模块,简单容易)测试(发现并改正错误,分为模块测试、集成测试和系统联调三级)运行维护(扩充功能、纠错等)二软件工程管理参考答案一、选择题1B2D3C4A5C6D7B8D9D10A二、判断题1正确2错误3正确4错误5错误6错误7正确8正确三、简答题1简述一个成熟的软件机构应具有的特点。答建立了机构级的软件开发和维护过程。软件人员对其有较好的理解。一切活动均遵循过程的要求进行,做到工作步骤有次序,且有章可循;软件过程必要时可做改进,但需在经小型实验和成本效益分析基础上进行;软件产品的质量和客户对软件产品的满意程度不是由开发人员,而是由负责质量保证的经理负责监控;项目进度和预算是根据以往项目取得的实践经验确定,因而比较符合实际情况。2、CMM将软件过程的成熟度分为哪几个级别答初始级、可重复级、已定义级、已管理级和优化级三需求分析参考答案一、选择题1BC2CD3D4B5ACD6C7AD8D9BC二、判断题1错误2正确3正确4错误5错误6错误7错误8正确9正确10正确三、简答题1什么是需求分析需求分析阶段的基本任务是什么答需求分析是当前软件工程中的关键问题,需求分析阶段的任务是在可行性分析的基础上,进一步了解、确定用户需求。准确地回答“系统必须做什么”的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及这些因素和系统的精确规格说明以及系统进化之间的关系。需求分析的基本任务包括抽取需求分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用况法、情景实例法以及基于目标的方法等,还有知识工程方法,如场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。模拟和分析需求需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。传递需求传递需求的主要任务是书写软件需求规格说明。认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方法有协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。进化需求客户的需要总是不断(连续)增长的,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问。对传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性并进行关于变化的推理。2M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记副总裁不喜欢报告长度超过一页(B5)。答应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。根据快速原型法的特点,特别适合于开发探索型、实验型的软件。3如何画分层数据流图答总的原则是至顶而下,逐层分解(画分层数据流图)比较复杂的系统不能画在一张纸上逐层分解的画法可以控制每一层的复杂度。顶层将整个系统作为一个加工,描述系统边界(输入与输出。)中间层表示某个加工分解为一组子加工,其中的子加工还需进一步分解。底层由不再进行分解的基本加工组成。4加工小说明有哪些描述方法答结构化语言介于自然语言和形式语言(如谓词逻辑)之间。结构化英语通常由外层和内层结构组成汉语的情况精确、简明扼要、文体可以灵活。判定表适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。判定树本质上同判定表,图形表示更易于理解。5常用的软件需求分析的方法有哪些答结构化分析方法(SA)、功能分解法、信息建模法、面向对象的分析方法(OOA)。四面向对象的需求分析参考答案一、选择题1ABC2BCD3ACD4AB5ABCD6ABD7AB8ABCD9AC10ABCD11D12BCD13ABD14ACD15AB16ABCD17ABD18BCD19ABCD20ABC二、判断题1错误2正确3错误4错误5正确6正确7正确8正确9正确10正确11正确12错误13正确14正确15正确16正确17错误18正确19正确20正确21错误22正确23正确24正确25错误三、简答题1与传统程序设计模式中的过程调用相比,消息传递机制有何本质区别答1消息传递必须给出信道的信息,通常要指出明显的接受方。2由于接受方是一通信实体,具有保持状态的能力,所以同一发送方在不同时刻向同一接受方发送同样的信息,可因接受方的当前状态不同而得到不同的结果。3消息传递可以是异步的,发送方可以不必等待接受方返回信息就可以继续执行后面的操作,因而支持程序的并发和分布执行,而过程调用只能是同步的,本质上是串行的。2阐述面向对象的特征,并做简要的解释答1对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。2分类性。是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。3继承性。是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。4多态性。是指相同的操作或函数,过程作用于多种类型的对象上并获得不同的结果。3COAD方法严格区分了面向对象分析OOA和面向对象设计OOD。OOA方法利用五个层次和活动定义和记录系统行为,输入和输出。请简述这五个层次1)发现类及对象。描述如何发现类及对象。从应用领域开始识别类及对象,形成整个应用的基础,然后,据此分析系统的责任。2识别结构。该阶段分为两个步骤。第一,识别一般特殊结构,该结构捕获了识别出的类的层次结构;第二,识别整体部分结构,该结构用来表示一个对象如何成为另一个对象的一部分,以及多个对象如何组装成更大的对象。3定义主题。主题由一组类及对象组成,用于将类及对象模型划分为更大的单位,便于理解。4定义属性。其中包括定义类的实例(对象)之间的实例连接。5定义服务。其中包括定义对象之间的消息连接。4面向对象程序设计有哪些优点答并发时间短,效率高,可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间。程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。5面向对象方法与结构化方法比较答分析是问题抽象做什么,设计是问题求解怎么做,实现是问题的解结果。任何方法学对客观世界的抽象和求解过程都是如此。在问题抽象阶段,结构化方法面向过程,按照数据变换的过程寻找问题的结点,对问题进行分解。因此,与面向对象方法强调的对象模型不同,描述数据变换的功能模型是结构化方法的重点。如果问题世界的功能比数据更复杂或者更重要,那么结构化方法仍然应是首选的方法学。如果数据结构复杂且变换并不多,那么如以过程主导分析和设计,一旦有系统变更就会给下游开发带来极大混乱。由于对过程的理解不同,面向过程的功能细分所分割出的功能模块有时会因人而异。而面向对象的对象细分,从同一问题领域的对象出发,不同人得出相同结论的比率较高。在设计上,结构化方法学产生自顶向下、结构清晰的系统结构。每个模块有可能保持较强的独立性,但它往往与数据库结构相独立,功能模块与数据库逻辑模式间没有映射关系,程序与数据结构很难封装在一起。如果数据结构复杂,模块独立性很难保证。面向对象方法抽象的系统结构往往并不比结构化方法产生的系统结构简单,但它能映射到数据库结构中,很容易实现程序与数据结构的封装。在软件工程基本原则中有一条“形式化原则”,即对问题世界的抽象结论应该以形式化语言图形语言、伪码语言等表述出来。结构化方法可以用数据流图、系统结构图、数据辞典、状态转移图、实体关系图来进行系统逻辑模型的描述;而面向对象方法可以使用对象模型图、数据辞典、动态模型图、功能模型图。其中对象模型图近似系统结构图与实体关系图的结合,动态模型图类似状态迁移图,功能模型图类似数据流图。6当重要的对象被发现后,通过一组互相关联的模型详细表示类之间的关系和对象的行为,这些模型从四个不同的侧面表示了软件的体系结构静态逻辑、动态逻辑、静态物理和动态物理。试描述一下这四种特性答静态逻辑模型描述实例化(类成员关系)、关联、聚集(整体/部分)、和一般化(继承)等关系。这被称为对象模型。一般化关系表示属性和方法的继承关系。定义对象模型的图形符号体系通常是从用于数据建模的实体关系图导出的。对设计十分重要的约束,如基数(一对一、一对多、多对多),也在对象模型中表示。动态逻辑模型描述对象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论