如何评测软件工程知识技能水平?
Posted lm273
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何评测软件工程知识技能水平?相关的知识,希望对你有一定的参考价值。
您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下
1. 对软件工程基本概念的理解,比如为什么需要软件工程?软件工程是用来解决什么问题的?如何使用软件工程来解决问题等。
2. 对软件工程的常见术语的理解,比如内聚、耦合、模块化、重构等。
3.对常见设计模式的了解。比如观察者模式、发布订阅者模式。比如为什么需要设计模式?设计模式是用来解决什么问题的等
4. 对软件开发过程的了解,对软件设计过程的了解,比如用例图、UML图等。
5. 对面向对象编程的了解,比如面向对象编程的准则、优点等。
6.对软件测试的理解。比如常见的测试方法有哪些,测试的目的是什么?对测试驱动开发(TDD)、自动化测试的了解等。
7.对版本控制工具的了解,比如git的特点等。
软件工程试卷
以下试题大部分选自中国海洋大学考研试题
一、选择题
1. 软件工程的出现主要是由于 ( C )。
A 、程序设计方法学的影响 B 、其它工程科学的影响
C、软件危机的出现 D 、计算机的发展
解析:软件危机是指在计算机软件开发和维护的过程中所遇到的一系列严重问题,为了软件危机,出现了软件工程。
2.下列哪个阶段不属于软件生存周期的三大阶段(C )。
A、计划阶段 B、开发阶段
C、编码阶段 D、维护阶段
解析:软件的生存周期包括:计划阶段、开发阶段、维护阶段。编码是开发阶段的一部分。
3. Git的使用是程序员不可缺少的一项技能。以下对git的描述不正确的是(B)
A、git可以利用快照签名回溯历史版本
B、git要求必须搭建有中心服务器启动运行才能提交修改
C、git属于分布式版本控制工具
D、git可以采用公钥认证进行安全管理
解析:git是去中心化的
4. 软件开发的结构化生命周期方法将软件生命周期划分成 ( A )
A 、计划阶段、开发阶段、运行阶段 B 、计划阶段、编程阶段、测试阶段
C 、总体设计、详细设计、编程调试 D 、需求分析、功能定义、系统设计
解析:送分题。
5. 一般来说,在管理软件中,软件生存周期各个阶段的工作量以( D )所占的比例最大。
A、需求分析与设计阶段 B 、编码实现阶段 C 、测试阶段 D 、维护阶段
解析:软件需要长期的维护。
6、软件测试的目标是(B)。
A、证明软件是正确的 B 、发现错误,降低错误带来的风险
C、排除软件中的所有错误 D 、与软件调试相同
解析:软件测试无法证明软件是正确的,也无法排除软件中的所有错误。它的目标是发现错误。
二、名词解释:
1.重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指 同一个运算符可以施加于不同类型的操作数上面。
2.软件可移植性 把程序从一种计算机环境转移到另一种计算机环境的难易程度。
3.多态性:子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。
4.模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
5.抽象:抽出事物的本质特性而暂时不考虑它们的细节。
三、简答题
1.请列举出面向对象设计准则(至少5个)
1.模块化
2.抽象(规格说明抽象、参数化抽象)
3.信息隐藏
4.弱耦合(松散交互耦合、提高继承耦合)
5.强内聚(服务内聚、类内聚、一般-特殊内聚)
6.可重用(类构件的重用方式:实例重用、继承重用、多态重用)
2. 软件生命周期(划分言之有理即可)
1、问题定义:要解决的问题是什么
2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性
3、需求分析:系统必须做什么
4、总体设计:系统如何实现,包括系统设计和结构设计
5、详细设计:具体实现设计的系统
6、实现:编码和测试
7、运行维护:保证软件正常运行。
3.在某一音乐软件中, 用户可以使用qq或者微信进行登录,并且可以听歌、查询歌曲、建立歌曲列表和购买歌曲。请画出该音乐软件的用例图。
http://www.woshipm.com/pd/2602941.html
4.微信公众号推送文章可能用到了哪种设计模式?请简要说明并画出类图。
解析:在这里公众号就是一个被观察者,普通的微信用户就是观察者,如果微信用户关注了公众号 ,那么公众号推送的每一篇的文章,微信用户就会第一时间收到公众号的文章。
https://juejin.im/post/5a1c1ae66fb9a045186a766b
以上是关于如何评测软件工程知识技能水平?的主要内容,如果未能解决你的问题,请参考以下文章