当前位置:文档之家› 软件工程 简答题复习题(带答案)

软件工程 简答题复习题(带答案)

第一章

1,与计算机硬件相比,计算机软件有哪些特点?

软件的特点如下。

1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了

解它的功能、特性和质量等。

2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程

中,渗透了大量的脑力劳动。

3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问

题。

4)软件的开发和运行必须依赖于特定的计算机系统环境。

5)具有可复用性。

3,什么是软件危机?什么原因导致了软件危机?

软件危机的现象如下。

1)经费超出预算,项目一再拖延。

2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。

3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。

4)开发工具落后,手工方式,开发效率低。

所有导致软件危机的原因,都与软件本身的产品特点相关。

1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件

产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。

2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。

3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做

到准确估算,生产过程不易控制。

4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成

本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得

多。

5,请简述软件工程研究的内容。

软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。

软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。

常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。

软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer 和Rational Rose等。

7,请简述软件工程的目标、过程和原则。

目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。

1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效

率、高效益)。

2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组

织过程。

3)进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的

开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程

的管理。

9,请简述现代软件工程与传统软件工程显著的区别和改进。

1)传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向对

象技术为标志。

2)不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中,

采用面向对象的思维方式,更加完整、自然地反映客观世界。

3)采用架构技术,开发效率、产品质量得到了极大提高。

4)更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP模型、

XP模型、过程改进、能力成熟度模型、配置管理等。

第二章

1,如何理解软件生命周期的内在特征?

软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,再到最终该产品被市场淘汰的全过程。

软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,因此在资源外配、时间把握和项目管理上都会比较容易控制。应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。

3,当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较合?

开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。螺旋模型是一种综合性的模型,适和于较复杂的系统。

5, XP是一种什么样的模型?

XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心。实行XP的条件如下。

1)企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具。

2)软件结构是开放的,增量可随意整合。

3)开发团队拥有“系统隐喻"。

7,请简述软件过程。

软件过程就是软件产品的加工过程,其本质就是将“客观世界”映射(虚拟)到“计算机世界”,即从抽象到具体的逐步细化过程。系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就是计算机世界里的代码。

9,请简述CMM的作用。

1)CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认

可软件工程达到的程度(如同评定职称的条件)

2)CMM是软件组织提升自身能力、走向成熟的参照系。它提供了走向成熟的

阶梯目标,但并不提供走向目标的方法。

3)CMM等级的提高依靠软件过程改进。

4)CMM既是评估软件能力成熟度的模型,也起到了促进软件企业按照该模型

设置的级别和关键过程域不断改进自己的软件过程的作用。

11,假设你要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模

型?请说明你做出这样选择的理由。

对这个软件的需求很明确,实现开平方功能的算法也很成熟。因此,既无须通过原型模型来分析需求也无须用原型模型来验证设计方案。此外,一旦实现并测试完之后,该产品将被地弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。

综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。

第五章

1,在选择编程语言时,通常要考虑哪些因素?

1)待开发系统的应用领域,即项目的应用范围。

2)用户的要求。

3)软件开发人员的喜好和能力。

4)系统的可移植性要求。

5)算法和数据结构的复杂性。

3,什么是调试?什么是测试?二者有何区别?

调试(debug)指的是对模块的调试,是程序员交付可运行的代码模块所必须经历的工作。

软件测试(test)有如下特点。

1)软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程

序无错。

2)不仅仅是测试程序,还应该对开发过程中所有的产品进行测试,包括文档,

其目的是为了尽早地、尽可能多地发现并排除软件中潜在的错误。

二者的区别如图5.2所示。

5,请简述静态测试和动态测试的区别。

按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。

静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。

与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。测试人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。

7,软件测试的目的是什么?

测试的目的如下

1)测试是一个为了发现程序中的错误为目的的程序执行过程。

2)个好的测试用例是能最大限度地找到迄今为止尚未发现的错误。

3)成功的测试是能发现了那些尚未发现的错误。

9,什么是白盒测试?有哪些常用的白盒测试方法?

白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。

11,软件测试应该划分几个阶段?各个阶段应重点测试的内容是什么?

软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试。每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告5个步骤。

1)单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。

它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

2)集成测试是软件系统集成过程中所进行的测试,其主要目的是检查软件单位之

间的接口是否正确。

3)系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确

性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非是一项简单的任务,它被称为测试的“先知者问题".

4)验收测试是向软件的购买者展示该软件系统满足其用户的需求。它的测试数据

