软件工程复习题.docx

上传人:b****6 文档编号:8536947 上传时间:2023-01-31 格式:DOCX 页数:13 大小:407.37KB
下载 相关 举报
软件工程复习题.docx_第1页
第1页 / 共13页
软件工程复习题.docx_第2页
第2页 / 共13页
软件工程复习题.docx_第3页
第3页 / 共13页
软件工程复习题.docx_第4页
第4页 / 共13页
软件工程复习题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

软件工程复习题.docx

《软件工程复习题.docx》由会员分享,可在线阅读,更多相关《软件工程复习题.docx(13页珍藏版)》请在冰豆网上搜索。

软件工程复习题.docx

软件工程复习题

软件工程课程复习题

一、单选题

1、软件生存周期模型有多种,下列选项中,(C)不是软件生存周期模型。

A.螺旋模型B.增量模型C.功能模型D.瀑布模型 

2、检查软件产品是否符合需求定义的过程称为(D)。

A.集成测试B.确认测试C.验证测试D.验收测试

3、黑盒测试是从(C)观点出发的测试,白盒测试是从(A)观点出发的测试。

A.开发人员B.管理人员C.用户

4、可行性研究要进行一次(D)需求分析。

A.深入的B.详尽的C.彻底的D.简化的、压缩了的 

5、回归测试是(A)中最常用的方法。

A.校正性维护B.适应性维护C.完善性维护D.预防性维护

6、与选择编程语言无关的因素是(C)。

A.软件开发的方法B.软件执行的环境C.程序设计风格D.软件开发人员的知识

7、面向对象程序设计将数据与(A)放在一起,作为一个相互依存、不可分割的整体来处理。

A.对数据的操作B.信息C.数据隐藏D.数据抽象

8、软件生存周期的(D)工作和软件可维护性有密切的关系。

A.编码阶段B.设计阶段C.测试阶段D.每个阶段

9、好的软件结构应该是(C)。

A.高耦合,高内聚B.高耦合,低内聚C.低耦合,高内聚D.低耦合,低内聚

10、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是(A)

A.探索型模型B.演化型模型C.实验型模型D.提交型模型 

11、软件结构图的形态特征能反映程序重用率的是(C)

A.深度B.宽度C.扇入D.扇出

12、需求分析最终结果是产生(B)

A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告 

13、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的(C)。

A.总体B.细节C.抽象D.分解

14.可行性研究要进行一次需求分析。

答案为:

D

A.深入的B.详尽的C.彻底的D.简化的、压缩了的 

2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作B。

A.软件投机B.软件危机C.软件工程D.软件现象

  15.产生软件维护的副作用,是指   。

答案为:

C

  A.开发时的错误  B.隐含的错误C.因修改软件而造成的错误  D.运行时误操作

  16.维护中,因误删除一个标识符而引起的错误是_________副作用。

   答案为:

C

  A.文档  B.数据  C.编码  D.设计

  17.可维护性的特性中相互促进的是   答案为:

A

  A.可理解性和可测试性 B.效率和可移植性C.效率和可修改性  D.效率和结构好

18.需求分析最终结果是产生答案:

B

A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告 

  7._____是以提高软件质量为目的的技术活动。

   答案为:

D

  A.技术创新  B.测试  C.技术创造  D.技术评审

  19.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。

因此面向对象方法有许多特征,如软件系统是由对象组成的________;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。

   答案为:

C

  A.开发过程基于功能分析和功能分解  B.强调需求分析重要性

  C.把对象划分成类,每个对象类都定义一组数据和方法

  D.对既存类进行调整

  20.原型化方法是用户和设计者之间执行的一种交互构成,适用于______系统。

   答案为:

A

  A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时

  21.为了提高测试的效率,应该   。

答案为:

D

  A.随机地选取测试数据  B.取一切可能的输入数据作为测试数据

  C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据

二、填空题

