文档库 最新最全的文档下载
当前位置:文档库 › 软件工程习题及答案

软件工程习题及答案

软件工程习题及答案
软件工程习题及答案

第1章软件与软件工程的概念

1.1 举出你所知道的应用软件的例子。

办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。

1.2 认为“软件就是程序,软件开发就是编程序。”这种观点是否正确?为什么?

认为“软件就是程序,软件开发就是编程序。”这种观点是错误的。

首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。

1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?

可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。

1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?

软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

典型表现:

(1)对软件开发成本和进度的估计常常很不准确。

(2)用户对“已完成的”软件系统不满意的现象经常发生。

(3)软件产品的质量往往靠不住。

(4)软件常常是不可维护的。

(5)软件通常没有适当的文档资料。

(6)软件成本在计算机系统总成本中所占的比例逐年上升。

(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用

迅速普及深入的趋势。

产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:

(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。

(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。

(3) 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。

(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及

技术问题,更重要的是必须有科学严格的管理。

(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。

1.5 什么是软件工程?

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

1.6 简述软件生存期由哪些主要的阶段组成,每一阶段的主要任务是什么?

(1)问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”。

可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值得做?”。

(2)需求分析:这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标

系统必须做什么”这个问题。

(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段

中制定设计方案,把已确定的各项需求转换成相应的软件体系结构。结构中的每一组成部分都是意义明确的构件,此即所谓概要设计。进而具体描述每个构件所要完成的工作,为源程序编写打下基础,此即所谓详细设计。

(4)程序编码和单元测试:本阶段要解决的问题是“正确地实现已做的设计”,为此,需要

选择合适的编程语言,把软件设计转换成计算机可以接受的程序代码,并对程序结构中的各个模块进行单元测试,然后运用调试的手段排除测试中发现的错误。要求编写出的程序应当是结构良好、清晰易读的,且与设计相一致的。

(5)集成测试和系统测试:集成测试的任务是将已测试过的模块按设计规定的顺序组装起

来,在组装的过程中检查程序连接的问题。系统测试的任务是根据需求规格说明的要求,对必须实现的各项需求,逐项进行确认,判定已开发的软件是否符合用户需求,能否交付用户使用。为了更有效地发现系统中的问题,通常这个阶段的工作由开发人员、用户之外的第三者承担。

(6)运行维护:已交付的软件投入正式使用,便进入运行维护阶段。这一阶段可能持续若

干年。软件在运行中可能由于多方面的原因,需要对它进行维护。通常有四种类型的维护:改正性维护、适应性维护、完善性维护和预防性维护。

1.7 常见的软件生存期模型主要有哪些?每种模型的优缺点是什么?

常见的软件生存期模型主要有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型和统一过程。

(1)瀑布模型

优点:可强迫开发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

缺点:由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要;用户往往需要等待很长时间才能看到可以运行的程序;适应需求变更的能力比较差。

适用范围:瀑布模型只适用于项目开始时需求已确定的情况。

(2) 快速原型模型

优点:有助于满足用户的真实需求;原型系统已经通过与用户的交互而得到验证,据此产生的规格说明文档能够正确地描述用户需求。

缺点:要求开发人员快速建立原型。

适用范围:适用于需求不明确的软件项目。

(3) 增量模型

优点:

●能在较短时间内向用户提交可完成一些基本功能的产品,即从第一个构件交付之日起,

用户就能做一些有用的工作。

●逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新

的软件可能给用户组织带来的冲击。

●项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能

够成功地交付给客户。

●优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。因此,最重要的系

统服务将接受最多的测试。

缺点:

●在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产

品。

●软件体系结构必须是开放的,即向现有产品中加入新构件的过程必须简单、方便。

适用范围:适用于工期紧张、功能可以划分、比较复杂的软件项目。软件工程师必须有较高的技术水平,能够设计出开放的软件体系结构。

(4) 螺旋模型

优点:

●对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开

发的一个重要目标;

●减少了过多测试或测试不足所带来的风险;

●在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。

缺点:螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还以为一切正常。

适用范围:适用于内部开发的大型软件(开发周期长、比较容易受到社会因素影响的软件项目),软件开发人员具有丰富的风险评估知识和经验。

(5) 喷泉模型

优点:在开发过程中使用统一的概念和方法,各阶段之间没有明显的界限,容易实现各个开发过程的多次反复迭代,达到了认识的逐步深化,降低了出错的可能性。

缺点:由于各个阶段之间的界线不明确,容易造成软件开发过程的无序。

适用范围:适用于面向对象的软件开发。

(6) 统一过程

优点:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供了较大的通用性。

缺点:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

1.8 区分单元测试、集成测试和系统测试。

●单元测试是针对程序模块所进行的测试,一般由编码人员完成,主要检查程序是否与详

细设计相符。

●集成测试的任务是将已测试过的模块按设计规定的顺序组装起来,在组装的过程中检查

程序连接中的问题,主要检查是否与概要设计相符。

●系统测试的任务是根据需求规格说明的要求,对必须实现的各项需求,逐项进行确认,

判定已开发的软件是否符合用户需求,能否交付用户使用。为了更有效地发现系统中的

问题,通常这个阶段的工作由开发人员、用户之外的第三者承担。

1.9 统一过程的6个核心工作流是什么?

在统一过程中,有5个核心工作流,即需求工作流、分析工作流、设计工作流、实现工作流和测试工作流。

1)需求工作流

需求工作流的目标是确保开发人员构建正确的系统。这是通过足够清晰、准确地描述目标信息系统来达到的,以使两个主要的风险承担者(客户和开发人员)可以对信息系统应该做什么和不应该做什么达成一致的意见。

2)分析工作流

分析工作流的目标是分析和细化需求。通过执行该任务,能够对我们必须正确开发信息系统并轻松维护它的这种需求具有更详细的理解。

3)设计工作流

设计工作流是对分析工作流的细化,直到设计模型可以被程序员实现为止。

4)实现工作流

实现工作流的目标是:用选择的实现语言实现目标系统。

5)测试工作流

测试工作流是质量保证组的职责。每个构件一旦实现,就由质量保证组对其进行测试,这称为单元测试。在每次迭代的末尾,会执行集成测试。

6)部署工作流