通常是系统测试的测试数据的子集。

5)回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验

对软件进行。

第十一章

1,请简述项目、项目管理和软件项目管理。

项目、项目管理和软件项目管理的概念如下。

1)项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、

经费预算、

2)质量标准,以及特定的功能、性能和接口要求。

3)项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目

的计划、进度、质量、成本、资源进行管理和控制的活动。

4)软件项目管理以通用的项目管理知识体系为基础,管理的对象是软件工程项目。

它结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,使得整个软件开发过程(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质的完成软件交付用户使用。

3,请简述项目计划应该包括的内容。

项目计划应该包括的内容如下。

1)确定详细的项目实施范围。

2)定义递交的工作成果。

3)评估实施过程中主要的风险。

4)制定项目实施的时间计划。

5)成本和预算计划。

6)人力资源计划等。

5,如何进行项目的时间管理?

项目的时间管理首先要对项目活动进行定义,依据包括:工作分解结构、项目范围说明、历史信息、约束条件、假定和专家评论。

在整个项目中,我们需要一份能清晰描述活动发生的时间和所需要的资源的计划,项目进度安排的内容为如下

1)定义一组项目活动,并建立活动之间的相互关系。

2)估算各个活动的工作量和完成任务所需要的资源。

3)定义里程碑。

4)分配人力和其他资源,制定进度时序。

5)检查进度安排,确保任务之间没有冲突,并且包含了完成项目必需的所有任务。7,请简述估算的作用。

计划是项目的启动入口,项目开展过程就是执行计划。而估算是制定计划的依据,因此估算是项目开展的基础。估算的主要工作如下。

1)范围估算:搞清软件边界。

2)规模估算:定量单位采用LOC或FP

3)工作量估算:工作量估算决定了开发团队的规模和组建,决定开发周期和进度

估算。

4)开发周期与进度估算:进度估算是对整个开发周期中不同阶段的里程碑进行估

算。

5)人力资源估算:在考虑各种软件开发资源时,人是最重要最优先考虑的资源。

6)开发成本估算:整个开发周期所花费的工作量产生的劳动费用。

7)软硬件资源估算:软件开发所需的硬件工具及软件工具。

9,请简述做进度计划的两种方式。

做进度计划的两种方式如下。

1)Gant图用线段标明子任务的分解;标明各个任务的计划开始时间、完成时间;

标明各个任务与参与工作的人数,各子任务间的并行和串行的关系的衔接情况。

特点:简单、明了、直观、易于编制;以文档与评审作为开发进度的里程碑。

缺点:无法标明多个任务之间存在的相互制约关系;无法标明关键的控制作业。

2)工程网络图是用时间和节点来表示工作流程的有序、有向的网状图形。它可弥

补Gantt图无法表达关键路径和作业之间的制约关系,并且易于调整。

第十二章

1,目前项目开发时常用的小组组织方法有哪些?

目前,项目开发时常用的小组组织方法:民主制程序员组、主程序员组和现代程序员组。

3,民主制、主程员制各存在什么问题?

民主制程序员组中所有程序员不分主次,这样在责任落实、分工协作方面存在一些问题。责任不明,分工不清,大家都负责,实际上没有人负责。

主程序员制是主程序员负责制,克服了民主制的缺点,但又走到了另一个极端--只有主程序员负责,其他成员的积极性就被扼杀了。另外,主程序员这个位置既是一个技术岗位,也是一个管理角色,这样的位置很难找到胜任的人担任。热衷于技术的人,往往对管理不感兴趣,而具有管理才能的人,大多不会是技术专家。

第十三章

1,风险识别的步骤有哪些?

风险识别分为三步进行:收集资料;估计项目风险形势;识别风险。

3,请简述软件质量的定义。

所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。

5, 什么是配置项?什么是配置管理?

软件配置管理中的基本单元,称为软件配置项。

在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟踪、管理,使其最终形成受控的软件版本产品,这一管理过程称为软件配置管理。

7,请简述软件配置管理的工作内容。

配置管理的工作内容一般包括如下的4个方面。

1)标识配置项。配置项是配置管理中的基本单元,每个配置项应该包含相应的基

本配置管理的信息。标识配置项就是要给配置项取一个合适的名字。

2)进行配置控制。进行配置控制是配置管理的关键,包括存取控制、版本控制、