1、.需求分析阶段阶段决定了系统做什么,软件设计阶段阶段决定系统如何具体实现的方案,编码阶段是系统实现的过程,软件测试阶段阶段是对实现的系统是否正确的检验,软件维护阶段阶段是找出开发阶段遗留下来的错误,而且随着用户要求的增加,环境的变化,对系统进行改造。

2、设计分为概要设计和详细设计两大步骤。

3、集成测试的方法主要有渐增式测试和非渐增式测试两种。

4、软件设计要遵守“抽象,分解,低藕合高内聚,封装,接口和实现分离”的设计原理。

5、测试阶段是在代码编写完成以后,先作单元测试,然后是集成测试、系统测试和验收测试。

7、软件维护的内容有:

纠正性维护、适应性维护、完善性维护和预防性维护。

8、一般而言,在面向对象建模过程中,人们最常用的是建立系统的用例图、类图和顺序图。

9、“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”

10、“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”。

11、结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。

基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效地控制系统开发的复杂性。

12、内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

13、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:

结构化语言、判定表、判定树。

14、结构化语言是介于自然语言和形式语言之间的一种半形式语言。

15、模块设计的基本原则是要尽量使用数据耦合,减少控制耦合,限制外部耦合和公共耦合,不使用内容耦合。

16.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的( 信息流动 )情况。

  17.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:

深度优先策略和(宽度优先策略)。

 18.详细设计的任务是确定每个模块的内部特性,即模块的算法、( 使用的数据)。

 19.有两类维护技术:

在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的( 维护支援 )技术。

  20.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:

