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

软件工程师:

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

基本要求:

1、对一两门编程语言熟练、精通。

2、掌握一定的数据结构与算法知识。

数据结构+算法=程序,基本的数据结构算法知识是软件开发的基础,更是高级程序工程师对软件优化的重要基础。

3、对底层有一定了解。

包括操作系统、计算机组成原理、计算机网络知识,linux系统的基本操作,以及一些高级语言的底层实现。

4、对数据库知识有一定掌握。

日常的软件开发总是会设计数据库的交互,必须对数据知识有足够的了解,才能完成对数据库的交互。

5、比较强的自学能力。

程序员这行技术更新换代比加快,需要不断学习新知识来提升自己,保证自己的职业竞争力。

6、对软件开发过程有深刻体会。

如果不懂软件开发流程,盲目按照自己想法开发,尤其是比较大型项目,比较容易出错。

出题思路:

主要出了四个题型,分别是名词解释,选择题,判断题,简答题。

涉及的内容主要是软件开发各个阶段的详细内容,以及面向对象分析的知识。

一、名词解释:

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

2、多态(Polymorphism):接口多种不同的实现方式即为多态。

3、泛化(Generalization):泛化是一般性事物(称为超类或父类)和它的较为特殊种类(称为子类)之间的一种关系,有时称为“is-a-kind-of”关系。

二、选择题:

1、下列关于单元测试的说法,不正确的是(B)

A. 单元测试应该在最基本的功能/参数上验证程序的正确性。

B. 单元测试过后,机器状态可能会发生改变。

C. 单元测试应该产⽣可重复、⼀致的结果。

D. 单元测试应该覆盖所有代码路径。

解析:单元测试过后,机器状态保持不变。

2、(中国大学mooc,北京大学-软件工程课后题)Jack在Google工作,是公司市场组的一名成员。那么描述Jack的类目Employee和描述Google的类目Company之间是(A)关系。

A.关联 B.泛化 C.细化(实现)D.依赖

解析:关联指一个类是另一个类的成员变量,可以是单向的,也可以是双向的;依赖指一个类的某个方法参数类型为另一个类。Employee明显是Company的成员变量。

3、软件生命周期中所花费用最多的阶段是( D )。

A、详细设计    B、软件编码    C、软件测试      D、软件维护

4、(中国海洋大学, 2009,软件工程期末)面向对象的分析方法主要是建立三类模型,即( B )。

A、系统模型、E-R模型、应用模型         B、对象模型、动态模型、功能模型

C、E-R模型、对象模型、功能模型        D、对象模型、动态模型、应用模型

5、(中国海洋大学,2014,软件工程期末)瀑布模型的关键不足在于( B )

A、过于简单     B.不能适应需求的动态变更

C.过于灵活     D.各个阶段需要进行评审

6、(牛客网)下面不是面向对象的基本原则的是(C)?

A、单一职责原则(Single-Resposibility Principle)

B、开放封闭原则(Open-Closed principle)

C、抽象类原则(Abstract-Class principle)

D、依赖倒置原则(Dependecy-Inversion Principle)

E、接口隔离原则(Interface-Segregation Principle)

解析:五大基本原则:单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)。

7、(中国海洋大学,2014,软件工程期末)结构化分析方法以数据流图、__D__和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。

A.DFD图   B.PAD图   C.IPO图   D.数据字典

8、(牛客网)系统软件中主要包括操作系统,语言处理程序和(C)

A、用户程序 B、实时程序 C、实用程序 D、编程程序

解析:系统软件包括操作系统,语言系统和工具系统,工具系统也称为实用系统

9. (牛客网)工厂模式是比较常用的设计模式,它遵循了如下设计原则中的?( A )

A、单一职责原则 B、开放-封闭原则 C、依赖倒置原则 D、里氏代换原则

解析:单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。

10、两个模块彼此传递的信息中有控制信息,这种耦合称为(  D  )

A  数据耦合   B  公共环境耦合   C  内容耦合      D  控制耦合

三、判断题:

1、 linux的find和grep指令,区别在于find是用来搜索文件内部文本的,grep是用来搜索文件的。(F)

解析:linux的find和grep指令,区别在于find是用来搜索文件的,grep是用来搜索文件内部文本的。

2、在设计需求分析的过程中,功能需求是主体,没有功能需求就没有非功能需求。(T)

3、是一种描述数据变换的图形工具,它包含的元素可以使数据流、数据存储、加工、数据源、数据潭等。(T)

4、(中国大学mooc,北京大学-软件工程课后题)所有的数据流图都可以看作变换型数据流图。(T)

5、编码风格由个人喜好决定,没有固定格式。(F)

6、软件工程学只有理论意义,没有实际用途。(F)

7、类图用来表示系统中类和类与类之间的关系,是对系统动态结构的描述。( F )

解析:类图用来表示系统中类和类与类之间的关系,是对系统静态结构的描述。

8、(中国海洋大学, 2009,软件工程期末)软件测试只能证明程序有错误,不能证明程序没有错误。( T )

9、UML 是一种面向对象的分析设计方法,即OOA/OOD 方法。(F)

解析:UML是一种面向对象的统一建模语言。

10、scrum模型是一个非敏捷的瀑布式开发模型。(F)

解析:scrum模型是一个敏捷开发模型。

四:简答题:

1、用例建模的步骤:

1) 识别并描述参与者 

2) 识别用例,并给出简要描述

3) 识别参与者与角色之间的通讯关联 

4) 给出每一个用例的详细描述

5) 细化用例模型

2、多态的三个必要条件是什么?

1) 要有继承

2) 要有方法的重写

3) 父类引用指向子类对象

3、软件测试的步骤以及测试的对象是什么?

①单元测试,测试对象为单元模块

②集成测试:测试对象是组装后的程序模块

③确认测试:测试对象是可运行的目标软件系统。

4、软件生命周期 8 个时期?

问题定义,可行性研究,需求分析,总体设计(概要设计),详细设计,编码与单元测试,综合测试,运行维护。

5、(中国海洋大学,06-07,软件工程期末)培训中心要研制一个计算机管理系统,它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理,

(1)如果是报名的,则把报名数据送给负责报名事务的职员,他们将查询课程文件,检查该课程是否额满,然后在学生文件、课程文件与账目文件上登记,并开出报告单给财务部门,财务人员开发票给学员。

(2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。

(3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。

要求:(1)对以上问题画出数据流程图

     (2)画出该培训管理的软件结构图的主图。

原文地址:https://www.cnblogs.com/smyhrps/p/12132077.html