2017年南京工业大学软件工程(同等学力加试)复试实战预测五套卷
● 摘要
一、名词解释
1. 软件项目管理
【答案】软件项目管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,保证软件生命周期中的各项活动的正常的进行。软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。
二、简答题
2. 衡量模块独立的两个标准是什么?它们各表示什么含义?
【答案】(1)衡量模块独立的两个标准
衡量模块的独立性的标准是两个定性的度量标准:耦合性和内聚性。耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
(2)衡量模块独立的两个标准的含义
①耦合性
也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
②内聚性
又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间、程序段之间)联系得越紧密,则它的内聚性就越高。
3. 程序流程图的特点有哪些?
【答案】(1)程序流程图的优点
流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具。
(2)程序流程图的缺点
①可以随心所欲地控制流程线的流向,容易造成非结构化的程序结构。编码时势必不加限制地使用GOTO 语言,导致基本控制块多入口多出口,这样会使软件质量受到影响,与程序设计的原则相违背。
②流程图不易反映逐步求精的过程,往往反映的是最后的结果。
③不易表示数据结构。
4. 简述面向对象的要素。
【答案】(1)抽象
①定义
抽象是指强调实体的本质、内在的属性,忽略一些无关紧要的属性。
②抽象性
面向对象比其他方法技术有更高的抽象性,对象具有极强的抽象表达能力,对象可表示一切事物,可表达结构化的数据,也可表达非结构化的数据,如过程实体、图形、声音、规则等。
③共性抽象
类实现了对象的数据(即状态)和行为的抽象,它是对象的共性抽象。
(2)封装性(信息隐蔽)
①定义
封装性是指所有软件部件内部都有明确的范围以及清楚的外部边界,每个软件部件内部都有界面接口,软件部件的内部实现与外部可访问性分离。
②作用
面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。对象是封装的最基本的单位。封装防止了抽象相互依 赖性而带来的变动影响,面向对象的封装是比传统语言的封装更为清晰、更为有力。
(3)共享性
①同一类中的共享
在同一类中的对象有着相同数据结构。
②在同一个应用中的共享
在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承使相似子类共享共同的结构和行为。
③在不同应用中的共享
通过类库这种机制和结构来实现不同应用中的信息共享。
5. 三种模型的建立过程。
【答案】(1)对象模型:确定类、准备数据字典、确定联系、确定属性、完善对象模型。 (2)动态模型:准备脚本、准备事件跟踪、构造状态图。
(3)功能模型:确定输入输出值、建立DFD 。
6. 试说明主动服务与被动服务的区别。
【答案】(1)主动服务
主动服务是不需要接收消息就能主动执行的服务,它在程序实现中是一个主动的程序成分,例如用于定义进程或线程的程序单位。
(2)被动服务
被动服务是只有接收到消息才执行的服务,它在编程实现中是一个被动的程序成分,例如函
数、过程、例程等。
(3)区别
被动对象的服务都是被动服务,主动对象应该有至少一个主动服务。在定义服务的过程中,对于主动对象应指出它的主动服务。
7. 什么是测试用例?动态测试有哪些方法?
【答案】(1)测试用例的定义
“测试用例”是指为寻找程序中的错误而精心设计的一组测试数据,每个测试用例一般是一个二元组(输入数据、预期结果)。
(2)动态测试的分类
动态测试主要有两种方法:白盒法和黑盒法。但无论白盒法还是黑盒法都只能选择一些有代表性的测试用例进行有限的测试。
①白盒法测试
白盒法是从被测试程序的内部逻辑入手来设计测试用例;有六种用于有判定存在的逻辑覆盖标准,即程序内部路径的覆盖程度。对于有循环存在的覆盖用限制循环次数的办法来测试。但是对于一个实际问题的程序测试中,其路径是一个庞大的数字,基本路径测试告诉了最少路径计算办法,在分析程序控制流程图环路复杂性的基础上,导出基本路径集合,从而设计测试用例,保证这些基本路径至少执行一次,以最少的用例发现尽量多的错误。
②黑盒法测试
黑盒法着重测试被测试程序的功能,而不关心内部如何实现其功能的结构,是从用户观点出发的测试。具体方法有四种,采用黑盒法的综合策略是先用等价类划分法(包括边界值分析法,即取边值上的数)设计出测试用例,然后用错误推测法补充。如果被测试程序含有多个条件的逻辑组合,则开始就用因果图法。
三、综合应用题
8. 为什么要进行需求分析?通常对软件系统有哪些需求?
【答案】(1)需求分析的原因
为了开发真正满足用户需求的软件产品,需求分析是软件开发工作获得成功的前提条件,不能满足用户需求的程序只会令用户失望,给开发者带来烦恼。
(2)对软件系统的需求
功能需求、性能需求、可靠性和可用性需求、出错处理、借口需求、约束、逆向需求、将来可能提出的要求。
9. 面向对象程序设计语言主要有哪些技术特点?
【答案】(1)支持类与对象概念的机制。
(2)实现聚集结构的机制。
相关内容
相关标签