变更控制和产品发布控制等。存取控制通过配置管理中的“软件开发库”、“软件基线库”、“软件产品库”来实现。每个库对应着不同级别的操作权限,为团队成员授予不同的访问权利。版本控制往往使用自动的版本控制工具来实现,如SVN,变更控制是应对软件开发过程中各种变化的机制,可以通过建立控制点和报告与审查制度来实现。产品发布控制面向最终发布版本的软件产品,旨在保证提交给用户的软件产品版本是完整、正确和一致的。

3)记录配置状态。配置状态报告记录了软件开发过程中每一次配置变更的详细信

息。记录配置状态的目的是使配置管理的过程具有可追踪性。

4)执行配置审计。配置审计是为了保证软件工作产品的一致性和完整性,从而保

证最终软件版本产品发布的正确性。

第十四章

1,为什么要进行软件维护?软件维护的作用有哪些?

软件维护是软件产品生命周期的最后一个阶段。在产品交付并且投入使用之后,为了解决在使用过程中不断发现的各种问题,保证系统正常运行,同时使系统功能随着用户需求的更新而不断升级,软件维护的工作是非常必要的。概括地说,软件维护就是指在软件产品交付给用户之后,为了改正软件测试阶段未发现的缺陷,改进软件产品的性能,补充软件产品的新功能等,所进行的修改软件的过程。

3,传统软件维护分哪几大类?

传统软件维护分4类,分别是纠错性维护、适应性维护、完善性维护和预防性维护。

5,请简述结构化维护和非结构化维护。

结构化维护的前提是软件产品或软件项目必须有完善的文档,并且文档与程序代码互相匹配,两者完全一致。在这样的前提下,维护不但会比较省力,而且维护后可以用原来的测试用例进行回归测试。

相反,若软件产品或软件项目只有程序而没有文档,或文档很不规范、很不齐全,对这样的软件进行维护,则称为非结构化维护。

7,请简述面向缺陷的维护。

面向缺陷维护的内容:该软件产品能够正常运行,可以满足用户的功能只是维护前在个别地方存在缺陷,用户不是非常满意。克服缺陷的方法是修改程说的只修改程序,不修改数据结构。

9,怎样理解迭代模型RUP对软件维护的影响?

RUP的功能覆盖整个软件的开发周期,从需求分析开始,直到软件的发布、实施和维护为止,因而它对传统意义下的维护工作产生重大影响。

RUP把软件生命周期定义为4个主要阶段:初始、细化、构造、移交。经过这4个阶段的历程被称为一个开发周期,自动产生一个周期内的所有文档,从而生成一个软件产品。首次经历这4个阶段称为该产品的初开发周期。除非该产品的生命终止,否则它将重复初始、细化、构造和移交这4个阶段,从而演化为下一代产品,这就是对旧有产品的维护,也是新产品的升级换代,也就是开发周期的演化,也就是RUP 对软件维护工作的影响。

11,请简述软件文档的意义。

文档是指某种数据媒体和其中所记录的数据。它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读的东西。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软件产品的一部分,没有文档的软件就不能称其为软件。软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量。高质量、高效率地开发、分发、管理和维护文档对于转让、变更、修正、扩充和使用文档,对于充分发挥软件产品的效益有着重要的意义。

《软件工程》经典考试例题复习试题,重点知识点[含答案解析]

1.某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号 码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。 要求:写出在数据字典中,电话号码的数据流条目的定义即组成。 电话号码=[分机号|外线号码] 分机号=7201 (7299) 外线号码=9+[市话号码|长话号码] 长话号码=区号+市话号码 区号=100 (300) 市话号码=局号+分局号 局号=[455|466|888|552] 分局号=4{数字}4 数字=[0|1|2|3|4|5|6|7|8|9] 2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。 (1)语句覆盖测试用例 令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。 (2)判定覆盖 可以设计如下两组数据以满足判定覆盖: x=3,y=0,z=1(1分)(通过路径abce); x=2,y=1,z=2(1分)(通过路径acde)。 或者 x=2,y=1,z=1;覆盖路径acde x=1,y=1,z=1;覆盖路径ace x=3,y=0,z=1;覆盖路径abce (注意:本题也还可以有其他答案) 3.请用判定表画出以下问题的行为逻辑。 人们往往根据天气情况决定出门时的行装。天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。如果天气要下雨,出门时带上雨伞;如果天气变冷,

