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

一、软件工程知识技能总结

通过本学期对高级软件工程课程的学习,我认为一个软件工程师的软件工程知识技能水平高低主要体现在如下方面:

  1. 能够熟练的掌握程序员必备的工具:VSCode、Vim、git、正则表达式。
  2. 熟悉编程规范。
  3. 掌握单元测试的方法。
  4. 熟悉Linux环境下编程。
  5. 能够对业务进行需求分析。
  6. 掌握策略模式、桥接模式、观察者模式、抽象工厂模式等设计模式。
  7. 了解软件工程过程和项目管理。

二、软件工程知识技能水平的测评试题

1. (原创)简述Vim中下列命令的含义:

  :12,20s/egg/EGG/g

  12dd

  12yy

【解析】本题旨在考查常用工具Vim的使用。

  :12,20s/egg/EGG/g表示在 12到 20行之间搜寻字符串egg并取代为EGG。

  12dd表示删除第12行。

  12yy表示复制光标所在的向下12行。

 

2. (原创)写出手机号码的正则表达式匹配,规则:共11位,第一位为1,第二位为3~9,之后为任意9个数。

【解析】本题旨在考查正则表达式的使用。相应的正则表达式为 1[3-9]\d{9}

 

3. (来源:百度文库)判断:

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

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

  (3)系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。    (F)

  (4)软件生命周期中需进行需求分析,再进行可行性研究。    (F)

 

4.  (来源:百度文库)软件需求分析阶段的工作,可以分为4个方面:需求获取,需求分析,编写需求规格说明书以及(    )

A)  用户

B)  需求审评

C)  总结

D)  都不正确

【解析】本题旨在考查需求分析。选B。

 

5. (来源:百度文库)把一组具有相似特性的对象组合在一起,称之为(    )

A)  多态性

B)  继承性

C)  类

D)  消息

【解析】选C。把一组具有相似特性的对象组合在一起成为类。

 

6. (来源:百度文库)软件工程采用层次化的方法,每个层次都包括 ______ 、方法、______ 三要素。

【解析】软件工程采用层次化的方法,每个层次都包括过程、方法、工具三要素。

 

7. (来源:百度文库)基于软件的功能划分,软件可以划分成________、________、________三种。

【解析】基于软件的功能划分,软件可以划分成系统软件、支撑软件、应用软件三种。

 

8. (来源:百度文库)什么是可移植性?

【解析】软件可移植性指与软件从某一环境转移到另一环境下的难易程度。为获得较高的可移植性,在设计过程中常采用通用的程序设计语言和运行支撑环境。

 

9. (原创)什么是单元测试?

【解析】单元测试(Unit Testing),是一种软件测试方法,通过这种测试方法测试各个源代码单元,一个或者多个模块的集合,使用程序来测试程序,来保证它们的可用性。一般来说单元测试由开发人员自己来执行。

 

10. (原创)什么是设计模式,常见的设计模式有哪些?

【解析】设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

  常见的设计模式有策略模式、桥接模式、观察者模式、抽象工厂模式等设计模式。

posted @ 2020-01-02 16:55  happyyouli  阅读(305)  评论(0编辑  收藏  举报