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

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

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

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

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

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

一、选择题

1. 需求分析最终结果是产生(B)

(https://blog.csdn.net/weixin_38004638/article/details/80891465)

A.项目开发计划

B.需求规格说明书

C.设计说明书

D.可行性分析报告

 

2.软件开发过程中,需求活动的主要任务是(B)。

(https://blog.csdn.net/qq_41814324/article/details/95237670)

A.给出软件解决方案

B.定义需求并建立系统模型

C.定义模块算法

D.给出系统模块结构

 

3. 内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(C)

(https://blog.csdn.net/qq_41814324/article/details/95237670)

A.逻辑内聚

B.时间内聚

C.过程内聚

D.顺序内聚

 

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

(https://blog.csdn.net/qq_41814324/article/details/95237670)

A.内容耦合

B.公共耦合

C.外部耦合

D.控制耦合

 

5. 为了提髙模块的独立性,模块之间最好是(D)

(https://blog.csdn.net/qq_41814324/article/details/95237670)

A.公共耦合

B.控制耦合

C.内容耦合

D.数据耦合

 

6. 面向对象的主要特征除唯一性、继承性、多态性外,还具有(A)

(https://blog.csdn.net/weixin_38004638/article/details/80891465)

A.封装性

B.移植性

C.完整性

D.兼容性

 

二、名词解释(https://wenku.baidu.com/view/7694f5eb9b6648d7c1c746d1.html)

1.设计模式                                   

解答:设计模式是普通面向对象设计问题的解决方案,这类问题以一组交互类的形式出现,用户根据需要定制这些交互类以形成专门的设计。所有的设计模式均可以从四个方面加以描述:模式名称、问题描述、解决方案和效果。

2.结构化方法

结构化是一种传统的软件开发方法,其总的指导思想是自顶向下、初步求精、单入口、单出口、其基本原则是抽象和功能分解。

 

三、简答题

1.模块设计规则:

(https://blog.csdn.net/weixin_38004638/article/details/80891465)

解答:

(1)改进软件结构提高模块独立性。

(2)模块规模应该适中。

(3)深度、宽度、扇出和扇入都应适当。

(4)模块的作用域应该在控制域之内。

(5)力争降低模块接口的复杂程度。

(6)设计单入口单出口的模块。

(7)模块功能应该可以预测。

 

2. 软件危机的原因:

(https://blog.csdn.net/qq_41814324/article/details/95237670)

解答:

(1)软件的规模越来越大,结构越来越复杂。

(2)软件开发管理困难而复杂。

(3)软件开发费用不断增加。

(4)软件开发技术落后。

(5)生产方式落后。

(6)开发工具落后,生产率提高缓慢。

 

3.某一新闻管理系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布性温。任何人可以浏览新闻,浏览者可以注册成为系统会员,组册后可对新闻进行评论。管理员在后台可以对新闻、评论、注册会员进行管理,如修改、删除等。

请画出该新闻管理系统的用例图。

(https://max.book118.com/html/2018/1010/8050014031001126.shtm)

 

 

4. 根据模块的作用范围与控制范围的原则,判定a、b两图的正确性,并简单阐述原因。

(https://blog.csdn.net/weixin_38004638/article/details/80891465)

解答:图a不满足作用范围应与控制范围的原则,模块F的作用范围不在控制范围之内。 图b的模块设计合理。

控制范围:是模块本身和他下属模块的集合。

作用范围:模块中的一个判定影响的所有模块的集合。

posted @ 2020-01-03 14:16  yll333  阅读(320)  评论(2编辑  收藏  举报