出门时要穿上大衣。 4.对下列子程序进行调试: procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if (y=2) or (x>l) then x:=x+l; end. 该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。完成下列各题: (1)画出程序流程图。 (2)用条件组合覆盖设计测试用例,并写出其中一组测试用例。 答:(1)程序流程图 (2)用白盒法中条件组合覆盖设计测试用例: ① y=2, z=0, x=4; ② y=2, z=1, x=1; ③ y=1, z=0, x=2; ④ y=1, z=1, x=1. (注:也可有其它答案) 5.选择排序的伪代码如下,请根据代码画出其PAD图。 select_sort(a[1],a[2],…,a[n]) { for(i=1;i

软件工程复习题(带答案)

软件工程复习题(带答案) 软件工程复习题 一、单选题 1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c ) A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D ) A产生危机 B质量保证 C开发效率 D生产工程化 3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究 的结论主要相关于( A ) A软件系统目标 B软件的性能 C软件的功能 D软件的质量 4、软件需求分析一般应确定的是用户对软件的( D ) A.功能需求 B.非功能需求 C.性能需求 D.功能需求和非功能需求 5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试 计划的制订应始于软件开发的哪个阶段? ( D ) A.需求分析 B.软件设计 C.程序编码 D.软件计划 6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B ) A.原型化方法

B.结构化方法 C.面向对象方法. D.功能分解法 7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A ) A.软件模型 B.软件功能 C.软件结构 D.软件加工 8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不 属于开发技术的范畴?(D) A.软件开发方法 B.软件开发工具 C.软件工程环境 D.软件工程经济 9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依 据,而且也影响软件的() A.可理解性 B.可维护性 C.可扩展性 D.可靠性 10、从( )语言开始,软件摆脱了对硬件的依赖。 A.第一代 B.第二代 C.第三代 D.第四代 11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( ) A.实体

软件工程复习题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除D风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类D确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 &功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能B模块的接口 C.数据的名称和用途D模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有(C)。 A.只有结构化语言.B有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行(B)维护。 A.正确性B适应性 C完善性D预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工 B.变换、加工、数据流和存储 C.加工、数据流、数据存储和外部实体 D•变换、数据存储、加工和数据流

《软件工程》复习题及答案

