如何评价软件工程师知识技能水平

摘要:
对于基础软件工程师来说,他们在企业中的角色决定了他们必须具备良好的规范意识和团队精神。尽量不要使用双向依赖关系。它由空心菱形+实线表示。小范围指向大范围。

1.良好的编码能力

  软件人员的一个重要职责是把用户的需求功能用某种计算机语言予以实现。编码能力直接决定了项目开发的效率。这就要求软件工程师至少精通一门编程语言,比如当前国内企业常用的C/C++、VB和国际上最流行的Java语言,熟悉它的基本语法、技术特点和API(应用程序接口)。                 

2.自觉的规范意识和团队精神

  随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。一般来讲,软件企业中的程序员可以分为两种,一种是程序“游击队员”,他们可能对编程工具很熟,能力很强,把编码编得很简洁高效,但却缺乏规范和合作的观念;另一种程序员编程不一定很快,但是很规范,个人能力不一定很强,但合作意识很好。第二种人更加适合现代软件企业发展的潮流。对于基础软件工程师来说,他们在企业中的角色决定了他们必须具有良好的规范意识和团队精神。             

3.认识和运用数据库的能力

  信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有甲骨文公司的Oracle数据库和微软公司的SQL Server等。   

4.较强的英语阅读和写作能力

  程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与世界各地编程高手交流、发布帮助请求同样离不开英文。作为基础软件工程师,具有一定的英语基础对于自身的学习和工作极有帮助。

5.具有软件工程的概念

  基础软件工程师处于软件企业人才金字塔的底层,是整个人才结构的基础,虽然他们从事的工作相对于系统分析师和高级程序员要单纯一些,但是他们是整个软件工程中重要的一环,因此,基础软件工程师同样要具有软件工程的概念。从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作,这样的能力正好符合了当前企业对基础软件工程师的全面要求。         

6.求知欲和进取心

  软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。软件工程师应具有较强的学习总结能力、需求理解能力和对IT新技术比较敏感,同时,掌握最新的IT实用技术。

软件工程知识技能水平的测试题(来自上课作业、自创以及百度)

 

一 选择题

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

A.软件工程

B.软件开发

C.软件开发

D.软件危机

解析:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

 

2.在设计测试用例时,(A)是用得最多的一种黑盒测试方法。

A.等价类划分    B.边界值分析    

C.因果图           D.判定表

解析:等价类划分是一种典型的黑盒测试方法。等价类划分是指分步骤把海量的测试用例集减得很小但过程同样有效。也就是说,选取足够小测试用例,发现更多软件缺陷

 

3.下列哪个阶段不属于软件生存周期的三大阶段(C)。

 

   A、计划阶段             B、开发阶段

 

   C、编码阶段             D、维护阶段

 

解析:软件的生存周期包括:计划阶段、开发阶段、维护阶段。编码是开发阶段的一部分。

 

4.软件设计中划分模块的一个准则是(C)。 

A、 低内聚低耦合 B、 低内聚高耦合 C、 高内聚低耦合 D、 高内聚高耦合 

解析:软件设计中划分模块的一个准则是高内聚低耦合。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

 

5.车与车轮之间的关系是(A)。

A.组合  B.聚合  C.继承  D.关联

解析:UML中定义的关系主要有6种

泛化:

在程序中通过“继承”来实现,也可以认为就是继承; 通过空心三角形+实线来表示,子类指向父类。

实现:

可以理解为类与接口之间的关系; 通过空心三角形+虚线来表示,从实现类指向接口

依赖:

是一种“使用”关系,即一个类(A)的实现需要用到另一个类(B)。 尽量不要使用双向依赖。 一般表现为类A中的方法需要类B的实例作为其参数或变量,但是类A本身并不需要引用类B的实例作为其成员变量。 使用虚线箭头表示,类A指向类B。

关联:

比依赖的关系更强,类A使用类B的实例作为自己本身的一个成员变量。 使用实线箭头表示,类A指向类B。

聚合:

传说中的 has-a关系,类A和类B是整体和部分的关系。但是两个部分的生存周期可以不同,没那么强的约束关系。 是一种更强的关联关系,关联关系的特例。 使用空心菱形+实线来表示,范围小的指向范围大的。

组合:

contains-a关系,类A和类B也是整体和部分关系,但是之间的关联更强,有共同的生命周期,一旦整体不存在,部分也将不存在。 通过实心菱形+实线来表示,范围小的指向范围大的。

 