制作软件的外部版本、软件打包、分发、为用户提供帮助和支持。

1.10 给出两个不是核心过程工作流的工作流。

“配置与变更管理”和“项目管理”不是核心过程工作流。

1.11 统一过程的4个阶段是什么?

统一过程的4个阶段是初始阶段、细化阶段、构造阶段和移交阶段。

(1) 初始阶段主要关注项目计划和风险评估,其目的是确定是否值得开发目标信息系统。

(2) 细化阶段关心定义系统的总体框架,其目标是:细化初始需求(用例)、细化体系结构、监控风险并细化它们的优先级、细化业务案例以及制定项目管理计划。

(3) 构造阶段是建立系统,构造信息系统的第一个具有操作质量的版本,以能够交付给

客户进行β测试的版本结束,有时称为测试版本。

(4) 移交阶段包含β测试时期,以发布完整的系统而终止,其目标是确保信息系统真正

满足客户的需求。

1.12 在软件工程知识体中,将软件工程划分为哪些知识域?

SWEBOK指南将软件工程知识体系划分为10个知识域(Knowledge Areas,KA),分

为两类过程。一类是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软

件维护;另一类是支持和组织过程,包括软件配置管理、软件工程管理、软件工程过程、软

件工程工具与方法、软件质量。

6.6 比较α测试与β测试,说明其异同。

α测试与β测试都是集成测试之后所进行的测试,都属于系统测试。所不同的是,α测试是在开发环境中所做的测试,主要由开发方人员进行。而β测试则是在用户实际工作环境中所做的测试,不受开发人员的干预。

6.4 简要说明白盒测试和黑盒测试的区别。如果认真做了两者之一,还需要再做另一种测试吗?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

(1) 对程序模块的所有独立的执行路径至少测试一遍。

(2) 对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

(3) 在循环的边界和运行的界限内执行循环体。

(4) 测试内部数据结构的有效性,等等。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

(1) 是否有不正确或遗漏的功能?

(2) 在接口上,输入是否能正确的接受?能否输出正确的结果?

(3) 是否有数据结构错误或外部信息(例如数据文件)访问错误?