软件工程复习题 第一部分(第1~6章) 一、选择题: 1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2.瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3.瀑布模型存在的问题是(B )。 A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。 A.需求不确定性高的 B.需求确定的C.管理信息 D.实时 6.下列有关软件工程的标准,属于国际标准的是(C ) A.GB B.ANSI C.ISO D.IEEE 7.结构化方法是一种基于(D)的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9.可行性研究的目的是(D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10.设年利率为i,现存入p元,n年后可得钱数为(C)。 A、P×(1+i*n) B、P× (i+1)*n C、p×(1+i)n D、p×(i+n) 11.可行性研究是在(A)之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的 (C)。 A、1% B、20% C、8% D、50% 13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。 A.《计算机软件保护条例》

软件工程简答题及答案

软件工程简答题及答案 软件工程试题整理_ 简答题 1、可行性研究的任务是什么? 首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建 立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何 侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。 2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系? 一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。 一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽 量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点” 或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。 3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块? 非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和

集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而 渐增式测试往往把单元测试与集成测试和在一起,同时完成。㈡非渐增式需要更多的工作量, 因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模 块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发 现。㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错 误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模 块再测试。㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时 间。㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。渐 增式测试有以下两种不同的组装模块的方法:㈠自顶向下组合。该方法只需编写桩模块,其 步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模 块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合 其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进 行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。

软件工程复习题及答案(完整)

一、选择 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。对 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。 A 质量控制 B 质量管理 C 质量策划 D 质量改进 13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若干 (B)。 A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程 14、在软件开发的各种资源中,(D)是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。 A 业务需求 B 功能需求 C 非功能需求 D 用户需求 17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。 A 需求不确定的 B 需求确定的 C 管理信息 D 决策支持 18、(A)意味着一个操作在不同的类中可以有不同的实现方式。 A 多态性 B 多继承 C 类的可复用 D 信息隐蔽 19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。 A 用例图 B 类图 C 活动图 D 协作图 20、单元测试的测试用例主要根据(D)的结果来设计。 A 需求分析 B 源程序 C 概要设计 D 详细设计 二、填空题 1、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。 2、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。 3、用例及其协作之间是实现关系。 4、接口及其实现类或构件之间是实现关系。 5、动物与老虎之间是泛化关系。 三、问答题 1、软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。 可复用的软件元素包括(选5种):项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。 2、传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。 传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早期的错误直到开发晚期才能被发现,开发的风险较大。

软件工程复习题及参考答案

《软件工程》课程复习资料 一、单项选择题: 1.下面哪些UML图描述系统行为? [ ] A.用例图 B.类图 C.对象图 2.属于概要设计活动的是 [ ] A.软件结构设计 B.数据结构设计 C.算法设计 3.属行为型设计模式的是 [ ] A.组合模式 B.工厂方法模式 C.观察者模式 4.下列说法正确的是 [ ] A.UML 是软件开发方法 B.UML是系统描述语言 C.UML是软件开发过程 5.根据程序流程图划分的模块通常是 [ ] A.信息内聚的模块 B.过程内聚的模块 C.逻辑内聚的模块 6.如果某程序中的比较个数是m,则其 McCabe环形复杂度为 [ ] A.m-1 B.m C.m+1 7.按ISO9000-3的说明,下列属软件配置项的是 [ ] A.软件开发方法 B.软件开发组织管理制度 C.软件开发合同 8.软件测试的目的是 [ ] A.证明软件无错 B.发现软件中的所有错误 C.尽可能发现软件系统中的错误 9.软件重构关注的是 [ ] A.软件体系结构 B.模块细节 C.软件性能 10.软件项目开发计划的内容有 [ ] A.数据分析 B.风险分析 C.功能分析 11.在UML的类图中,描述整体与部分关系的是 [ ] A.泛化关系 B.聚合关系 C.依赖关系 12.软件过程能力成熟度模型CMM用以评价 [ ] A.软件过程能力 B.组织能力 C.学习能力 13.因计算机硬件和软件环境的变化而作出的修改软件的过程称为 [ ] A.完善性维护 B.改正性维护 C.适应性维护 14.对项目软件而言,软件功能需求信息主要由谁提供 [ ] A.软件用户 B.软件开发人员 C.软件项目管理人员 15.IDEF0 图反映不出 [ ] A.系统做什么 B.系统功能由谁做 C.系统如何做 16.原型模型是一种什么开发过程模型? [ ] A.自顶向上 B.由外至内 C.增量式 17.系统流程图描述 [ ] A.物理系统 B.逻辑系统 C.软件体系结构 18.需求规格说明书的内容不应该包括 [ ] A.软件确认准则 B.软件的性能描述 C.算法过程的详细描述 19.适合需求模糊或需求不确定系统开发的软件开发模型是 [ ] A.瀑布模型 B.RAD 模型 C.原型模型 20.UML 图中描述系统结构的是 [ ] A.组件图 B.顺序图 C.状态图 21.面向对象方法是一种什么软件开发方法? [ ] A.层次化 B.迭代增量式 C.逐步求精 22.不可以用来衡量软件可维护性的是 [ ] A.可靠性 B.可用性 C.可行性 23.系统分析员在需求分析最后负责编写 [ ] A.用户手册 B.概要设计说明书 C.可行性研究报告 24.为了提高软件的可靠性、可维护性等而对软件的修改称为 [ ] A.改正性维护 B.适应性维护 C.预防性维护 25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构 [ ] A.与问题结构对应 B.与问题结构独立 C.与用户界面对应 26.单元测试的计划应该在什么阶段完成? [ ] A.需求分析 B.概要设计 C.详细设计

软件工程 期末试题及答案

软件工程期末试题及答案 第一节:选择题 1. 软件生命周期中,以下哪个阶段是在需求分析之后进行? A. 设计阶段 B. 验收阶段 C. 维护阶段 D. 实现阶段 答案:A. 设计阶段 2. 软件度量的主要目的是? A. 评估软件质量 B. 优化软件性能 C. 增强软件安全性 D. 加强软件可维护性 答案:A. 评估软件质量 3. 软件测试中,黑盒测试是基于什么样的原理进行的? A. 代码的内部结构 B. 软件的功能需求

C. 用户的使用场景 D. 基本的程序逻辑 答案:B. 软件的功能需求 4. 下面哪个是面向对象设计中的基本概念? A. 数据封装 B. 顺序结构 C. 命令式编程 D. 结构化分析 答案:A. 数据封装 5. 在软件项目管理中,以下哪个是最常用的项目管理工具? A. Gantt 图 B. 软件开发生命周期模型 C. WBS(工作分解结构) D. RUP(Rational Unified Process) 答案:A. Gantt 图 第二节:简答题 1. 什么是软件配置管理,它的主要作用是什么?

软件配置管理是管理和控制软件配置变更的过程,包括标识、控制、记录和审查软件配置项以及管理与配置项相关的文档、代码、配置项 版本、变更请求等。它的主要作用是确保软件开发过程中的变更被有 效地管理和控制,促进软件项目的稳定性和可管理性。 2. 请简要描述软件工程的五个主要过程。 - 需求工程:搜集和分析用户需求,明确软件系统的功能和非功能 特性。 - 设计:根据需求工程的结果,进行软件体系结构和模块设计,确 定软件的整体框架和组织结构。 - 编码:根据设计过程中得到的结果,实现软件系统的各个模块, 完成代码编写和单元测试。 - 测试:对编码过程中产生的软件进行全面、系统的测试,确保软 件的质量和稳定性。 - 维护:在软件生命周期的最后阶段,对软件进行修复 Bug 和功能 优化,确保软件的长期可用性和可维护性。 3. 请简述软件配置管理中的版本控制是指什么? 版本控制是指对软件项目中各个配置项版本的管理和控制。主要包 括版本的标识、记录、追踪和回溯。通过版本控制,可以有效地跟踪 软件的演化过程,管理和控制软件的变更,确保软件项目的稳定性和 可维护性。

软件工程考试试题 含答案

软件工程考试试题含答案软件工程考试试题含答案 一. 选择题 1. 下列不属于软件工程方法论的是: A. 瀑布模型 B. 敏捷开发 C. 融合开发 D. 增量开发 答案:C. 融合开发 2. 哪个不是软件需求工程的阶段? A. 需求收集和分析 B. 需求规格说明书编写 C. 需求确认和验证 D. 需求修复和更新 答案:D. 需求修复和更新 3. 软件开发生命周期中不包含以下哪个阶段? A. 需求分析

B. 软件设计 C. 软件测试 D. 软件维护 答案:C. 软件测试 4. 下列哪个是软件开发项目管理的基本约束? A. 时间 B. 人员 C. 质量 D. 成本 答案:D. 成本 5. 使用UML建模时,哪个图标不属于结构图? A. 类图 B. 对象图 C. 时序图 D. 包图 答案:C. 时序图 二. 填空题

1. 软件工程的目标是提高软件的质量和________。 答案:生产效率 2. 软件需求可以分为________和________两类。 答案:功能需求,非功能需求 3. 软件设计的核心目标是________。 答案:满足需求 4. 软件测试的目的是发现________。 答案:缺陷和错误 5. 软件维护分为________和________两个主要类别。 答案:正确性维护,适应性维护 三. 简答题 1. 请简要介绍敏捷开发方法。 答案:敏捷开发方法强调迭代与循序渐进的开发方式,注重团队合作和快速响应需求变化。其核心原则包括迭代开发、自组织团队、人与沟通优先、持续集成和及时反馈等。敏捷开发方法通过不断反馈和迭代,提高软件开发的灵活性和适应性。 2. 什么是软件需求工程?为什么软件需求工程是软件开发的关键环节?

软件工程简答题复习题(带答案)

第一章 1,与计算机硬件相比,计算机软件有哪些特点? 软件的特点如下。 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的 功能、特性和质量等。 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗 透了大量的脑力劳动。 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。 4)软件的开发和运行必须依赖于特定的计算机系统环境。 5)具有可复用性。 3,什么是软件危机?什么原因导致了软件危机? 软件危机的现象如下。 1)经费超出预算,项目一再拖延。 2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。 3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件产品的 结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确 估算,生产过程不易控制。 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成本,分摊 的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。 5,请简述软件工程研究的内容。

