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

下载本文档

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

文档简介

软件工程复习题2一、选择题

1.以下不属于软件工程基本要素的是()A.方法B.工具C.过程D.环境答案:D解析:软件工程包括方法、工具和过程3个要素。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。

2.软件生命周期中花费时间最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护答案:D解析:软件维护是软件生命周期中持续时间最长的阶段,因为软件在交付使用后,可能会因为各种原因需要不断进行修改、完善和优化。

3.软件可行性研究一般不考虑()A.是否有足够的人员和相关技术来支持系统开发B.是否有足够的工具和相关的技术来支持系统开发C.待开发软件是否有市场、经济上是否合算D.待开发的软件是否会有质量问题答案:D解析:可行性研究主要从技术可行性、经济可行性和操作可行性等方面进行分析,不涉及软件质量问题,软件质量问题是在后续的开发阶段进行保障的。

4.数据流图(DFD)是用于描述结构化方法中()阶段的工具。A.可行性分析B.详细设计C.需求分析D.程序编码答案:C解析:数据流图是需求分析阶段的重要工具,它以图形的方式描绘了系统中数据的流动和处理过程,帮助分析师理解和描述系统的功能需求。

5.数据字典是对数据定义信息的集合,它所定义的对象都包含于()A.程序流程图B.数据流图C.软件结构图D.方框图答案:B解析:数据字典是对数据流图中出现的所有被命名的图形元素的定义的集合,它与数据流图密切相关,用于详细解释数据流图中的各个元素。

6.软件设计中划分模块的一个准则是()A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合答案:B解析:高内聚低耦合是软件设计中划分模块的重要准则。高内聚使得模块内部的功能相关性强,便于维护和修改;低耦合降低了模块之间的依赖程度,提高了软件的可扩展性和可维护性。

7.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计答案:D解析:软件详细设计主要采用结构化程序设计方法,它通过自顶向下、逐步细化的方式,将程序设计成由相对独立的模块组成的结构,每个模块完成特定的功能,并且易于理解和维护。

8.程序流程图中的箭头代表的是()A.数据流B.控制流C.调用关系D.组成关系答案:B解析:程序流程图中的箭头表示控制流,它描述了程序执行过程中各个步骤的先后顺序,即程序的控制逻辑。

9.软件测试的目的是()A.证明软件的正确性B.发现软件中的错误C.评估软件的可靠性D.改正软件中的错误答案:B解析:软件测试的目的是发现软件中的错误,而不是证明软件的正确性。通过各种测试方法和技术,尽可能多地找出软件中存在的缺陷,以便及时进行修复。

10.软件调试的目的是()A.找出错误所在并改正之B.排除存在错误的可能性C.对错误性质进行分类D.统计出错的次数答案:A解析:软件调试的目的是找出软件中错误的具体位置,并进行改正。它是在测试发现错误后进行的进一步工作,通过分析错误信息、追踪程序执行过程等方法,定位并解决问题。

11.面向对象方法中,继承是指()A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制答案:D解析:继承是面向对象方法中的重要概念,它允许一个类继承另一个类的属性和操作,实现了类之间共享属性和操作的机制,提高了代码的复用性。

12.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考答案:C解析:面向对象设计方法的基本原理是使用现实世界的概念抽象地思考问题,将问题域中的事物抽象为对象,通过对象之间的交互来解决问题,这种方式更符合人们对现实世界的认知习惯。

13.在面向对象方法中,不属于"对象"基本特点的是()A.一致性B.分类性C.多态性D.标识唯一性答案:A解析:对象具有标识唯一性、分类性、多态性、封装性和模块独立性好等特点,一致性不属于对象的基本特点。

14.软件维护可分为改正性维护、适应性维护、完善性维护和预防性维护。下述哪一个应属于完善性维护()A.发现测试阶段未发现的错误,使软件运行的可靠性得到提高B.使软件系统适应新的运行环境C.增加软件功能、增强系统性能D.改良未来的软件的可靠性和可维护性答案:C解析:完善性维护是指在软件的使用过程中,为了满足用户对软件提出的新功能和性能要求,增加软件功能、增强系统性能等方面的维护活动。

