如何评测软件工程知识技能水平?

一、软件工程师的软件工程知识技能水平高低主要体现在哪些方面

(1) 良好的编码能力

(2) 自觉的规范意识和团队精神

(3) 认识和运用数据库的能力

(4) 较强的英语阅读和写作能力

(5) 具有软件工程的概念

(6) 求知欲和进取心

 

二、软件工程考试试题

1、选择题(10*5)

(1)UML是软件开发中的一个重要工具,它主要应用于下列哪种软件开发方法_____。

 

A.基于瀑布模型的结构化方法

B.基于需求动态定义的原型化方法

C.基于数据的数据流开发方法

D.基于对象的面向对象的方法

 

答案解析: D,面向对象的技术首先是SmallTalk语言中得到应用,后来随着C++、JAVA等面向对象语言的出现,面向对象技术的广泛开发工具的支持,UML是在面向对象的软件开发在设计阶段常用的一个工具。

 

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

 

A.软件投机

B.软件危机

C.软件工程

D.软件产生

 

答案解析:B,将开发软件所需高成本和产品的低质量之间有着尖锐的矛盾称作软件危机。

 

(3)软件详细设计的主要任务是确定每个模块的( )。

 

A.算法和使用的数据结构

B.外部接口

C.功能

D.编程

 

答案解析:A,从软件开发的工程化观点来看,在使用程序设计语言编制程序之前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是决定各个模块的实现算法,并精确地表达这些算法。

 

(4)在结构型的瀑布模型中,哪一个阶段定义的标准将称为软件测试中系统测试阶段的目标

 

A.详细设计阶段

B.需求分析阶段

C.概要设计阶段

D.可行性研究阶段

 

答案解析:B,需求分析-系统测试,概要设计-集成测试,详细设计-单元测试

 

(5)软件开发的结构化生命周期方法将软件生命周期划分成()。

 

A.计划阶段、开发阶段、运行阶段

B.计划阶段、编程阶段、测试阶段

C.总体设计、详细设计、编程调试

D.需求分析、功能定义、系统设计

 

答案解析:A,软件开发生命周期方法是以瀑布模型为基础的,瀑布模型将软件的生命周期划分为三大阶段,即计划阶段、开发阶段和运行阶段。

 

(6)对程序进行白盒测试时,可采用(56)法设计测试用例。

 

A.等价类划分

B.边界值分析

C.逻辑覆盖

D.因果图

 

答案解析:C,常用的测试方法包括黑盒测试和白盒测试,其中黑盒测试适用于仅了解软件的功能规格,而不了解其内部工作过程和细节的情况,在设计黑盒测试用例时,可采用等价类划分法、边界值分析法、因果图、功能图和错误推测法等技术设计测试用例。白盒测试适用于已知软件的内部工作过程和实现细节的情况,可采用逻辑覆盖法、基本路径测试等技术设计测试用例。

 

(7)以下聚合类型中,内聚程度最高的是()。

 

A.通信内聚

B.时间内聚

C.逻辑内聚

D.功能内聚

 

答案解析:D,模块的内聚性表现了模块内部各个子成分(代码)功能的集中程度。按模块内聚程度从低到高排序为:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚及功能内聚。

 

(8)( )是用户和设计交换最频繁的方法。

 

A.原型化方法

B.瀑布模型方法

C.螺旋模型方法

D.构件组装模型

 

答案解析:A,原型化方法是根据用户初步需求来利用原型工具快速的建立一个系统模型展示给用户,在此基础上于用户交流。最终实现用户需求的信息系统快速开发的方法。

 

(9)一个面向对象系统的体系结构通过它的成分对象和对象间的关系确定,与传统的面向数据流的结构化开发方法相比,它具有()优点。

 

A.事务分析

B.变换分析

C.设计稳定

D.模块独立性

 

答案解析:C,面向对象方法以客观世界中的对象为中心,其分析和设计思想符合大众的思维方式,分析和设计的结果与现实世界比较接近,容易被人们所接受。在面向对象方法中,分析和设计的界线并不明显,它们采用相同的符号表示,能方便地从分析阶段平滑地过渡到设计阶段。此外,在现实生活中,用户的需求经常会发生变化,但客观世界的对象以及对象关系相对比较稳定,因此用面向对象方法分析和设计的结构也相对比较稳定。所以答案应为设计稳定。

 

(10)数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是()。

 

A.数据、公共、标记、控制

B.数据、标记、控制、公共

C.控制、数据、标记、公共

D.控制、数据、公共、标记

 

答案解析:B

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

标记耦合:如果一组模块通过参数表传递记录信息,就是标记耦合。事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。这要求这些模块都必须清楚该记录的结构,并按结构要求对此记录进行操作。

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

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。

2、判断题(10*2)

(1)软件生存周期是从软件开始开发到开发结束的整个时期。(×)

(2)软件的开发与运行经常受到硬件的限制和制约。 (√)

(3)系统流程图是一个典型的描述逻辑系统的传统工具。( × )

(4)以对象,类,继承和通信为基础的面向对象设计方法 (OOD) 也是常见的软件概要设计方法之一。(√)

(5)判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。 (√)

(6)用黑盒法测试时,测试用例是根据程序内部逻辑设计的。(×)

(7)内聚用于衡量一个模块内部的各个元素彼此结合的紧密程度。(√)

(8)UML 只能应用于软件系统模型的建立。 (X)

(9)螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√)

(10)快速原型模型可以有效地适应用户需求的动态变化。(√)

 

3、简答题(2*15)

 

(1)软件生命周期包括哪些部分,以及其各自的任务是什么?

答:

问题定义:明确要解决的问题是什么。

可行性研究:明确做不做,从经济、技术、社会因素论证解决方案的可行性。

需求分析阶段:明确做什么,提出完整、准确、清晰、具体的要求。

概要设计:明确怎么做,制定最佳方案的详细计划,系统的体系结构设计。

详细设计:明确具体做法,设计出程序的详细规格说明。

编码和单元测试:编写出正确的、易理解的、易维护的程序模块。

综合测试:通过各类的测试使软件达到预定的要求。

软件维护:通过各种必要的维护活动使系统持久的满足用户的要求。

 

(2)软件测试要经过哪些步骤? 这些测试与软件开发各阶段之间有什么关系?

答:软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。

单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能。从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。

集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。

确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求

系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一 起进行测试。以确定软件是否可以支付使用。

posted on 2020-01-06 15:23  T,T  阅读(291)  评论(0编辑  收藏  举报

导航