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

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

  1.操作系统知识。操作系统知识是软件工程师必须具备的重要内容,Web开发领域可能会使用到Windows系列操作系统,大数据和物联网方向要使用到Linux系列操作系统,掌握操作系统的体系结构是进行软件研发的重要基础。

    主要内容包括资源管理、任务调度、并发管理、权限管理、网络管理等内容。

  2.编程语言和算法。编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言,比如Web开发可能会使用PHP、Python、Java等语言,而大数据可能会使用Java、R、Scala等语言,

    而物联网开发可能会使用到C、C++等编程语言。通常来说,软件工程师往往需要掌握多门编程语言,以应对不同的开发环境。算法是软件工程师的重点知识结构,因为软件研发说到底就是个数学问题,

    所以算法的掌握情况往往能够决定软件工程师的成长高度。当然,对于应用级软件工程师来说,也有可能不会接触到更多的算法。

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

  4.架构设计。应对不同项目需求采用不同的设计方案构建项目框架。

 

二、试题选择(参考课堂PPT和广州大学2017-2018期末考试)

  选择

  1. 软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的(D )问题 

    A.产生危机 B.质量保证 C.开发效率 D.生产工程化

  

  2. 可行性研究要进行一次( C)需求分析。

    A. 详细的    B. 全面的   C. 简化的、压缩的 D. 彻底的

 

  3.结构化方法将软件生命周期分为计划、开发和运行3个时期,下列任务中(B )属于计划时期的任务。 

    A. 需求分析 B. 问题定义 C. 总体设计 D. 编码

 

  4.耦合是软件各个模块间连接的一种度量。一组模块都访问同一数据结构应属于(B )方式 

    A. 内容耦合 B. 公共耦合 C. 控制耦合  D. 数据耦合

 

  5.(C )是指让一些关系密切的软件元素在物理上彼此靠近 

    A. 信息隐蔽 B. 内聚 C. 局部化 D. 模块独立

 

  6.程序的三种基本控制结构是( B) 

    A. 过程、子过程和分程序  B. 顺序、选择和循环(重复) C. 递归、堆栈和队列 D. 调用、返回和转移

 

  7.程序的三种基本控制结构是( B)

    A. 过程、子过程和分程序  B. 顺序、选择和循环(重复) C. 递归、堆栈和队列 D. 调用、返回和转移

 

  8.软件设计中,可应用于详细设计的工具有(A ) 

    A. 程序流程图、PAD、方框图和伪码   B. 数据流程图、PAD、结构图和伪码   C. 业务流程图、N-S图和伪码    D.程序流程图、PAD、N-S图和伪码

 

  9.判断学生–课程的相互关系(C)

    A. 整体-部分  B. 一般-特殊   C. 实例联接   D. 都不是

 

  10.软件开发和维护过程中出现的一系列严重问题称为(D)

    A.软件工程   B.软件开发   C.软件开发   D.软件危机

 

  判断

  1.应当选择时间效率和空间效率尽可能高的算法(√)

  2.为了加快软件维护作业的进度,应尽可能增加维护人员的数目。(   ×   )

  3.进行概要设计时尽可能加强模块间的联系(   ×   )

  4.当验收测试通过,软件开发就完成了。(    ×   )

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

 

  名词解释

  1. 多态:多态性(Polymorphism)是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。
  2. 功能内聚:功能内聚指模块内所有元素共同完成一个功能,缺一不可,因此模块不能再分割。

  3. 松散耦合:松散耦合的构件之间具有某种程度的依赖性,但是它们之间的相互连接比较弱。

  4. 抽象:抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同特性而暂不考虑它的细节,不考虑其他因素。

  5. 重构:在软件工程学中重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

 

  简答题

  1.简述总体设计的过程

  如何评测软件工程知识技能水平?_第1张图片

 

  程序设计

  1.根据下列程序画出程序流程图,并计算环路复杂度

  如何评测软件工程知识技能水平?_第2张图片

 

  

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