15.以下关于软件质量保证的叙述中,()是不正确的。A.质量保证活动应贯穿软件开发的全过程B.质量保证活动的主要目的是减少软件的质量问题C.质量保证人员应具备软件开发经验D.质量保证应由程序员承担主要责任答案:D解析:软件质量保证是一个复杂的过程,涉及软件开发的各个环节,不仅仅是程序员的责任。质量保证活动应贯穿软件开发全过程,目的是减少软件质量问题,质量保证人员需要具备软件开发经验,以更好地监督和保障软件质量。

二、填空题

1.软件工程研究的内容主要包括:软件开发技术和()两个方面。答案:软件工程管理解析:软件工程研究内容涵盖软件开发技术和软件工程管理。软件开发技术包括软件开发方法、工具和环境等;软件工程管理包括软件项目管理、软件质量保证等。

2.软件是程序、数据和()的集合。答案:文档解析:软件由程序、数据和文档组成。程序是软件的可执行部分,数据是程序操作的对象,文档则是对软件的功能、使用方法、维护等方面的说明。

3.可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否()。答案:值得开发解析:可行性研究通过对技术、经济、操作等方面的分析,判断软件项目是否值得投入资源进行开发,避免盲目开发导致资源浪费。

4.需求分析阶段的任务是确定()。答案:软件系统的功能需求和非功能需求解析:需求分析要全面了解用户需求,明确软件系统需要实现的功能以及对性能、可靠性、易用性等方面的要求,即功能需求和非功能需求。

5.数据流图有四种基本成分:数据流、加工、()和数据存储。答案:数据源点或终点解析:数据流图的四种基本成分分别为数据流,表示数据的流动方向;加工,对数据进行处理的操作;数据源点或终点,数据的来源或去向;数据存储,用于存储数据的地方。

6.软件设计一般分为总体设计和()两个阶段。答案:详细设计解析:软件设计过程包括总体设计和详细设计。总体设计确定软件的总体架构和模块划分;详细设计则进一步细化每个模块的内部实现细节。

7.程序设计语言的工程特性包括:可移植性、开发工具的可利用性、()和可维护性。答案:软件的可重用性解析:程序设计语言的工程特性影响软件的开发和维护。可移植性便于软件在不同环境运行;开发工具的可利用性利于提高开发效率;软件的可重用性可减少代码重复编写;可维护性方便软件的后续维护。

8.软件测试过程一般按4个步骤进行:单元测试、集成测试、()和系统测试。答案:确认测试解析:软件测试的步骤依次为单元测试,对单个模块进行测试;集成测试,将多个模块集成起来进行测试;确认测试,检查软件是否满足用户需求;系统测试,对整个软件系统进行全面测试。

9.面向对象模型主要由对象模型、()和功能模型组成。答案:动态模型解析:面向对象模型包含对象模型、动态模型和功能模型。对象模型描述系统中的对象及其关系;动态模型反映对象的动态行为;功能模型说明系统的功能。

10.软件维护的内容包括校正性维护、适应性维护、()和预防性维护。答案:完善性维护解析:软件维护分为校正性维护,修复软件中的错误;适应性维护,使软件适应新环境;完善性维护,增加软件功能和性能;预防性维护,改进软件的可靠性和可维护性。

三、简答题

1.简述软件工程的定义。软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化方法应用于软件开发和管理之中。它不仅包括软件开发技术,如软件开发方法、工具和环境等,还包括软件工程管理,如软件项目管理、软件质量保证等。软件工程的目标是生产出高质量、可维护、满足用户需求的软件产品。

2.软件生命周期可以划分为哪几个阶段?软件生命周期一般可划分为以下几个阶段:(1)问题定义:明确要解决的问题是什么。(2)可行性研究:研究问题是否值得解决,技术、经济、操作上是否可行。(3)需求分析:确定软件系统的功能需求和非功能需求。(4)总体设计:设计软件的总体架构和模块划分。(5)详细设计:细化每个模块的内部实现细节。(6)编码:用程序设计语言实现软件。(7)测试:发现软件中的错误并进行修复。(8)维护:对软件进行修改、完善和优化,以适应不断变化的需求。

3.简述需求分析的任务。需求分析的任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求。具体包括:(1)确定软件系统的功能需求,明确软件需要做什么。(2)确定软件系统的非功能需求,如性能、可靠性、易用性等方面的要求。(3)建立软件系统的逻辑模型,如数据流图、数据字典等,以准确描述需求。(4)编写需求规格说明书,将需求清晰、准确地记录下来,作为后续开发的依据。(5)与用户沟通和确认需求,确保需求的完整性和准确性。

