软件工程师的软件工程知识技能水平高低主要体现在哪些方面?
具备良好的人文素质和科学素养,
具有扎实的计算机科学基础理论和软件工程专业知识;
具有软件开发以及项目管理能力、创新及创业意识;
相关领域的作图以及大局意识;
能适应技术进步和社会需求,能达到软件工程专业中级技术水平所必需的知识和技能要求,
同时,也能胜任计算机及相关领域中的软件分析设计、开发、测试、维护和管理等多方面需要
软件工程知识技能水平的测评试题(满分:100分)
一、选择题(2分*13)(选自考研辅导资料和课程的PPT,考察基本概念)
1.“软件危机”是指(C)
A:计算机病毒的出现 B:利用计算机进行经济犯罪活动
C:软件开发和维护中出现的一系列问题D:人们过分迷恋计算机系统
2.测试的关键问题是(D)
A:如何组织对软件的评审 B:如何验证程序的正确性
C:如何采用综合策略 D:如何选择测试用例
3.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中
A:结合 B:隐藏 C:封装 D:抽象
4.软件生命周期中所花费用最多的阶段是(D)
A:详细设计 B:软件编码 C:软件测试 D:软件维护
5.具有风险分析的软件生命周期模型是(C)
A:瀑布模型 B:喷泉模型 C:螺旋模型 D:增量模型
6.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)
A:基于瀑布模型的结构化方法 B:基于需求动态定义的原型化方法
C:基于对象的面向对象的方法 D:基于数据的数据流开发方法
7.用例(use-case)之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是( A )关系
A:包含(include) B:扩展(extend)
C:分类(classification) D:聚集(aggregation)
8.在 E-R 模型中,包含以下基本成分( C )
A:数据、对象、实体 B:控制、联系、对象
C:实体、联系、属性 D:实体、属性、操作
9.效率是一个性能要求,因此应当在以下哪个阶段规定?( B )
A:可行性分析 B:需求分析 C:概要设计 D:详细设计
10.下列的( C )不属于面向对象分析模型
A:用例图 B:类图 C:实体关系图 D:顺序图
11.设计模式中发布-订阅体系结构样式的应用程序的是( A )
A:观察者模式 B:外观模式 C:适配器模式 D:策略模式
12.在继承关系的举例中,车俩是小汽车的(C),小汽车是车俩的(C)
A:泛化;泛化 B:特化;特化
C:泛化;特化 D:特化;泛化
13.软件单元向系统其余部分提供服务,以及其他单元如何访问这些服务,这体现了一下哪一设计原则?( D )
A:耦合 B:凝聚 C:抽象 D:接口
二、名词解释题(4分*5) (来自平时作业,考察名词的概念)
1.观察者模式(observer pattern)
属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。
2.模块化(modularity)
模块化指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
3.松散耦合(loosely coupled)
松散耦合是一个被程序开发人员广泛使用的概念,就是说应用模块之间要使用输入和输出的模块进行解耦。
4.可修改性(modifiability)
可修改性描述了程序能够被正确修改的难易程度。一个可修改的程序应当是可理解的、通用的、简单的、灵活的。通用性是指程序适用于各种功能变化而无需修改。灵活性是指能够容易地对程序进行修改。
5.功能内聚(functional cohesion)
属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。
三、简答题(40分)(选自考研辅导资料,和课程的PPT里面,考察基本概念)
1.阐述一下软件工程的概念(6分)
答:软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把正确的管理和最好的技术结合起来,以经济地开发出高质量的软件并有效地维护。
2.软件工程强调规范化和文档化的原因(9分)
答:强调规范化,目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。
强调文档化:
(1)文档化是将软件的设计思想、设计过程、实现过程完整地记录下来,便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流。
(2)在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件开发过程进行管理。
(3)在用户最终验收时可以对提交的文档进行技术和管理审查,保证软件的质量。
3.什么是软件生命周期?具体有哪些步骤?(8分)
答:软件生命周期:一个软件从定义、开发、维护直到最终废弃的过程。
4.有哪些获取需求的方法?例举一些。(7分)
答:-与股东面谈
-审查可用文件
-观察当前系统(如果存在)
-吸引用户了解用户的任务细节
-采访用户或其他股份持有者
-使用特定领域的策略,例如联合应用设计
-对当前和潜在在客户精心头脑风暴
5.有哪些动态测试的方法?请具体展开说明。(10分)
答:动态测试指通过运行程序发现错误,测试方法主要有白盒法和黑盒法:
白盒测试(又称结构测试):把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。
包括:逻辑覆盖(8 种覆盖)、控制结构测试(3 种)
黑盒测试(又称功能测试):把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。
包括:等价划分、边界值分析、错误推测、因果图
四、设计题(14分)(选自考研辅导资料,考察设计画图的能力)
银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请设计该系统的 E-R 模型。
答:建立 E-R 模型的过程如下:
(1)确定实体类型。本问题共有两类实体:“储户”和“储蓄所”。
(2)确定联系类型。实体之间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)联系。
(3)确定实体类型和联系类型的属性:
实体类型“储户”的属性主要是:姓名、住址、电话号码和身份证号码。
实体类型“储蓄所”的属性主要是:名称、地址和电话号码。
联系类型“存取款”的属性主要是:数额、类型、到期日期、利率和密码。
(4)把实体类型、联系类型及属性组合成 E-R 图。