码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-06 19:22:54      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:对象   测试   abs   分析   重复   教学   逻辑   学习   通过   

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

一、 什么是软件工程师

软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。


主要工作内容包括:

  1. 指导程序员的工作;

  2. 参与软件工程系统的设计、开发、测试等过程;

  3. 协助工程管理人保证项目的质量;

  4. 负责工程中主要功能的代码实现;

  5. 解决工程中的关键问题和技术难题;

  6. 协调各个程序员的工作,并能与其它软件工程师协作工作。

  7. 还要编写各种各样的软件说明书,如:需求说明书,概要说明书等

  8. 考试科目工程师是中级职称,考试的题目包括了计算机体系结构软件工程数据库数据结构编译原理计算机学科的基础课程




二、 软件工程师的软件工程知识技能水平主要体现

对于软件工程的能力要求也是多样性的、多方面的,对于不同岗位的具体要求会有所差别,但基本要求能力都是相同的。基本要求及主要体现如下:

编程语言能力

作为一名专业的软件工程师,一方面,是否掌握了程序员的基本功:键盘输入速度,快捷键,编译和调试工具等,熟练掌握常用的工具集—VSCode/Vim、正则表达式等;另一方面,应该能够熟练掌握基础编程语言,并且能够深入理解OOP、OOA、OOD等编程思想。精通一门编程语言能为以后的软件开发打下坚实的基础。

编码能力

这里说的编码可不是照着书本敲代码,而是能够独立的运用代码,编写一个程序出来,而是严格规范的代码风格,合理使用空格、空行、缩进、注释,代码逻辑清晰,没有冗余和重复,遵从架构与设计原则,熟练使用各种编程库和API,编写出简洁、规范、可读性强、健壮安全的代码。

学习能力

IT技术可谓是更新换代最快的了,从市面上的电脑和手机就可以看出来。所以,只依靠自己之前学到的知识,很快就会被这个时代所淘汰,软件工程师应具备的技能里很重要的一点就是学习能力。因为只有具备了学习能力,才能在离开学校之后仍然能够独立地学习最新的技术,同时能够自主的发现现在有什么新技术,市场上流行的技术元素与市场需求的变化。

业务能力

熟悉解决问题的流程:分析问题、形成方案、探索尝试解决问题、单元测试、重构程序以满足不断变化的需求,并在理解业务的基础上进行需求分析,编写的代码结构清晰,具有良好的可靠性、鲁棒性、可移植性和可重用性,满足高内聚低耦合的要求,准确地表达出用户的需求,开发出高质量的软件。

设计能力

一个优秀的软件工程师不仅仅具备扎实的专业知识与技能,而且还要具备一定的设计能力。因为只有这样,才能使一个软件或者应用更加完美,更加容易受到人们的欢迎,从而获得更广阔的市场。

团队协作能力

软件开发并不是孤军奋战,很多时候一个软件需要几个人一起开发,这个时候就需要大家齐心协力,共同努力了。这时候,作为软件工程师就需要具备一定的团队协作能力了,来保证每个人都负责相应的方向,不能只为了突出自己而不顾整个团队。

健康的心理素质

开发软件本身就是一项艰苦的脑力和体力劳动,软件工程师开发成功一个软件,要经过反复修改,要花费大量的进间和精力,这些都有要求软件工程师有较好的心理承受能力。很多学生往往只注重计算机专业知识的培养,而忽视了语言表达能力和沟通能力、工程经济分析能力,以及心理素质的培养。



三、 针对以上内容提供一份软件工程知识技能水平的测评试题

一、 选择题

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

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

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

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

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

参考答案:D

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

A.基于瀑布模型的结构化方法

B.基于需求动态定义的原型化方法

C.基于对象的面向对象的方法

D.基于数据的数据流开发方法

参考答案:C

(3)在软件生命期中,占工作量比例最大的是( ) 。

A.可行性研究         

B.建立系统的结构   

C.编写程序         

D.维护

参考答案:D

(4)原型化方法是动态确定软件需求的方法之一,该方法适应于()的系统

A、需求不确定性高

B、需求确定

C、结构简单

D、可移植性好

参考答案:A

(5)软件设计中模块划分应遵循的准则是()

A.低内聚低耦合

B.高耦合高内聚

C.高内聚低耦合
 
D.以上说法均错误

参考答案:C



二、 简答题

(1)静态模型和动态模型的区别是什么?并说明每种模型的作用和用途。(来自教学PPT)

参考答案:

一个静态过程模型描述一个过程的基本元素。还描写输入从哪里转换为输出。

一个动态过程模型扮演一个过程,允许用户看到产品随着时间的推移而如何改变。

对于确定过程的基本元素,一个静态模型是有用的。

对于过程的变化是如何随着时间的推移而影响过程的结果,一个动态模型可能会对这种模仿有用。

(2)瀑布模型与原型模型分别适用于开发哪些软件?

参考答案:

瀑布模型与原型模型分别适用于开发哪些软件瀑布模型适合于需求稳定,而且可以预先指定的大型系统工程项目。
原型模型适合于需求模糊或者随时间变化的中小型项目。

(3)说出3你所熟悉的设计模式,并简要描述。

参考答案:

单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。

原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。

工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。

抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。

建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。

代理(Proxy)模式:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。

适配器(Adapter)模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

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

标签:对象   测试   abs   分析   重复   教学   逻辑   学习   通过   

原文地址:https://www.cnblogs.com/zhouyuxi/p/12157981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!