(4) 性能上是否能够满足要求?

(5) 是否有初始化或终止性错误?

6.3 说明验证和确认的区别。

验证(Verification)是指提供客观证据对规定要求已得到满足的认定。确认(Validation)是指通过提供客观证据对特定的语气用途或应用要求已得到满足的认定。

验证和确认之间的区别是:验证表明的是满足规定要求,而确认表明的是满足预期用途或应用要求,简单地说,确认就是检查最终产品是否达到顾客使用要求。

验证要保证“做得正确”,而确认则要保证“做的东西正确”。

6.1 有一种观点认为,软件测试的目的在于证明开发出的软件没有缺陷。这种观点能够接受吗?为什么?

这种观点是不对的。软件测试的目的是想以最少的时间和人力系统地找出软件中潜在的各种错误和缺陷。测试只能证明软件中存在缺陷,如果在测试中没有发现缺陷,并不能证明开发的软件没有缺陷。

6.2 通过测试活动能够把软件中含有的缺陷全部找到吗?为什么?

测试活动不能将软件中含有的缺陷全部找到。因为,无论使用黑盒测试还是百盒测试,穷举测试都是不可能的。

4.1 当你“编写”程序时你设计软件吗?软件设计和编码有什么不同吗?

在“编写”程序时并没有设计软件。软件设计包括概要设计和详细设计,编码是将详细

设计中的过程描述转换成用程序设计语言来描述。

4.2 举出3个数据抽象的例子和可以用来操作这些数据抽象的过程抽象的一个例子。

抽象是忽略事物的细节,获取其本质特征的过程。抽象是一种重要的机制,使人们能

够对复杂系统能够很好地理解、交流和推理。在软件领域,可以将抽象分为两类,即数据抽

象和过程抽象。

在传统的结构化程序设计语言中,就提供了这两种抽象机制。

(1) 数据抽象:在所有的结构化程序设计语言中,用户都可以自定义抽象数据类型。如定义抽象数据类型Student(学生)、Course(课程)、ClassScoreList(班级成绩单)。

(2) 过程抽象:过程抽象也称为是基于方法的抽象。过程抽象使我们关心处理过程的名字和它能做什么,而无需知道如何完成所有实现细节。如求班级总平均分average(ClassScoreList)就是一个过程抽象。

在面向对象的程序设计语言中,抽象与封装的概念密切相关,数据抽象和相关的过程

抽象被封装在类中,不同类中相似的过程抽象(方法)又可以进一步抽象,放在接口中。封

装是保证事物有明确内外界限的机制。内部是受保护的,与外部事物相隔离。

4.6 一些设计人员认为所有的数据流都可以当做是变换流。试讨论当事务流被当成变换流时,会对导出的软件体系结构有什么影响。请使用例子来说明要点。

当事务流被当成变换流时,首先按变换流导出软件结构,之后再将位于中间的“变换模块”替换成事物中心。所不同的是,其输入数据不是来自下属的输入模块,而是从最顶层的主控模块传入的,输出数据也是传给主控模块,之后再由主控模块传给输出模块。这样会增加模

块层次及数据的传送次数

4.7 什么是持久的数据源?

对于应用系统来说,持久的数据源是指应用系统关闭再重新启动后,关闭之前的数据

依然存在。这些数据一般要存储在文件或数据库中。

4.12 对于给定的算法,如何判断它是否是结构化的?

对于给定的算法,如果符合以下三条原则,就可以判断它是结构化的。

(1) 使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。

(2) 选用的控制结构只准许有一个入口和一个出口。

(3) 程序语句组成容易识别的块(Block),每块只有一个入口和一个出口。

4.9 将大的软件划分成模块有什么好处?是不是模块划分得越小越好?划分模块的依据是

什么?

将大的软件划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职

责。这种方法有利于将复杂的问题简单化,是分而治之策略的具体表现。

尽管模块分解可以简化要解决的问题,但模块分解并不是越小越好。当模块数目增加时,

每个模块的规模将减小,开发单个模块的成本确实减少了;但是,随着模块数目增加,模块

之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加。

划分模块的依据是,模块只具有单一的功能且与其他模块没有太多的联系。

