软件工程知识技能水平高低的主要体现方面
1. 开发语言:至少熟练掌握一门编程语言
2. 数据结构与算法:算法是软件工程师的重点知识结构,算法的掌握情况往往能够决定软件工程师的成长高度
3. 开发环境:熟练掌握Windows、Linux等大型主流操作系统的操作,熟练掌握编程环境配置与软件环境部署
4. 软件开发流程: 熟悉掌握瀑布模型、敏捷开发等软件工程开发的流程。了解软件开发各周期或阶段的目标以及作用。了解软件开发的一些原则技术及方法
5. 团队协作能力:队员间在各个开发环节需要沟通协作
软件工程知识技能水平测评试题
一.选择题(共40分,一题4分)
1. 软件生命周期一般包括三个时期:软件定义期、软件开发期和软件运行期。下述( )不是软件开发期所应包含的活动。
A. 可行性分析
B. 需求获取和需求建模
C. 软件体系结构设计和数据设计
D. 软件集成与系统测试
答案:D
软件开发期所应包含的活动有:可行性分析、需求获取和需求建模和软件体系结构设计和数据设计。
2. “软件危机”是指( )
A. 大众不适应软件的使用
B. 软件开发相关人才过少
C. 软件开发和维护中出现的一系列问题
D. 大量黑客出现
解析:C
软件危机指的是随着软件规模不断扩大而产生的一系列开发与维护的难题
3. 下列哪个不是瀑布模型的优点( )
A. 项目提供了按阶段划分的检查点
B. 当前一阶段完成后,只需要去关注后续阶段
C. 减少了了工作量
D. 克服了传统开发的随意性
答案:C
瀑布模型有以下优点:
(1)为项目提供了按阶段划分的检查点。
(2)当前一阶段完成后,只需要去关注后续阶段。
(3)可在迭代模型中应用瀑布模型。增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
(4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
瀑布模型有以下缺点:
(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
(3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
(4)瀑布模型的突出缺点是不适应用户需求的变化。
4. 软件设计中模块划分应遵循的准则是( )
A. 低内聚低耦合
B. 高耦合高内聚
C. 高内聚低耦合
D.以上说法均错误
答案:C
根据软件设计原理提出的优化准则:划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性,并以此原则优化初始的软件结构
5. 下图是哪个设计模式的类图( )
A. 观察者模式
B. 创造者模式
C. 策略模式
D. 抽象工厂模式
答案:A
观察者模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。
6. 程序的三种基本控制结构是( )
A. 过程、子程序和分程序
B. 顺序、选择和循环
C. 递归、迭代和回溯
D. 调用、返回和转移
答案:B
程序控制方式是指在程序控制下进行的数据传递方式。程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。理论和实践证明,无论多复杂的算法均可通过顺序、选择、循环3种基本控制结构构造出来。
7. 软件测试的目标是( )
A. 证明软件是正确的
B. 发现错误、降低错误带来的风险
C. 排除软件中所有的错误
D. 与软件调试相同
答案:B
软件测试的目标是发现错误、降低错误带来的风险。
8. 在 E-R 模型中,包含以下 基本成分( )
A、数据、对象、实体
B 、控制、联系、对象
C 、实体、属性、操作
D、实体、联系、属性
答案:D
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
每一类数据对象的个体叫【实体】,而每一类对象个体的集合叫【实体集】,如学生是一个实体集,张三是一个实体,姓名是一个属性。
附E-R图的四个组成的部分:
1、矩形框:表示实体,在矩形框中写上实体的名字
2、椭圆形框:表示实体或联系的属性
3、菱形框:表示联系,在框中记入联系名
9. 软件模块的内部实现和外部可访问性分离,这是指软件的( )
A. 继承性
B. 共享性
C. 封装性
D. 抽象性
答案:D
软件模块的内部实现和外部可访问性分离是指软件的抽象性。
10. 面向对象分析方法的基本思想之一是( )
A. 基于过程或函数来构造一个模块
B. 基于事件及对事件的响应来构造一个模块
C. 基于问题领域的成分来构造一个模块
D. 基于数据结构来构造一个模块
答案:C
面向对象分析方法的基本思想之一是基于问题领域的成分来构造一个模块。
二.判断题(共20分,一题2分)
1. 开发软件就是编写程序。( )
2. 算法就是计算方法。( )
3. 软件工程就是求解软件的工程。( )
4. 软件开发模型是过程、活动和任务的结构框架。( )
5. 瀑布模型是一种建立系统模型的方法。( )
6. 结构化方法、面向对象方法是两种不同范型的软件开发方法学。( )
7. 软件需求分析的任务是建立软件模块结构图。( )
8. 在UML中用对象图描述对象、对象的属性和操作,以及对象之间的关系,它作用于整个软件生存周期中( )
9. Rational统一开发过程(RUP)是以测试驱动的、软件体系结构为中心的、迭代和增量的过程。( )
10. 黑盒测试是基于程序的逻辑结构的测试。( )
答案:××√√× √××√×
三.简答题(共20分,一题10分)
1. 简述RUP(Rational统一开发过程)提出的软件开发的六种最佳实践的名称,并对每一个最佳实践用一句话做出简要说明。
答案:RUP的软件开发的六种最佳实践的名称是:迭代式软件开发、需求管理、基于构件的软件体系结构、建立软件可视化模型、不断验证软件质量、控制变更。
迭代式的软件开发确保在迭代过程不断改进软件产品和过程,从而保证软件质量。
需求管理是管理和监控需求的获取、需求的变更和有关需求的决策。
基于构件建立软件体系结构提供了一系列方案,用以解决软件开发中所遇到的问题。
建立可视化模型可从不同视角描述系统,将软件体系结构的结构和行为可视化、具体化,从而可以帮助开发人员提高管理软件复杂性的能力。
不断地验证软件质量,可以提供一系列方案,得到对项目状况的客观评估,发现在需求、设计和实现之间的不一致,及早发现潜藏的缺陷可以降低修改费用;
控制变更使得开发过程始终处于受控状态,保证对软件产品和过程的控制,使得软件过程不致陷于混乱。
2. 简述黑盒测试与白盒测试的差异。
答案:
一、测试方式不同
1、黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。
2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
二、测试目的不同
1、黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
2、白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
三、测试原则不同
1、黑盒测试:以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
2、白盒测试:一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试true和false两种情况。
四.分析题(共20分,一题10分)
1. 将下面给出的伪码转换为N-S图和PAD图。(每个图5分)
void root ( float root1, float root2 ) { i = 1; j = 0; while ( i <= 10 ) { 输入一元二次方程的系数a, b, c; p = b*b – 4*a*c; if ( p < 0 ) 输出“方程i无实数根”; else if ( p > 0 ) 求出根并输出; if ( p == 0 ) { 求出重根并输出; j = j + 1; } i = i +1; } 输出重根的方程的个数j; }
答案:
(1)N-S图
(2)PAD图
2. 用UML 类图 表示一组几何对象。组中的父类叫“几何单项”(GeometryItem),由此衍生出线(Line)、圆(Circle)、正方形(Square)、椭圆(Elipse)和多边形(Polygon)子类。椭圆有两个焦点,它们重合时就成了圆。正方形是多边形的一种。所有的GeometryItem都是由点(Point)组成的。
答案:
来源:https://www.cnblogs.com/dwtenir/p/12154422.html