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

一名良好的软件工程师应具备以下能力:

(1)具有扎实的计算机专业知识

(2)  良好的语言表达能力和沟通能力

(3)  健康的心理素质

(4)  快速学习能力

(5)  团队协作能力

题目:

一、选择题

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

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

2、 瀑布模型的关键不足在于( D  )。

    A.过于简单    B.各个阶段需要进行评审

    C.过于灵活    D.不能适应需求的动态变更

3、下列模块独立性最强的是( A)

A.非直接耦合    B.数据耦合   C.公共耦合   D.内容耦合

4、需求分析阶段的任务是确定( D)。

  A.软件开发方法   B.软件开发工具

  C.软件开发费       D.软件系统的功能

5、下列选项中,不属于模块间耦合的是(B)。

  A.内容耦合  B.异构耦合

  C.控制耦合  D.数据耦合

6、在类图中,“#”表示的可见性是(B)

A.Public     B.Protected      C.Private   D.Package

7、软件特性中,一个软件能再次用于其他相关应用的程度称为( B )。

  A.可移植性   B.可重用性  

  C.容错性   D.可适应性

8、UML 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法 ( C )
  A .基于瀑布模型的结构化方法   B .基于需求动态定义的原型化方法
  C .基于对象的面向对象的方法   D .基于数据的数据流开发方法

9、面向对象的分析方法主要是建立三类模型,即(  D  )。

    A.系统模型、ER 模型、应用模型

    B.对象模型、动态模型、应用模型

    C.E-R模型、对象模型、功能模型

    D.对象模型、动态模型、功能模型

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

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

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

二、判断题

(  ×  )(1)开发软件就是编写程序。

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

(  ×  )(3)软件需求分析的任务是建立软件模块结构图。

(  ×  )(4)进行总体设计时加强模块间的联系。

(    )(5)尽可能使用高级语言编写程序。

(  ×  )(6)编程序时应尽可能利用硬件特点以提高程序效率。

(  ×  )(7)数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。

(    )(8)模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。

(  ×  )(9)系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。

(  ×  )(10)软件测试是要发现软件中的所有错误。

三、问答题

1、试举例说明聚集关系中共享聚集和组合聚集有何不同?

      如果在聚集关系中部分对象可同时参与多个整体对象的构成,则该聚集称为共享聚集。例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是一种共享聚集的关系。
如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。例如,在屏幕上一个窗口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之间的关系为组合聚集关系。

2、什么是白盒测试?什么是黑盒测试?

答:白盒测试又称为结构测试,它的前提条件是可以看成将程序放在一个透明的白盒子中,也就是完全了解了软件系统的结构和整个处理过程。黑盒测试又叫功能测试、数据驱动测试或基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。

3、简述你对模块独立性的理解。
      模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,模块内部各部分及模块间的关系的--种衡量标准,由内聚和耦合来度量。
      模块独立性的重要性:具有独立的模块的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化;独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够"插入"模块。总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。

posted @ 2020-01-06 22:29  Xpeng2333  阅读(743)  评论(0编辑  收藏  举报