3.11 用自己的语言描述XP的重构和结对编程的概念

?重构:以不改变代码外部行为而改进其内部结构的方式来修改软件系统的过程。它是一种修改或简化内部设计,净化代码的方法,目的是尽可能减少错误、优化系统。

?结对编程:两个人面对同一台计算机共同为一个故事开发代码。它提供了一种实时解决问题和实时质量保证机制,同时也使得开发者能集中精力于手头的问题。

5.3 域分析的目的是什么?如何将域分析与需求模式概念相联系?

域分析识别、分析和详细说明某个特定应用领域的公共需求,特别是在该应用领域内被多个项目重复使用的需求。其目的是查找或创建那些广泛应用的分析类和分析模式,使其能够复用。

软件需求模式是对软件项目中经常遇到情形的抽象描述,一个需求模式是一组相关的通用对象,描述了本质的属性、行为和交互等。域分析正是关注了特定应用领域内的需求模式,以支持软件复用。

6.1 对于需求分析,结构分析与面向对象策略有何本质区别?

?结构化分析主要考虑数据加工过程,把软件看成信息转换器,识别数据对象、对象间的关系以及数据对象所经历的加工。

?面向对象的建模主要考虑用例所处的问题域,识别定义问题的类(不仅识别其属性集,还要定义对属性的操作集),并进一步描述类之间的关系,面向对象的分析常用UML来建模

6.6 PSPEC和用例是同一事物吗?如果不是,请解释区别。

不是。用例是从使用者角度描述特定的使用场景。PSPEC则是在系统流程模型的精化过程中引入的,描述了最终层次的所有流程模型的处理。

5.6 路面坑洼跟踪和修补系统

3.10 什么是XP的“Spike解决方案”?

在某个故事设计中碰到困难时,立即建立此部分设计的可执行原型,实现并评估设计原型。从而在真正的实现开始前降低风险,并对可能存在设计问题的故事确认其最初的估计。

5.说明软件测试和调试的目的有何区别?

答:测试的目的是判断和发现软件是否有错误(2。5分)调试的目的是定位软件错误并纠正错误。(2.5分)

软件生命期各阶段的任务是什么?

答:软件生命期分为7个阶段:

1、问题定义:要解决的问题是什么

2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性

3、需求分析:系统必须做什么

4、总体设计:系统如何实现,包括系统设计和结构设计

5、详细设计:具体实现设计的系统

6、实现:编码和测试

7、运行维护:保证软件正常运行

软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。

?通信内聚:一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出

数据

?顺序内聚:模块中各个处理元素密切相关,必须顺序执行,前一功能元素的输出就是下一功能元素的输入

过程内聚:基于流程图设计软件时,把流程图中的某一部分划出组成模块,就得到过程内聚模块

时间内聚:通常为多功能模块,模块的各个功能的执行与时间有关,要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。

逻辑内聚:模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定应执行哪一种功能。仅高于实用内聚

?实用内聚:在其他方面不相关的构件、类或操作被分入了同一个模块

?分层内聚:高层能够访问低层的服务、但低层不能访问高层的服务

?内容耦合:包括下列情形:

(1) 一个模块直接访问另一个模块的内部数据;

(2) 一个模块不通过正常入口转到另一模块内部;

(3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言程序中);

(4) 一个模块有多个入口

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合称为公共耦合。公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

?控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,控制选择另一模块的功能,就是控制耦合。

印记耦合:一个数据结构被作为参数传递并且被调用模块只使用了部分而非全部数据

如果不通读整个模块,无法确定哪一项目被访问或改变传送了不必要的数据

?不受限制的数据访问可能引起“副作用”,也可能成就计算机犯罪

数据耦合:如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换信息的,则称这种耦合为数据耦合

与印记耦合的区别:是否利用了全部数据

例程调用耦合:一个操作调用另一个操作

类型使用耦合:构件A中使用了在构件B中定义的一个数据类型

包含或者导入耦合:构件A引入或者包含一个构件B的包(java)或者内容(C语言)

外部耦合:两个构件共享数据格式,通信协议或设备接口

?

软件工程考试题库

软件工程考试题库 Final approval draft on November 22, 2020

