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

一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面?

1.基础知识

作为一个合格的软件工程师,不仅仅学习码代码就可以了,还需要掌握操作系统,数据库,数据结构,算法等方面的基础知识,这样才能更好的

完成软件工程的任务,初次之外,外语,尤其是英语能力同样非常重要,各种编程语言,编程文档都是英语,这就对软件工程师的英语能力提出很高的要求。

2.编程语言

编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言,比如Web开发可能会使用PHP、Python、Java等语言,而大数据可能会使用Java、R、Scala等语言,

而物联网开发可能会使用到C、C++等编程语言,因此作为合格的软件工程师需要至少精通一门自己开发所用的编程语言,并且能根据需要快速学习掌握其他编程语言,为以后的软件开发打下坚实基础。

3.代码编写

具有独立编写代码的能力,且编写的代码可读性高,易维护性,符合代码规范和风格一般要求。

3.团队协作能力

小软件可以单个人完成,但现在软件开发通常不是一个人的工作,而是需要许多人齐心协力共同开发,因此,作为一个合格的软件工程师需要具有一定的团队协作能力,

能够善于和团队同伴沟通,协调进度,处理问题,完成自己负责的方向。

4.学习能力

软件开发行业一直处在不断的创新进步过程中,作为一个合格的软件开发工程师,要想保持自己的竞争力,提高自己的能力,不能故步自封,需要不断接触新事物,学习新思想新语言,

而这就要求软件工程师具有较高的学习能力,快速学习新事物。

5.掌握软件工程

这里要求软件工程师,学习过软件工程,知道如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,

这样有助于提高软件产品的质量和开发效率,减少维护的困难。

 

软件工程知识技能水平的测评试题

 

1.判断题

 

1、开发软件就是编写程序。

2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等 测试。

 

3、文档是软件产品的一部分,没有文档的软件就不称其为软件

4、好的测试就是用少量的测试用例运行程序,发现被测试程序尽可能多的错误

5、尽可能使用高级语言编写程序

 

6、以结构化分析方法建立的系统模型就是数据流图。

 

答案:××√√√×

 

详细解析:

1.是显然错误的,软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程

2.系统测试,英文是System Testing。是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。如安全测试是测试安全措施是否完善,能不能保证系统不受非法侵入。再例如,压力测试是测试系统在正常数据量以及超负荷量(如多个用户同时存取) 等情况下是否还能正常地工作,因此系统测试的主要方法不是白盒测试。

3.文档对是软件开发必不可少的一部分

4.用少量的测试用例运行程序,发现被测试程序尽可能多的错误,这是好的测试的要求

5.高级语言开发速度快、易于理解、好维护,因此尽可能使用高级语言编写程序

6.要求我们知道数据流图是什么:

数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

 

2.选择题

 

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

 

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

2、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于()系统

A 需求不确定的  B 需求确定的  C 管理信息  D 决策支持

3、单元测试用例主要是根据()的结果来设计

A 需求分析  B 源程序  C 概要设计  D 详细设计

4、()意味着一个操作在不同类中可以有不同的实现方式

A 多态性  B 多继承  C 类的可复用  D 信息隐蔽

5、时序图反应对象之间发送信息的时间顺序,它与()是同构的。

A 用例图  B 类图  C 活动图  D 协作图

6、软件的复杂性是(),他引起人员通信困难,开发费用超支,开发超时等问题

A 固有的  B 认为的  C 可消除的  D 不可降低的

 

答案:1_6: DADADA

 

详细解析:

 

1 考察软件工程的定义

2 考察原型化方法:

原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统。它从用户界面的开发入手,首先形成系统界面原型,用户运行用户界面原型,并就同意什么和不同意什么提出意见,它是一种自外向内型的设计过程。

3 考察单元测试:

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证

 

 

 

 从上图可以看出单元测试用例主要是根据详细设计的结果来设计

还有其他的测试:

 

单元测试 - 详细设计
集成测试 - 概要设计
系统测试 - 需求规格说明
确认测试 - 需求规格说明
验收测试 - 用户需求
 
4.考察多态性,这个在面向对象程序设计中也有讲过,多态性意味着一个操作在不同类中可以有不同的实现方式

5.考察时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作

时序图和协作图都是交互图,顺序图强调对象交互行为的顺序,而协作图强调对象的协作,它们在逻辑本质上是一样的,亦即它们是同构的,只是表现形式不同而已

6.这一题我们需要知道软件的复杂性是固有的,不可消除的,但是可以通过适当的方法降低。

 

 

3.简答题

下图显示了某个学校课程管理系统的部分类图,其中一个student可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程

的学生。现在提出一个新的需求,”一个教师也可以是某些课程的学生“,那么下面设计A,B,C哪一个是最好的?为什么?

设计A:

 

 

 

设计B:

 

 

 

设计C:

 

 

 

 答案解析:设计B是最好的。学生和教员均可以从Candldata类继承而来。抽象出Role类,使Candldata类与Role类之间形成多对多的关联关系,

体现了一个人既是教师又是某门课的学生这个需求

posted @ 2020-01-06 17:45  zjce  阅读(412)  评论(0编辑  收藏  举报