软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件 管理过程。 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设 计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实 施、系统维护、版本升级等。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。 软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner 和RationalRose等。 7,请简述软件工程的目标、过程和原则。 目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开 发。 1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效率、高效 益)。 2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组织过程。 3)进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、 采用合适的设计方法、提供高质量的工程支持、重视开发过程的管理。 9,请简述现代软件工程与传统软件工程显著的区别和改进。 1)传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向对象技术 为标志。 2)不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中,采用面向 对象的思维方式,更加完整、自然地反映客观世界。 3)采用架构技术,开发效率、产品质量得到了极大提高。 4)更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP模型、XP模型、过 程改进、能力成熟度模型、配置管理等。 第二章 1,如何理解软件生命周期的内在特征?

软件工程考试答案-复习题

一、选择填空 1.软件工程三要素是( B )。 A) 技术、方法和工具 B) 方法、工具和过程 C) 方法、对象和类 D) 过程、模型、方法 2.下列关于瀑布模型的描述正确的是( D )。 A)利用瀑布模型,如果发现问题修改的代价很低 B)瀑布模型的核心是按照软件开发的时间顺序将问题简化 C)瀑布模型具有良好的灵活性 D)瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开 3.以下说法正确的是( B )。 A.对于软件项目,投资回收期越长,越快获得利润。 B.用例模型的基本组成部件是用例、角色和用例之间的联系。 C.模块接口简单是软件发生错误的一个主要原因。 D.软件的质量保证工作一般在编码工作结束后才开始。 4.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 5.可行性研究的步骤中不包括(D )的内容。 A.复查初步分析结果 B.研究现有的系统 C.导出新系统高层逻辑模型 D.建立新系统的物理模型解法。 6.技术可行性是可行性研究的关键,其主要内容一般不包括( C )。 A.风险分析 B.资源分析 C.人员分析 D.技术分析 7.需求分析最终结果是产生( B ) A.项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告 8.需求分析的任务不包括( B )。 A.问题分析 B.系统设计 C.需求描述 D.需求评审。 9.需求分析中开发人员要从用户那里了解( A ) A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 10.数据字典是数据流图中所有元素的定义的集合,一般由( C )组成。 A) 数据说明条目、控制流条目、加工条目、数据存储条目