一填空题 1.用原型过程代替全部开发阶段,这种快速原型是(实验型或演化型)原型。 2.可行性研究实质上是进行一种简化、压缩了的(需求分析和设计)。 3.结构图的主要内容有(模块)、(模块的控制关系)、(模块的信息传递)。 4.模块之间的联系越紧密,其耦合性就越(强),模块的独立性就越(差)。 5.软件工程研究的主要内容包括软件开发技术和软件开发管理两个方面,在软件开发技术方面,主要是研究(软件开发方法)、(软件开发过程)、(软件开发工具和环境),在软件开发管理方面,主要是研究(软件管理学)、(软件经济学)、(软件心理学)。 6.状态图反映了(状态)与(事件)的关系,状态图确定了由事件序列引起的(状态序列)。 7.可行性研究实质上是进行一种简化、压缩了的(需求分析和设计)。 8.在数据流图中,(数据流)是数据在系统内传播的路径,因此由一组(成分固定的数据项)组成,加工(又称为数据处理)是对数据流进行某些(操作或交换)。 9.(偶然内聚)指一个模块内的各处理元素之间没有任何联系,这是内聚程度最(差)的内聚。 10假如n个相同的系统(硬件或软件)进行测试,它们的失效时间分别是t1,t2,tn,则平均失效等待时间MTTF=(1/n )。 11(维护申请报告)是一种由用户产生的文档,它用作计划维护任务的基础。 12在软件开发和维护过程中,一个软件往往有许多版本,版本控制工具用来存储、更新、恢复和管理一个软件的(多个版本)。 13软件工具通常由工具、(工具接口)和用户工具三个部分组成。 14类的实例化是(对象)。 15形式化规约语言由(语法)、(语义)和(一组关系)组成。 16 软件质量保证应从(产品计划和设计)开始,直到投入使用和售后服务的软件生存期的每一个阶段中的每一步骤。 17 为了提高软件的质量,软件质量保证的任务大致可归结为以下8类:(正确定义用户要求)、(技术方法的应用)、(提高软件开发的工程能力)、(软件的复用)、(发挥每个开发者的能力)、(组织外部力量协作)、(排除无效劳动)、(提高计划和管理质量)。 18 软件测试时需要的三类信息,分别是(软件配置)、(测试配置)、(测试工具)。 19 在面向对象方法中,信息隐蔽通过对象的(封装性)来实现,类结构分离了(接口)与(实现),从而支持了信息隐蔽。 20 增量模型在开发工程中以一系列(增量方式)开发系统,推迟某阶段的(细节),从而(尽早)产生工作软件。 二选择题 1.(A)是计算机程序及其说明程序的各种文档。 A 软件 B文档 C 数据 D 程序 2.软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、(B)和维护等活动。 A 应用 B 测试 C 检测 D 以上答案都不正确 3.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)。 A 用于验证软件需求的原型 B 垂直原型 C 用于验证设计方案的原型 D 用于演化出目标系统的原型

软件工程课后习题集(含答案解析)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规、项目规。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程复习题答案

