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

一、何为软件工程&何为软件工程师

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。
 
软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。
它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。
其工作内容:
1、 指导程序员的工作;
2、 参与软件工程系统的设计、开发、测试等过程;
3 、协助工程管理人保证项目的质量;
4 、负责工程中主要功能的代码实现;
5 、解决工程中的关键问题和技术难题;
6 、协调各个程序员的工作,并能与其它软件工程师协作工作。
7、还要编写各种各样的软件说明书,如:需求说明书,概要说明书等
8、考试科目工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程
 

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

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

基本要求及主要体现如下:

1.编程语言能力

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

2.编码能力

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

3.学习能力

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

4.业务能力

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

5.设计能力

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

6.团队协作能力

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

 

三、试题如下:

一、选择题

1.以下哪一项不是软件危机的表现形式( C )。

     A. 开发的软件不满足用户需要    D.开发的软件可维护性差

     C.开发的软件价格便宜    D.开发的软件可靠性差

 

2.  软件生命周期一般包括三个时期:软件定义期、软件开发期和软件运行期。下述( D )不是软件开发期所应包含的活动。

A. 可行性分析       

B. 需求获取和需求建模

C. 软件体系结构设计和数据设计       

D. 软件集成与系统测试

 

3. 面向对象分析方法的基本思想之一是(C )
A. 基于过程或函数来构造一个模块
B. 基于事件及对事件的响应来构造一个模块
C. 基于问题领域的成分来构造一个模块
D. 基于数据结构来构造一个模块

 

4.(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

A、软件过程      B、软件测试    C、软件生存周期    D、软件工程

 

5.面向对象的主要特征除对象惟一性、封装、继承外,还有( A )。

     A.多态性    B.完整性

     C.可移植性    D.兼容性

二、简答题

1、说明结构化程序设计的主要思想是什么?  

答案:(1)自顶向下、逐步求精的程序设计方法(2)使用3种基本控制结构、单入口、单出口来构造程序。

 

2.在面向对象分析时类和对象的静态关系主要有哪几种? 

答案:类和对象的静态关系主要有关联、聚集、泛化、依赖等四种关系。

 

3.软件测试的基本任务? 
答案:软件测试是按照特定的规则,发现软件错误的过程;好的测试方案是尽可能发现迄今尚未发现错误的测试;成功的测试方案是发现迄今尚未发现错误的测试;

 

4.层次图和层次方框图有何区别? 
答案:层次图主要用来描绘软件的层次结构,矩形框代表一个模块,矩形框之间的连线表示模块之间的调用关系,常与IPO图一起形成HIPO图。层次方框图主要描述系统的组成关系,一般自用域需求分析。

 

5.常见的软件开发过程模型(软件生存周期模型)有哪些?

答案:瀑布模型,快速原型模型(用于需求不确定的软件开发),增量模型,螺旋模型(加入了风险分析),喷泉模型(面向对象),统一过程(Rational公司的),微软公司软件开发过程。

 

 

posted on 2020-01-06 21:25  知其不二  阅读(427)  评论(0编辑  收藏  举报

导航