软件工程试卷(附答案)

软件工程试卷(附答案) 软件工程试卷(附答案) 一、选择题 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. 软件应该按时交付,而不考虑质量问题 二、简答题 1. 请简要介绍软件需求分析的主要任务和方法。 需求分析是软件开发过程中的重要环节,主要任务有以下几点: - 确定软件的功能需求:通过与用户、项目管理人员和领域专家的 沟通,了解用户对软件的需求和期望,并将其转化为明确的功能需求。 - 确定软件的非功能需求:包括性能、安全性、可靠性等方面的要求,以确保软件具备所需的质量属性。

软件工程试题及答案(较详细)

软件工程试题及答案(较详细)软件工程试题及答案 (较详细) 一、简答题 1. 什么是软件工程? 软件工程是一门综合应用计算机科学与工程学、管理学等知识的学科,它致力于开发和维护高质量的软件系统。它包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件项目能够按时交付、高效 运行,并满足用户需求。 2. 请解释什么是软件生命周期? 软件生命周期是指软件从构思、开发、使用到废弃的整个过程。它 包括需求分析、设计、编码、测试、部署和维护等多个阶段。软件生 命周期管理的目标是确保软件产品按时、按质量要求交付,并提供后 续的支持与维护。 3. 请解释什么是需求工程? 需求工程是软件工程中的一个重要阶段,它主要涉及对用户需求的 调研、分析、规划和文档化。通过需求工程,开发人员能够更好地理 解用户需求,并将其转化为具体的软件需求规格说明书,为后续的设 计和开发提供基础。 4. 什么是软件设计模式?

软件设计模式是一套在软件设计过程中重复出现的解决方案。它们被广泛接受,并被认为是开发高质量、可维护和可扩展软件的有效方法。常见的软件设计模式包括单例模式、工厂模式、观察者模式等。 二、分析题 1. 请说明面向对象和面向过程的编程范式的区别。 面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式。 面向过程编程更侧重于任务的步骤和流程,它将问题分解为多个步骤,通过一系列函数或过程的调用来完成任务。面向过程编程更加注重解决问题的步骤和执行过程。 面向对象编程更注重数据和对象的定义和封装,它将问题看作是一组对象的交互。面向对象编程通过定义类、创建对象以及对象之间的协作来解决问题。 2. 什么是软件架构? 软件架构是指软件系统的基本结构和组织方式。它定义了软件系统中各个组件的职责、交互方式和部署方式。常见的软件架构模式包括分层架构、客户端-服务器架构、微服务架构等。 3. 解释软件测试中的黑盒测试和白盒测试。

软件工程期末考试总复习题及答案