一、选择题 1.软件工程研究的主要内容有(ABCD) 2.A. 软件开发方法、技术 B. 软件开发工具及环境 3.C. 软件管理技术 D. 软件规范(国际规范) 4.目前典型的软件开发模型有(ABCD): 5.A. 瀑布模型 B. 增量模型 C.螺旋模型 D.喷泉模型 6.包含风险分析的软件工程模型是(C): 7.A. 瀑布模型 B. 增量模型 C.螺旋模型 D.喷泉模型 8.软件危机的主要表现是(BD) 9.A. 软件成本太高 B. 软件产品的质量低劣 10. C. 软件开发人员明显不足 D. 软件生产率低下 11.以下属于非功能需求的有(ABC) 12. A. 机构需求 B. 产品需求 C. 外部需求 D. 领域需求 13.需求分析的作用是(ABCD) 14. A. 定义软件的范围及必须满足的约束 15. B. 确定软件的功能和性能及与其他系统成分的接口 16. C. 建立数据模型、功能模型和行为模型 17. D. 最终提供需求规格说明,并用于作为评估软件质量的依据 18.需求工程的基本活动包括(ABCD) 19. A. 获取需求 B. 需求分析与建模 C. 确认需求 D. 进化需求 20.需求获取之所以困难,其主要原因有(ABCD) 21. A. 缺乏领域知识 B. 存在默认的知识 22. C. 存在多个知识源 D. 客户可能的偏见 23.常用的需求分析方法有(BCD) 24. A. 功能分析方法 B. 结构化分析方法 25. C. 信息建模法 D. 面向对象的分析方法 26.数据词典中可包含的条目有(ABCD) 27.A. 数据流 B. 数据项 C. 文件 D. 加工 28.属于分布式的软件体系结构有(B) 29.A. 仓库模型 B. 客户/服务器模型 C. 分布式对象结构 D. 中间件 30.对于以下给出的几种类型的耦合,按照耦合性由高到低排列的是(A) 31.(1)内容耦合(2)公共耦合(3)控制耦合(4)复合耦合(5)数据耦合32.A. 1 2 3 4 5 B. 1 3 4 2 5 C. 1 2 5 3 4 D. 5 4 3 2 1 33.对于块内部联系的类型,内聚性由弱到强的是(A) 34.(1)偶然型(2)逻辑型(3)瞬时型(4)通信型(5)顺序型(6)功能型35.A. 1 2 3 4 5 6 B. 1 2 4 5 3 6 C. 3 2 4 1 5 6 D. 6 5 4 3 2 1 36.(C)是指相同的操作(或函数、过程)作用于不同的对象上并获得不同的结果37.A. 继承性 B. 封装性 C. 多态性 D. 动态绑定 38.以下UML的几种图中,属于动态模型的有(ACD) 39.A. 状态图 B. 类图 C. 合作图 D. 顺序图 40.以下软件复用中,抽象程度最低的是(A) 41.A. 代码的复用 B. 设计结果的复用 C. 分析结果的复用 D. 测试信息的复用42.以下软件复用中,抽象程度最高的是(D) 43.A. 代码的复用 B. 设计结果的复用 C. 分析结果的复用 D. 测试信息的复用

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 ?软件也会磨损和老化。(X) ?完善性维护是提高或完善软件的性能。(√) ?数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) ?软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) ?软件模块之间的耦合性越弱越好。(√) ?如果通过软件测试没有发现错误,则说明软件是正确的。(X) ?快速原型模型可以有效地适应用户需求的动态变化。(√) ?模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高聚,低耦合度的软件产品。(√) ?集成测试主要由用户来完成。(X) ?确认测试计划应该在可行性研究阶段制定(X) ?白盒测试无需考虑模块部的执行过程和程序结构,只要了解模块的功能即可。(X) ?软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) ?软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) ?系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)?模块越多,开发成本越小。(╳) ?软件测试的目的就是证明软件没有错。(╳) ?PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) ?在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) ?SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) ?HIPO 法既是需求分析方法,又是软件设计方法。(√) ?在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) ?加工小说明是对系统流程图中的加工进行说明。(×) ?判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) ?需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) ?分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) ?信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) ?用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) ?PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) ?设计阶段的输出是编码阶段的输入.(√) ?通过软件测试,可以发现软件中所有潜伏的错误.(X) ?非结构化维护用于软件的配置中只有源代码维护.(√) ?系统规格说明是系统分析和定义阶段生成的一种文档.(√) ?数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

软件工程考试题库

软件工程概述 一单项选择 1.软件生命周期一般包括:软件开发期和软件运行期,下述(D)不是软件开发期所应包含的内容。 A需求分析B结构设计C程序编制D软件维护 2.软件是一种逻辑产品,它的开发主要是(A)。 A研制B拷贝C再生产D复制 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是(C)。 A喷泉模型B增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B)阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计B可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C)产品 A有形B消耗C逻辑D文档 6.(C)把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A原型模型B螺旋模型C基于知识的智能模型D喷泉模型 7.(B)阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。 A概要设计B详细设计C编码D测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A)。 A原型模型B瀑布模型C基于知识的智能模型D变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是(C)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是(D)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C)。 A可修改性B可靠性C可适应性D可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B)。 A可移植性B可重用性C容错性D可适应性 13.软件特性中,(A)是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性D可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为(B)。 A可理解性B可维护性C可适应性D可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C). A可理解性B可修改性C可移植性D可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是(D)。 A有效性B可适应性C正确性D可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A)。 A可修改性B可适应性C可维护性D可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B)。 A可理解性B可互操作性C可维护性D可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向

