2017年解放军信息工程大学081100控制科学与工程03方向软件工程考研复试核心题库
● 摘要
一、名词解释
1. 软件再工程
【答案】软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性、可复用性。它指的是对既存对象系统进行调查,并将其重构为新 形式代码的开发过程,它的重要特点是能最大限度的重用既存系统的各种资源。
二、简答题
2. 面向对象实现应该选用哪种程序设计语言?为什么?
【答案】(1)面向对象实现应该尽量选用面向对象语言来实现面向对象分析、设计的结果。
(2)原因
①一致的表示方法。面向对象开发基于不随时间变化的、一致的表示方法。既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。
②可重用性。既可重用面向对象分析结果,也可重用相应的面向对象设计和面向对象程序设计结果。
③可维护性。程序显式地表达问题域语义,对维护人员理解待维护的软件有很大帮助。在选择编程语言时,应该考虑的首要因素是哪个语言能最恰当地表达问题域语义。
3. 详细设计的基本任务包括哪些?
【答案】(1)数据结构设计
对需求分析、总体设计阶段确定的概念性的数据类型,要进行确切的定义。这一部分的设计内容一般比较多,所以大多数采用小型数据库辅助的方法。
(2)物理设计
对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(3)算法设计
在总体设计的结构完成后,结构各个环节的实现是多解的。这就需要用系统设计与分析的技术来描述。可以用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(4)界面设计
用户界面的设计现在显得比较重要,可以采用字符用户界面设计,图形用户界面和多媒体人机界面设计。这就要结合具体的系统来处理。
(5)其他设计
根据软件系统的类型,还可能要进行以下设计:
①代码设计
为了提高数据的输入、分类、存储及检索等操作的效率以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。
②输入/输出格式设计
③人机对话设计
对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容及格式的具体设计。
④网络设计
如果设计的软件是一个分布式系统,那么还要进行网络的拓扑结构设计。
(6)编写设计说明书
(7)评审
对处理过程的算法和数据库的物理结构都要评审。
4. 提高软件质量和可靠性的技术有哪些?
【答案】(1)避开错误技术
即在开发的过程中不让差错潜入软件的技术;避开错误技术是进行质量管理,实现产品应有质量所必不可少的技术。但是,无论使用多么高明的避开错误技术,也无法做到完美无缺和绝无错误。
(2)容错技术
即对某些无法避开的差错,使其影响减至最小的技术。,容错技术即使错误发生也不影响系统特性,使错误发生时对用户影响限制在某些允许的范围内。
5. 瀑布模型有哪些局限性?
【答案】(1)各阶段之间存在着严格的顺序性,特别强调预先定义需求的重要性,在着手进行具体的开发工作之前,必须通过需求分析预先定义并“冻结”软件需求,然后再一步一步地实现这些需求。但是实际项目很少是遵循着这种线性顺序进行的。
(2)虽然瀑布模型也允许迭代,但这种改变往往给项目开发带来混乱。在系统建立之前很难只依靠分析就确定出一套完整、准确、一致、有效的用户需求,这种预先定义需求的方法更不能适应用户需求不断变化的情况。
(3)传统的瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种思想的、线性的开发过程,缺乏灵活性,不适应实际的开发过程。
6. 什么是耦合性?模块的耦合性有哪些内容?
【答案】(1)耦合性的定义
耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
(2)模块耦合性的分类
①无直接耦合
无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此模块间耦合性最弱,模块独立性最高。
②数据耦合
数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。这种耦合程度较低,模块的独立性较高。
③标记耦合
标记耦合指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址。两个模块必须清楚这些数据结构,并按要求对其进行操作,这样降低了可理解性。可采用“信息隐蔽”的方法,把该数据结构以及在其上的操作全部集中在一个模块,就可消除这种耦合,但有时因为还有其他功能的缘故,标记耦合是不可避免的。
④控制耦合
控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调用模块通过该控制变量的值有选择地执行模块内某一功能。因此被调用模块内应具有多个功能,哪个功能起作用受其调用模块控制。
7. 选择面向对象程序设计语言时主要应该考虑哪些因素?
【答案】(1)将来能否占主导地位。
(2)可重用性。
(3)类库和开发环境。
(4)其他因素,包括售后服务、对运行环境的需求、集成已有软件的难易程度等。
三、综合应用题
8. 建立以下有关“微机”的对象模型:一台微机有一个显示器,一个主机,一个键盘,一个鼠标,汉王笔 可有可无。主机包括一个机箱,一个主板,一个电源及储存器等部件。存储器又分为固定存储器和活动储存器两种,固定存储器为内存和硬盘,活动存储器为软盘和光盘。
【答案】“微机”的对象模型如图所示。
相关内容
相关标签