复习题 填空题 1.在信息处理和计算机领域内,一般认为软件是_程序____、_ 文档____ 和_数据____ 。 2.数据流图的基本组成部分有_数据的源点与终点____、数据 流_____、加工_____、数据文件_____。 3.数据流图和数据字典共同构成了系统的_逻辑____模型,是 需求规格说明书的主要组成部分。 4.划分模块时尽量做到__高内聚、低耦合______,保持模块的 独立性,尽量运用公共模块。 5.类的实例化是_对象_______。 6.人们常用硬件牢靠性的定量度量方法来度量软件的牢靠性和 可用性,常用的度量软件可 7.靠性的两个指标是_胜利地运行的概率_______和_平均故障 时间_______。 8.将待开发的软件细化,分别估算每一个子任务所须要的开发 工作量,然后将它们加起来, 9.将得到软件的总开发量。这种成本估算方法称为_自底向上 _______。 10.假如一个模块被n 个模块调用,其中干脆的上级模块的个数 是m 个(m<=n )那么该模块的扇入数是____N_______ 个。 11.结构化设计以__数据流图_________ 为基础,按肯定的步骤 映射成软件结构。 12.软件的风险分析可包括风险识别、风险预料和风险驾 驭(或风险管理)等3项活动。 13.软件著作权登记的3种主要类型:(1)著作权登记;(2)著 作权持续登记;(3)权利转移备案登记。 14.软件工程管理的主要内容有:项目经费管理,软件质量管理, 项目进度管理和人员管理。

15.面对对象分析的目的是对客观世界的系统进行___建模 _______________ 。 16.软件维护工作的生产性活动包括分析评价、修改设计和____ 编写程序代码_______ 等。 17.为了使应用软件适应计算机环境的变更而___修改软件 _______________ 的过程称为适应性维护。 18.一个进行学生成果统计的模块其功能是先对学生的成果进行 累加,然后求平均值,则该模块的内聚性是__________依次内聚________ 。 19.投资回收期就是使累计的经济效益等于__最初的投资费用 ______________ 所需的时间。 20.软件生存周期是指一个软件从提出开发要求起先直到__软 件废弃____为止的整个时期。 21.曾被誉为“程序设计方法的革命”的结构化程序设计,使 程序设计从主要依靠于程序员个人的自由活动变成为有章可循的一门科学。 22.从结构化程序设计到面对对象程序设计,是程序设计方法 的又一次飞跃。 23.在单元测试时,须要为被测模块设计___测试用例_______。名词说明 1.数据词典——是描述数据信息的集合,它对数据流图中的各 个元素按规定格式进行具体的描述和准确的说明,是数据流图的补充工具。 2.数据流图——他以图形的方式反映系统的数据流程 3.白盒测试——依据程序内部的结构测试程序,检验程序中的 每条路径是否都能按预定要求正确工作。有两种测试法既逻辑覆盖测试法和路径测试法 4.黑盒测试——依据程序的功能测试程序,检验与程序功能有 关的输入、输出与程序执行是否正确。有四种方法既等价分类法、边界值分析法、错误揣测法和因果图法 5.完善性维护——为了适应用户业务和机构的发展变更而对软

最新软件工程简答题复习题(带答案)

最新软件工程简答题复习题(带答案) 第一章 1 2 1,与计算机硬件相比,计算机软件有哪些特点? 3 软件的特点如下。 4 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行5 情况来了解它的功能、特性和质量等。 6 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的7 管理过程中,渗透了大量的脑力劳动。 8 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更9 新的问题。 10 4)软件的开发和运行必须依赖于特定的计算机系统环境。 11 5)具有可复用性。 12 3,什么是软件危机?什么原因导致了软件危机? 13 软件危机的现象如下。 14 1)经费超出预算,项目一再拖延。

2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。 16 3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性17 差。 18 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 19 20 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,21 以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会 持续升高。 22 23 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 24 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等25 都无法做到准确估算,生产过程不易控制。 26 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和27 制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要28 复杂得多。

5,请简述软件工程研究的内容。 30 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管31 理过程。 32 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、33 详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、34 系统维护、版本升级等。 35 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。 36 软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。 37 38 7,请简述软件工程的目标、过程和原则。 目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。 39 40 1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、41 高效率、高效益)。 2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过

软件工程简答题及答案

软件工程试题整理_简答题 1、可行性研究的任务是什么? 首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。 2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系? 一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。 3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块? 非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同时完成。㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模块再测试。㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。渐增式测试有以下两种不同的组装模块的方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。 ②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。 ⑤重复②至④步,直至软件系统全部测试完毕。

软件工程简答题及答案

软件工程试题整理—简答题 1、可行性研究的任务是什么? 首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。 2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系? 一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点” 或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。 3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块? 非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同时完成。㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模块再测试。(六)渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。(七)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。渐增式测试有以下两种不同的组装模块的方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,直至软件系统全部测试完

相关主题
文本预览
相关文档 最新文档