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

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

一.软件工程师定义:

        软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。

二.如何评测一名软件工程师的知识技能水平?    

       1.编程语言能力,作为一名专业的软件工程师,应该能够熟练掌握JAVA语言,并且能够深入理解OOP、OOA、OOD等编程思想。精通一门编程语言能为以后的软件开发打下坚实的基础。

       2.编码能力,这里说的编码可不是照着书本敲代码,而是能够独立的运用代码,编写一个程序出来。有很多软件工程师,他们都是随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,缺乏最基本的职责素养。

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

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

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

三.针对以上内容提供一份软件工程师技能水平的测试题。

一.选择题。

          1.下列模块独立性最强的是( )

          A、非直接耦合  B、数据耦合  C、公共耦合   D、内容耦合

            参考答案:A

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

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

            参考答案:D

      3. 软件开发瀑布模型中的软件定义时期各个阶段依次是: ( )

       A. 可行性研究,问题定义,需求分析

       B. 问题定义,可行性研究,需求分析

       C. 可行性研究,需求分析,问题定义

       D. 以上都不对 

            参考答案:B

   4. 下面不属于软件工程三要素之一的是:( )

      A. 工具  B. 过程  C. 方法  D. 环境

            参考答案:D

   5. 下面不属于软件设计原则的是:( )

       A. 抽象  B. 模块化  C. 自底向上 D. 信息屏蔽

            参考答案:C

二.名词解释

    1. 模块化(modularity):指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。

  2.统一软件开发过程(Rational Unified Process,RUP):一种软件工程方法,为迭代式软件开发流程。它是基于构件(Component-based)的,即所构造的软件系统是由软件构件通过明确定义的接口相互链接所建造起来的。并且它使用统一建模语言(Unified Modeling Language,UML)来制定系统的所有蓝图。

  3. 重构(refactoring):指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。

  4.设计模式(design pattern):设计模式是对软件工程中普遍存在(反复出现)的各种问题,所提出的解决方案。设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。

  5. 单元测试(unit test):单元测试又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。

三.简答题

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

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

    2.什么是软件的生存周期?包括哪几个部分?
    答:个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。它包括制定计划、需求分析、软件设计、程序编写、软件测试、运行维护等。

    3. 简述面向对象程序的设计风格。

    答:1.提高可重用性提高方法的内聚、减少方法的规模、保持方法的一致性、把策略和实现分开、全面覆盖、尽量不使用全局信息、充分利用继承机制。
        2.提高可扩充性封装实现策略、不用一个方法遍历多条关联链、避免使用多分支语句、精心确定公有方法。
        3.提高健壮性预防用户的错误操作、检查参数的合法性、不要预先确定限制条件、先测试后优化。

 

  

posted on 2020-01-06 16:30  mmm123  阅读(265)  评论(0)    收藏  举报

导航