软件工程习题及答案

软件工程习题及答案

软件工程习题及答案 一、选择题: 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、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程课后习题参考答案

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

软件工程题库

软件工程单元一(概述) 一单项选择 1.软件是一种逻辑产品,它的开发主要是(A )。 A研制B拷贝C再生产D复制 2.软件生命周期一般包括:软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。 A需求分析 B 结构设计C程序编制D软件维护 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。 A喷泉模型 B 增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B )阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C )产品 A有形 B 消耗C逻辑D文档 6.(C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型 7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。A概要设计 B 详细设计 C 编码 D 测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A )。 A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是(D )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C )。 A可修改性B可靠性C可适应性 D 可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B )。 A可移植性B可重用性 C 容错性 D 可适应性 13.软件特性中,(A )是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性 D 可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为(B )。 A可理解性 B 可维护性C可适应性 D 可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C ). A可理解性B可修改性C可移植性 D 可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。 A有效性B可适应性C正确性 D 可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A )。 A可修改性B可适应性C可维护性 D 可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B )。 A可理解性B可互操作性C可维护性 D 可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力指的是(C )。 A 可理解性 B 可互操作性C可追踪性 D 可维护性 20.软件的可修改性支持软件的(D )。 A 有效性 B 可互操作性C可追踪性 D 可维护性 21.软件的可移植性支持软件的(A )。 A 可适应性 B 可互操作性C可追踪性 D 有效性 22.软件的可理解性支持软件的(B )。

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程考试题(带答案)..

一、选择题 1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B) A) 可行性研究,问题定义,需求分析。 B) 问题定义,可行性研究,需求分析。 C) 可行性研究,需求分析,问题定义。 D) 以上顺序都不对。 2.可行性研究主要从以下几个方面进行研究:(A) A)技术可行性,经济可行性,操作可行性。 B)技术可行性,经济可行性,系统可行性。 C)经济可行性,系统可行性,操作可行性。 D)经济可行性,系统可行性,时间可行性。 3 耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下:(C) A) 内容耦合,控制耦合,数据耦合,公共环境耦合。 B) 内容耦合,控制耦合,公共环境耦合,数据耦合。 C) 内容耦合,公共环境耦合,控制耦合,数据耦合。 D) 控制耦合,内容耦合,数据耦合,公共环境耦合。4.在详细设计阶段所使用到的设计工具是:(A) A) 程序流程图,PAD图,N-S图,HIPO图,判定表, 判定树. B) 数据流程图,Yourdon 图,程序流程图,PAD图, N-S图,HIPO图。 C) 判定表,判定树,PDL,程序流程图,PAD图,N- S图。 D) 判定表,判定树,数据流程图,系统流程图,程序 流程图,层次图。 5 按照软件工程的原则,模块的作用域和模块的控制域之间的关系

是:(A) A)模块的作用域应在模块的控制域之内。 B)模块的控制域应在模块的作用域之内。 C)模块的控制域与模块的作用域互相独立。 D)以上说法都不对。 6在软件生命周期中,能准确确定软件系统的体系结构的功能阶段是(C) A.概要设计 B.详细设计 C.需求分析 D.可行性分析 7下面不是软件工程的3个要素的是(C) A过程 B.方法 C.环境 D.工具 8.下面不属于软件的组成的是(B) A程序 B.记录 C.文档 D.数据 9在瀑布模型中,将软件分为若干个时期,软件项目的可行性研究一般归属于(C) A.维护时期 B.运行时期 C.定义时期 D.开发时期 10.在瀑布模型中,下面(C)是其突出的缺点。 A.不适应平台的变动 B.不适应算法的变动 C.不适应用户需求的变动 D.不适应程序语言的变动 11下面不属于软件的特点的是(D)。 A软件是一种软件产品 B软件产品不会用坏,不存在磨损、消耗问题 C软件产品的生产主要是研制 D软件产品非常便宜 12 软件开发工具是协助开发人员进行软件开发活动所使用的软件或环境。下面不是软件开发工具的是(A)。

