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

软件工程师是IT领域的重要岗位之一,随着IT行业多年的发展,软件工程师也有很多细分的方向,比如Web方向、大数据方向、物联网方向、云计算方向、人工智能方向、区块链方向等等,不同方向的软件工程师需要具备的知识结构也会有所区别。另外,不同行业(金融、教育、通信、医疗)的软件工程师往往在知识结构上也有所区别。

  通常情况下,软件工程师需要具备以下几个方面的知识结构:

  第一:操作系统知识。操作系统知识是软件工程师必须具备的重要内容,Web开发领域可能会使用到Windows系列操作系统,大数据和物联网方向要使用到Linux系列操作系统,掌握操作系统的体系结构是进行软件研发的重要基础。主要内容包括资源管理、任务调度、并发管理、权限管理、网络管理等内容。

  第二:编程语言和算法。编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言,比如Web开发可能会使用PHP、Python、Java等语言,而大数据可能会使用Java、R、Scala等语言,而物联网开发可能会使用到C、C++等编程语言。通常来说,软件工程师往往需要掌握多门编程语言,以应对不同的开发环境。算法是软件工程师的重点知识结构,因为软件研发说到底就是个数学问题,所以算法的掌握情况往往能够决定软件工程师的成长高度。当然,对于应用级软件工程师来说,也有可能不会接触到更多的算法。

  第三:领域知识。不同开发领域需要掌握不同的知识结构,比如大数据软件工程师往往需要掌握Hadoop、Spark平台的使用,而Web开发工程师往往还需要掌握前后端开发技术,包括一系列Web开发框架的使用等等。

 

期末试题整理

一.   选择题 (10 x3分)

  1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总 体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C )。

  A、详细计划  B、可行性分析  C、 运行阶段 D、 测试与排错 

 

  2、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A )。   

  A、 需求分析阶段 B、 详细设计阶段 C、 概要设计阶段 D、 可行性研究阶段

 

  3、软件工程的出现主要是由于( C )。   

  A.程序设计方法学的影响 B.其它工程科学的影响  C. 软件危机的出现 D.计算机的发展

 

  4、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )   

  A、基于瀑布模型的结构化方法       B、基于需求动态定义的原型化方法   

  C、基于对象的面向对象的方法       D、基于数据的数据流开发方法

 

  5. 软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为( A )    

  A、 瀑布模型 B、 对象模型 C、 螺旋模型 D、 层次模型

 

  6. 所有的对象可以成为各种对象类,每个对象类都定义了一组(B)  

  A、说明    B、方法    C、过程   D、类型

 

  7. 在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)  

  A、 隐藏复杂性   B、 信息隐藏     C、 即存类的重用   D、 类的开发 

 

  8、在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是(B)  

  A、数据流图    B、状态图    C、系统结构图    D、时序图

 

  9、耦合度也可以分为七级:其中最松散的耦合是(A)。 

  A. 非直接耦合 B. 数据耦合 C. 特征耦合 D. 控制耦合

 

  10、结构化程序设计理论认为,实现良好的程序结构要应用( A )的分析方法。       

  A、自顶向下 B、自底向上 C、面向对象 D、基于组件

 

二、名词解释

1.功能内聚

参考答案:功能内聚指模块内所有元素共同完成一个功能,缺一不可,因此模块不能再分割。

2.多态

参考答案:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

3.模块化

参考答案:模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程。

4.设计模式

参考答案:设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

5.实现视图

 参考答案:从程序员的角度看待系统的视图。

 

6.黑盒测试与白盒测试的差异是什么?

参考答案:

一、测试方式不同

1、黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。

2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

二、测试目的不同

1、黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

2、白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

三、测试原则不同

1、黑盒测试:以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

2、白盒测试:一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试true和false两种情况。

考察点:黑盒测试与白盒测试的差异。

来源:2019年南京大学考研真题

 

 

你可能感兴趣的:(如何评测软件工程知识技能水平?)