如何才能评价一个软件工程师的专业技术呢,这需要从很多方面来看。
(1)具有扎实的计算机专业知识
这是软件工程理由能够从事软件一切工作最基本的前提,是软件工程最基本的素质,这要求软件工程师必须精通高等数学、离散数学、电子学、编程语言、数据结构等课程。
(2)良好的语言表达能力和沟通能力
这是软件工程师应该具备的一个很重要的素质,因为软件工程师是为用户开发软件,常常需要直执着面对用户。
(3)健康的心理素质
1.软件开发瀑布模型中的软件定义时期各个阶段依次是: (B)
A) 可行性研究,问题定义,需求分析。
B) 问题定义,可行性研究,需求分析。
C) 可行性研究,需求分析,问题定义。
D) 以上顺序都不对。
2.可行性研究主要从以下几个方面进行研究: ( A )
A) 技术可行性,经济可行性,操作可行性。
B) 技术可行性,经济可行性,系统可行性。
C) 经济可行性,系统可行性,操作可行性。
D) 经济可行性,系统可行性,时间可行性。
3. 下面几种白箱测试技术,哪种是最强的覆盖准则()
A.语句覆盖 B.条件覆盖 C.判定覆盖 D.条件组合覆盖
答案: D
4. 内聚程度最低的是( )内聚
A.偶然 B.过程 C.顺序 D.时间
答案:A
5. ()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A. 多态性 B. 继承 C. 封装 D. 消息
答案:C
6.软件设计中,用抽象和分解的目的是(B)
A.提高易读性 B.降低复杂性 C.增加内聚性 D.降低耦合性
7 软件生命周期中所花费用最多的阶段是( D )。
A.详细设计 B.软件编码 C.概要设计 D.软件测试和维护
8.开发软件时对提高开发人员工作效率至关重要的是(B)
A.操作系统的资源管理功能
B.先进的软件开发工具和环境
C.程序人员的数量
D.计算机的并行处理能力
9.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种
现象称作( B )。
A.软件投机 B.软件危机 C.软件工程 D 软件产生
10、当一个模块直接使用另一个模块的内部数据, 这种模块之间的耦合为(D )
A. 数据耦合 B. 公共耦合 C. 标记耦合 D. 内容耦合
解析:不可以被数据所迷惑而选择A选项,若一个模块直接访问另一个模块的内部数据、一个模块不通过正常入口转到另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口,上述几个情形之一发生则两个模块之间就发生了内容耦合。
二、名词解释(4题,每题5分)
1、重构
答:通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性
2、多态
答:在面向对象语言中,接口的多种不同的实现方式即为多态
3、模块化
答:是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性
4、结构冲突
答:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突
三、判断题(10题,每题2分)
1、软件工程学只有理论意义,没有实际用途。(F)
2、面向对象建模得到的模型包含系统的 3 个要素,即静态结构、交互次序和数据变换。(T )
3、软件生存周期是从软件开始开发到开发结束的整个时期(F)
4、耦合用于衡量一个模块内部的各个元素彼此结合的紧密程度。(F)
5、为了加快软件维护作业的进度,应尽可能增加维护人员的数目.(F)
6、以对象,类,继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一.(T)
7、完成测试作业后,为了缩短源程序的长度应删除程序中的注解。( F)
8、系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。(F)
9、数据流图和数据字典共同构成系统的逻辑模型。(T)
10、白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程。(F)
四、简答题(来源于软件工程教材中的概念)
1. 什么是白盒测试?
答:是指实际运行被测程序,通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法、溢出、路径和条件等方面的缺点或者错误,进而加以修正。
2. 软件危机的主要表现是什么?
答:(1)软件开发进度难以预测
(2)软件开发成本难以控制
(3)用户对产品功能难以满足
(4)软件产品质量无法保证
(5)软件产品难以维护
(6)软件缺少适当的文档资料
3. 软件过程是什么?列举几个常见的描述软件过程的模型?
答:软件过程是指为了获取高质量软件所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
常见的软件过程模型有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。
4. 说明面向对象的特征 ?
面向对象的特征是:
(1)对象唯一性。每个对象都有自身唯一的标识,在对象生存期中,其标识不变,不同的对
象不能有不同的标识。
(2)分类性。是指将具有一致的数据结构 (属性 )和行为 (操作 )的对象抽象成类
(3)继承性。是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
(4)多态性。是指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。
5:说明面向对象的特征 ?
面向对象的特征是:
(1)对象唯一性。每个对象都有自身唯一的标识,在对象生存期中,其标识不变,不同的对
象不能有不同的标识。
(2)分类性。是指将具有一致的数据结构 (属性 )和行为 (操作 )的对象抽象成类
(3)继承性。是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
(4)多态性。是指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。
6. 什么是白盒测试?什么是黑盒测试?
答:白盒测试又称为结构测试,它的前提条件是可以看成将程序放在一个透明的白盒子中,也就是完全了解了软件系统的结构和整个处理过程。
7. 简述软件质量的定义及在软件开发过程中管理软件质量的办法。
答:软件质量指的是软件产品满足规定的和隐藏的与需求能力有关的全部特征和特性。管理软件质量的办法:(1)每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务;(2)每个阶段结束前都要对所完成的文档、程序进行评审,以便尽早发现问题,改正错误。