4.什么是模块的内聚?内聚有哪些类型?模块的内聚是指模块内部各成分之间相互关联的紧密程度。内聚类型包括:(1)偶然内聚:模块内各成分之间没有有意义的联系,只是偶然地组合在一起。(2)逻辑内聚:模块内完成逻辑上相关的一组任务,但这些任务之间的关系并不紧密。(3)时间内聚:模块内的任务是按照时间顺序执行的。(4)过程内聚:模块内的处理元素是相关的,而且必须以特定的次序执行。(5)通信内聚:模块内的所有处理元素都在同一个数据结构上操作。(6)顺序内聚:模块内的各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,前一个处理元素的输出是后一个处理元素的输入。(7)功能内聚:模块内所有元素共同完成一个功能,缺一不可。

5.简述软件测试的原则。(1)尽早并不断地进行测试:测试应贯穿软件开发的全过程,尽早发现问题便于及时修复,降低修复成本。(2)全面测试:不仅要测试功能,还要测试性能、可靠性、兼容性等非功能方面。(3)重点测试:对关键功能、容易出现问题的部分进行重点测试。(4)避免测试自己的代码:由独立的测试人员进行测试,可减少主观偏见。(5)及时反馈:测试发现问题后及时反馈给开发人员,以便及时处理。(6)严格记录测试过程和结果:便于追踪问题、评估软件质量和进行后续分析。(7)回归测试:在软件修改后,对相关部分进行再次测试,确保没有引入新的问题。

6.什么是面向对象方法中的多态性?多态性是指同一个操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在面向对象方法中,多态性表现为不同类的对象对同一消息做出不同的响应。例如,一个图形类层次结构中,不同类型的图形(如圆形、矩形)都有自己的绘制方法,当调用绘制消息时,不同的图形对象会根据自身的特点进行绘制,这就是多态性的体现。多态性提高了软件的灵活性和可扩展性,使得程序可以更方便地处理各种不同类型的对象。

7.简述软件维护的类型及各自的含义。(1)校正性维护:在软件交付使用后,由于发现测试阶段未发现的错误,使软件运行的可靠性得到提高而进行的维护活动。(2)适应性维护:使软件系统适应新的运行环境而进行的维护活动,如新的操作系统、硬件设备等。(3)完善性维护:在软件的使用过程中,为了满足用户对软件提出的新功能和性能要求,增加软件功能、增强系统性能等方面的维护活动。(4)预防性维护:为了改良未来的软件的可靠性和可维护性,主动对软件进行的维护活动,如对代码进行优化、改进设计等。

四、综合题

1.某高校欲开发一个成绩管理系统,记录并管理所有学生的各科成绩。请根据软件工程的方法,描述该系统从需求分析到软件测试的主要过程。

需求分析与学校相关部门和教师沟通,确定系统功能需求。包括学生信息管理(录入、修改、删除学生信息)、课程信息管理(录入、修改、删除课程信息)、成绩录入与查询(录入学生各科成绩、查询学生成绩、查询课程成绩等)、成绩统计与分析(计算平均分、排名等)。确定系统非功能需求。如系统响应时间要在合理范围内,数据准确性要高,具备一定的安全性,防止数据泄露和非法访问。建立系统逻辑模型,绘制数据流图和数据字典。例如,数据流图中包括学生信息数据流、课程信息数据流、成绩数据流等,数据字典对每个数据项进行详细定义。

总体设计根据需求分析结果,进行模块划分。分为学生信息管理模块、课程信息管理模块、成绩管理模块、统计分析模块等。确定模块之间的接口和调用关系。例如,成绩管理模块需要调用学生信息管理模块和课程信息管理模块获取相关信息,统计分析模块需要从成绩管理模块获取成绩数据进行计算。设计软件总体架构,描述各模块的功能和职责。

详细设计对每个模块进行详细设计。例如,学生信息管理模块的详细设计包括学生信息的存储结构设计、录入界面设计、修改和删除功能的实现逻辑等。设计数据库结构,确定数据表的字段、数据类型、主键和外键等。如学生表包括学号、姓名、性别等字段,课程表包括课程号、课程名等字段,成绩表通过学号和课程号与学生表和课程表关联。编写详细的算法和流程,描述模块内部的处理

温馨提示

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

评论

0/150

提交评论