(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。

三、名词解释

  1.经济可行性

    答:

进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。

   2.社会可行性

    答:

要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

  3.元数据、实体、中间数据

答:

元数据是组织数据的数据,描述数据的数据,关于数据的数据。

实体(指实体集或实体型),是一组相关元数据的集合。

中间数据是组织统计数据的数据,描述统计数据的数据,关于统计数据的数据。

4.软件维护定义:

答:

所谓软件维护,就是在软件产品安装、实施并交付给用户使用后,在新版本产品升级之前,这段时间里软件厂商向客户提供的服务工作,称为该软件产品的软件维护。

四、判断题

某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。

请判断哪些措施是正确的,哪能些是不正确的,并简单说明理由。

1、在分析用户需求时同时考虑维护问题。

2、测试完程序后,删去程序中的注解以缩短源程序长度。

3、在软件开发过程中保证各阶段文档的正确性。

4、编码时多用全局变量。

5、选用时间效率和空间效率尽可能高的算法。

6、尽可能利用硬件特点以提高程序效率。

7、尽可能使用高级语言编写程序。

8、进行总体设计时加强模块间的联系。

9、尽量减少程序模块的规模。

10、用数据库系统代替文件系统来存储需要长期保存的信息。

11、用CASE环境或程序自动生成工具来自动生成一部分程序。

12、尽量用可重用的软件构件来组装程序。

13、使用先进的软件开发技术。

14、采用防错程序设计技术,在程序中引入自检能力。

答:

1、正确。

在分析用户需要的同时考虑维护问题,列出将来可能变更或增加的需求,就可以在设计时为将来可能做的修改预先做一些准备,使得在用户确实提出这些维护要求时,实现起来比较容易一些。

2、不正确。

程序中的注解是提高程序可理解性的关键的内部文档,删去文档的注解必然会降低程序的可读性和可理解性,从而降低软件的可维护性。

3、正确。

完整准确的文档对提高软件的可理解性有重要贡献,保证文档的正确性是提高软件可维护性的关键。

4、不正确。

程序中使用的全局变量多,不仅违背局部化原理而且会使得具有公共环境耦合的模块数量增多,从而降低程序的可理解性、可修改性和可测试性,因此,这样的软件可维护性较差。

5、不正确。

一般说来,效率高的算法的可理解性较差,选用效率尽可能高的算法将降低软件的可维护性。

事实上,程序的效率能够满足用户的需求就可以了,没有必要盲目地追求尽可能高的效率。

6、不正确。

程序对硬件特点依赖越多,运行程序的硬件变更时适应性维护的工件量也就越大。

7、正确。

用高级语言编程时,用户可以给程序变量和程序模块赋予含义鲜明的名字,通过名字能够比较容易地把程序对象和它们所代表的实体联系起来。

此外,高级语言使用的概念和符号更符合人的习惯。

上述事实都使得用高级语言编写的程序更容易理解,因此也就更容易维护。

8、不正确。

模块间耦合越紧密,程序就越难理解和修改,修改后测试也比较困难。

因此,加强模块间的联系将降低软件的可维护性。

9、不正确。

程序模块的规模很小,就会使程序中包含的模块很多,这将使模块间的接口数量大大增加,从而增加了理解、修改和测试程序的难度,降低了软件的可维护性。

10、正确。

数据库系统比文件系统使用起来更方便、更安全,用数据库系统代替文件系统来存储需要长期保存的信息,可减少差错,降低改正性维护需求的数量。

此外,使用数据库系统的程序比使用文件系统的程序更容易修改。

上述事实表明,用数据库系统代替文件系统来存储需要长期保存的信息,将提高软件的可维护性。

11、正确。

自动生成的程序段没有差错,对软件的改正性维护需求自然减少。

当因用户的需求变更而需要修改程序时,可以先修改相应部分的规格说明,然后用CASE环境或程序自动生成工具自动生成需改动的程序,显然,这样做可以降低维护的工作量。

12、正确。

可重用的软件构件基本上没有错误,用这样的构件组装成的程序可靠性高,改正性维护需求自然就比较少。

此外,可重用的软件构件适应性强,应用范围广,容易使它适应新需求,因此,用这样的构件组装成的程序也较容易实现适应性或完善性维护。

13、正确。

用先进的软件技术开发出来的软件容易理解、容易修改、容易重用,因此,可维护性较好。

14、正确。

在程序中引入自检能力可以显著提高软件的可靠性,因此将明显减少改正性维护需求的数量。

五、简答题

1、什么是软件过程?

它与软件工程方法学有何关系?

答:

软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。

软件过程是软件工程方法学的3个重要组成部分之一。

2、什么是软件生命周期模型?

试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。

答:

软件生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

四种模型的优缺点在于:

(1)瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文挡驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户真正需要的。

(2)快速原型模型正是为了克服瀑布模型的缺点而提出来的。

它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。

(3)增量模型具有可在软件开发的早期阶段使投资获得明显回报和教易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。

(4)风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。

3、在软件开发的早期阶段为什么要进行可行性研究?

应该从哪些方面研究目标系统的可行性?

答:

可行性研究的目的不是解决问题,而是确定问题是否值得去解决。

实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

应该从以下的方面研究目标系统的可行性:

(1)技术可行性:

使用现有的技术能实现这个系统吗?

(2)经济可行性:

这个系统的经济效益能超过它的开发成本吗?

(3)操作可行性:

这个系统的操作方式在该客户组织内行得能工通吗?

4、怎样与用户有效地沟通以获取用户的真实需求?

答:

分析员与用户沟通进行需求分析的典型方法如下所述:

1.访谈:

它有两种基本形式,分别是正式的和非正式的访谈。

2.面向数据流自顶向下求精。

3.简易的应用规格说明技术。

4.快速建立软件原型。

5、什么是功能模型?

建立功能模型时主要使用哪些图形符号?

答:

功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。

通常,功能模型由一组数据流图组成。

建立功能模型时主要使用的图形符号如下所示:

或数据的源点/终点

或变换数据的处理

或数据存储

数据流

6、为什么要选择软件开发模型?

软件开发模型与软件生存周期有什么关系?

答:

因为软件开发模型是软件工程研究的四大内容之一,它虽然不是软件工程研究的重点,但是在宏观上特别重要。

软件公司的项目组在开发一个大项目或产品时,首先在技术上必须选择一个开发模型,使开发模型非常适合这个项目或产品的生存周期;随后通过对生存周期的裁减,来给出适合与本项目或产品的软件生存周期定义。

软件的开发模型与软件生存周期有关:

不同的开发模型,可能对应着不同的生存周期。

生存周期不同,该软件的开发阶段划分、评审次数、基线标准都有所不同,甚至维护方法都有所区别。

7、请说明“三个模型”的定义,以及三者之间的关系。

答:

功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。

业务模型是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。

数据模型是描述系统工作前的数据来自何处,工作中的数据存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。

功能模型和业务模型是在需求分析时建模,是两个基本点。

数据模型是一个中心,在设计时建模。

功能模型和业务模型给数据模型提供数据与维护数据,数据模型支持功能模型和业务模型的正常运行。

8、需求分析的目的是什么?

需求分析的难点在哪?

答:

软件需求分析,其目的是用于说明软件产品或软件项目需要满足的条件和限制。

在软件工程项目中首先要获取用户的需求,通过对软件需求的提取、分析、文档化及验证,为进一步的设计和实现提供依据。

需求分析的难点是:

在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。

万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。

要知道,合同是具有法律效力的。

9.可行性研究报告的主要内容有哪些?

  答:

一个可行性研究报告的主要内容如下:

  

(1)引言:

说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。

(2)可行性研究前提:

说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。

(3)对现有系统的分析。

(4)所建议系统的技术可行性分析。

(5)所建议系统的经济可行性分析。

(6)社会因素可行性分析。

(7)其他可供选择方案。

(8)结论意见。

 10.系统设计的内容是什么?

    答:

系统设计阶段先从高层入手,然后细化。

系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。

主要内容为:

(1)系统分解。

(2)确定并发性。

(3)处理器及任务分配。

(4)数据存储管理。

(5)全局资源的处理。

(6)选择软件控制机制。

(7)人机交互接口设计。

 11.什么是软件危机?

软件危机的表现是什么?

其产生的原因是什么?

    答:

软件开发技术的进步一直未能满足发展的需要。

在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

软件危机表现在以下四个方面:

(1)经费预算经常突破,完成时间一再拖延。

(2)开发的软件不能满足用户要求。

(3)开发的软件可维护性差。

(4)开发的软件可靠性差。

造成软件危机的原因是:

(1)软件的规模越来越大,结构越来越复杂。

(2)软件开发管理困难而复杂。

(3)软件开发费用不断增加。

(4)软件开发技术落后。

(5)生产方式落后。

(6)开发工具落后,生产率提高缓慢。

   12.软件质量保证应做好哪几方面的工作?

    答:

软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:

(1)采用技术手段和工具。

(2)组织正式技术评审。

(3)加强软件测试。

(4)推行软件工程规范(标准)。

(5)对软件的变更进行控制。

软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。

(6)对软件质量进行度量。

即对软件质量进行跟踪,及时记录和报告软件质量情况。

六、描述题

1.网上求职招聘系统中的求职者模块包含以下功能

修改密码;更新个人资料;搜索招聘信息;发布求职意向

下载简历模版;投递简历;查看个人信箱

1)、对系统的求职者模块进行用况建模(10分

2)、设计求职者实体类和求职信息实体类(标注它们之间的关系)。

(10分)

3)、创建活动图描述修改密码用况(分泳道)(5分)

2、请用数据流图描绘以下系统的功能,并用实体-联系图描绘系统中的数据对象。

银行计算机储蓄系统的工作过程大致如下:

储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。

答:

数据流图:

实体-联系图:

5.某电器集团公司下属的厂包括技术科、生产科等基层单位。

现在想建立一个计算机辅助企业管理系统,其中,生产科的任务是:

(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。

(2)根据车间实际生产日报表、周报表调整月生产计划。

(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。

(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间。

技术科的任务是:

(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。

(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。

试写出以上系统中生产科和技术科处理的软件结构图。

解:

2)

3)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1