软件工程题库及答案

一、选择题 软件(2) 1.在软件开发的各种资源中,( D )是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 2.软件的复杂性是(A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(D )。 A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档 4.软件是一种(B )产品。 A、有形 B、逻辑 C、物质 D、消耗 软件危机(1) 5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了 ( A ) A.软件危机B.软件工程C.程序设计革命D.结构化程序设计 7.3:以下哪一项不是软件危机的表现形式( C ) (A)成本高(B)生产率低 (C) 技术发展快(D)质量得不到保证 8.4:“软件危机”产生的主要原因是( A )。 A.软件日益庞大 B.开发方法不当 C.开发人员编写程序能力差 D.没有维护好软件 9.5:软件危机是指在软件开发和( C )过程中遇到的一系列严重问题。 A 开发 B 使用C维护D更新 软件工程(2) 10.1:为了解决软件危机人们提出了用(B )的原理来设计软件,这就是软件工程诞生 的基础。 (A) 运筹学(B) 工程学(C) 软件学(D) 数学 11.2.在软件工程时期,决定软件质量的主要因素是( A )

A.管理水平 B.个人程序技术C.小组技术水平 D.硬件的发展 12. 3. 软件管理工作涉及到的直接对象不包括( B )。 A.软件开发人员 B.硬件设备 C.项目经费 D.软件项目 13. 4. 软件工程方法学有三个要素,它们是(A ) A.方法、工具和过程 B.质量、进度和成本 C.顺序、分支和循环 D.入口、过程、出口生命周期及模型(5) 14.1:软件工程中描述生命周期的瀑布模型一般包括计划、( A )、设计、编码、测试、维 护等几个阶段。 A.需求分析 B.需求调查 C.可行性分析 D.问题定义 15. 2.瀑布模型把软件生存周期划分为软件计划、软件开发与(C )三个阶段,而每一阶 段又可分为若干更小的阶段。 A. 详细设计 B. 可行性分析 C. 运行与维护 D. 测试与排错 16.3:下列哪个模型没有采用迭代的思想(A ) A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型 17.4:下列关于瀑布模型的描述正确的是( D )。 A.利用瀑布模型,如果发现问题修改的代价很低 B.瀑布模型的核心是按照软件开发的时间顺序将问题简化 C.瀑布模型具有良好的灵活性 D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开 18.5:瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 19. 6. 快速原型模型的主要特点之一是( D ) A.开发完毕才见到产品 B.及早提供全部完整的软件产品 C.开发完毕后才见到工作软件 D.及早提供工作软件 20.7:瀑布模型的关键不足在于( B ) (A)过于简单(B)不能适应需求的动态变更 (C)过于灵活(D)各个阶段需要进行评审 21.8:瀑布模型存在的问题是( D )。 A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 问题定义(1)

-软件工程习题答案参考

软件工程 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法 主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一

个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件工程题库

软件工程题库 一单项选择 1.软件是一种逻辑产品,它的开发主要是(A )。 A研制B拷贝C再生产D复制 2.软件生命周期一般包括:软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。 A需求分析 B 结构设计C程序编制D软件维护 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。 A喷泉模型 B 增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B )阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C )产品 A有形 B 消耗C逻辑D文档 6.(C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型 7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。A概要设计 B 详细设计 C 编码 D 测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A )。 A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是( D )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C )。 A可修改性B可靠性C可适应性 D 可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B )。 A可移植性B可重用性 C 容错性 D 可适应性 13.软件特性中,(A )是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性 D 可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为( B )。 A可理解性 B 可维护性C可适应性 D 可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C ). A可理解性B可修改性C可移植性 D 可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。 A有效性B可适应性C正确性 D 可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A )。 A可修改性B可适应性C可维护性 D 可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B )。 A可理解性B可互操作性C可维护性 D 可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行

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

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

一、选择 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、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 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、传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。 传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早期的错误直到开发晚期才能被发现,开发的风险较大。 3、某学校需要开发一个学生成绩管理系统,教务人员可以通过该系统维护学生信息、课程信息和成绩信息,学生可以随时查询自己的成绩单,该系统

相关文档