二 名词解释

1.观察者模式

一个目标物件管理所有相依于它的观察者物件,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,被用来实现事件处理系统,又被称为“发布——订阅”模式

 2.重构

通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性

3.多态

指同一个实体同时具有多种形式,有不同的解释,产生不同的执行结果,是面向对象程序设计的重要特征

4.功能内聚

模块内所有元素共同完成一个功能,缺一不可

5 设计模式

一套被反复使用,多数人知晓,经过分类、代码设计的经验总结

 

三 简答题

1.简述软件工程的概念

答:软件工程是指导软件开发和维护的一门学科,采用工程的概念、原理、技术和方法来开发和维护软件,把正确的管理和最好的技术结合起来,以经济地开发出高质量的软件并有效地维护。

2.介绍软件生命周期

答:软件生命周期分为7个阶段

(1)问题定义:要解决的问题是什么

(2)可行性研究:确定问题是否值得解,分析技术可行性、经济可行性和操作可行性

(3)需求分析:系统做什么

(4)总体设计:系统如何实现,包括系统设计和结构设计

(5)详细设计:具体实现设计的系统

(6)实现:编码和测试

(7)运行维护:保证软件正常运行

3.什么是白盒测试?什么是黑盒测试?

答:白盒测试又称为结构测试,它的前提条件是可以看成将程序放在一个透明的白盒子中,也就是完全了解了软件系统的结构和整个处理过程。

黑盒测试又称为功能测试,它把程序看成是一个不透明的黑盒子,完全不去考虑程序的内部结构和处理过程。

四 应用题

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

 如何评价软件工程师知识技能水平第1张

免责声明:文章转载自《如何评价软件工程师知识技能水平》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇重读ORB_SLAM之LocalMapping线程难点【原创】K8S使用ceph-csi持久化存储之RBD下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Frp内网穿透安装教程#Frpc OpenWrt客户端安装#图形化管理

本文转自:https://blog.csdn.net/sugoods/article/details/108839840 注意事项:在OpenWrt环境下,一定要先安装frpc客户端再安装图形操作界面 luci-app-frpc,要不就会出问题。不要问我怎么知道的,反正按着我的步骤装就好。 一、路由器安装Frp客户端Frpc,按下面的操作步骤。目前最新版本...

工具篇01-代码扫描工具Gamma

1. Gamma简介 Gamma是由Acellere开发的智能软件分析平台。 它通过加快代码审查,支持开发人员和团队在更短的时间内构建更高质量的软件。 它会自动对代码中的热点进行优先级排序,并提供清晰的可视化效果。 凭借其多向量诊断技术,它可以分析多个镜头的软件,包括软件设计,使公司能够透明地管理和改进其软件质量。 2. Gamma使用教程 1)注册账号...

.deb文件打包

最近因项目需要,需要把文件夹打包为.deb格式的包,幸亏一位朋友帮忙指导了我一个晚上,才得以完成,这里再次对他表示感谢。 整理打包流程如下: 请先参考此博客内容,了解deb文件打包 如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。 首先了解一下deb包的文件结构: deb 软件包里面的结构:它具有D...

Android Monkey压力测试

一、Monkey简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。只针对Activity做测试,不能对Service做测试。...

VS 驱动工程创建软件(EeasySyS)

      EeasySyS是方便大家创建vs驱动工程的一款非常方便好用的软件。这款软件很久都没有更新过了,但它是开源的,所以我对其做了一些修改,来适应现在驱动编程环境。这里提供我修改的代码,大家可以在此基础上随意发挥,程序是MFC的,VS2008编译。   下面是软件截图: 本次修改版更新如下: 1. 支持vc6.0,支持vs2008,支持vs2010...

云端远程Ubuntu系统进行无桌面Web浏览器自动化测试

【摘要】 利用xvfb提供的显卡帧缓冲区,让浏览器以为有桌面,以达到无桌面系统下测试真实浏览器兼容性的目的。 自动化web界面测试往往需要验证真实浏览器的兼容性,但是云端系统往往并不提供图形化的桌面,所以自动化web界面测试在云端就成为一个问题。本文描述了一个技巧解决这个问题,其主要原理是利用xvfb提供的显卡帧缓冲区,让浏览器以为有桌面。 Install...