当前位置:文档之家› 2021年河南大学计算机与信息工程学院825软件工程导论、数据结构考研核心题库之软件工程导论简答题精

2021年河南大学计算机与信息工程学院825软件工程导论、数据结构考研核心题库之软件工程导论简答题精

特别说明

本书根据历年考研大纲要求并结合历年考研真题对该题型进行了整理编写,涵盖了这一考研科目该题型常考试题及重点试题并给出了参考答案,针对性强,考研复习首选资料。

版权声明

青岛掌心博阅电子书依法对本书享有专有著作权,同时我们尊重知识产权,对本电子书部分内容参考和引用的市面上已出版或发行图书及来自互联网等资料的文字、图片、表格数据等资料,均要求注明作者和来源。但由于各种原因,如资料引用时未能联系上作者或者无法确认内容来源等,因而有部分未注明作者或来源,在此对原作者或权利人表示感谢。若使用过程中对本书有任何异议请直接联系我们,我们会在第一时间与您沟通处理。

因编撰此电子书属于首次,加之作者水平和时间所限,书中错漏之处在所难免,恳切希望广大考生读者批评指正。

重要提示

本书由本机构编写组多位高分在读研究生按照考试大纲、真题、指定参考书等公开信息潜心整理编写,仅供考研复习参考,与目标学校及研究生院官方无关,如有侵权请联系我们立即处理。

一、2021年河南大学计算机与信息工程学院825软件工程导论、数据结构考研核心题库之软件工程导论简答题精编

1.比较面向对象分析方法与结构化分析方法的特点。

【答案】面向对象的方法是以对象(类)作为最基本的元素,它是分析问题解决问题的核心。围绕对象实现哪些功能、对象的结构及对象的协作和交互,实现面向对象的分析、面向对象的设计和面向对象的编程。

结构化方法核心是自顶向下逐步求精,围绕数据在系统中的流动,进行分析、设计和实现。

2.软件复杂性有哪几类?软件复杂性度量模型应遵循哪些基本原则?

【答案】K.Magel从6个方面描述软件复杂性:

(1)理解程序的难度。

(2)改错及维护程序的难度。

(3)向他人解释程序的难度。

(4)按指定方法修改程序的难度。

(5)根据设计文档编写程序的工作量。

(6)执行程序时需要资源的程度。

程序的N-S图

软件复杂性度量模型应遵循的基本原则:

(1)软件复杂性与程序大小的关系不是线性的。

(2)控制结构复杂的程序较复杂。

(3)数据结构复杂的程序较复杂。

(4)转向语句使用不当的程序较复杂。

(5)循环结构比选择结构复杂,选择结构又比顺序结构复杂。

(6)语句、数据、子程序和模块在程序中的次序对软件复杂性都有影响。

(7)全程变量、非局部变量较多时程序较复杂。

(8)参数按地址传递比按值传递更复杂。

(9)函数副作用比显式参数传递更难以琢磨。

(10)具有不同作用的变量共用一个名字时较难理解。

(11)模块间或过程间联系密切的程序较复杂。

(12)嵌套深度越深程序越复杂。

最典型的两种程序复杂性度量的方法中,McCabe环路复杂性度量就是针对基本原则(2)制定的度量模型。Halstead软件科学则是针对程序中操作符和操作数的出现频度而制定的度量模型。

3.为什么Jackson方法会遇到结构冲突问题?如何解决?

【答案】运用Jackson方法时,由于输入和输出数据结构之间不存在一一对应关系,或者二者之间尽管存在一一对应关系,但是二者边界不同,可能遇到结构冲突问题。

解决方法:引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件将把它们联系起来,构成一个系统的整体。

4.简述容错技术的四种主要手段,并解释。

【答案】容错技术主要手段有:

(1)结构冗余:包括静态冗余、动态冗余和混合冗余。

(2)信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。

(3)时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。

(4)冗余附加技术:指为实现上述冗余技术所需的资源和技术。

5.快速原型的开发步骤是什么?

【答案】快速原型的开发步骤是:

①快速分析。在分析人员与用户紧密配合下,迅速确定系统的基本需求,根据原型所要体现的特征描述基本需求以满足开发原型的需要。

②构造原型。在快速分析的基础上,根据基本需求说明尽快实现一个可运行的系统。在此阶段要求快速实现,尽快投入运行和演示。

③运行原型。这是发现问题、消除误解、开发者与用户充分协调的一个步骤。由于原型忽略了很多内容,集中反映需要评价的特性,外观看来不太完整,用户要在开发者的指导下运行原型,使用过程中努力发现各种不合理的部分,各类人员在共同运用原型的过程中进一步加深对系统的了解及相互之间的理解。

④评价原型。在运行的基础上,考核评价原型的特性,分析运行效果是否满足用户的愿望,纠正过去交互中的误解与分析中的错误,增添新的要求,并满足因环境变化或用户新想法引起的系统要求变动,提出全面的修改意见。

⑤修改。根据评价原型的活动结果进行修改。修改过程代替了初始的快速分析,从而形成原型开发的循环过程。用户与开发者在这种循环过程中不断接近系统的最终要求。

上述步骤在软件工具的支持下往往是互相交融在一起的,而不再像瀑布模型那样有严格的阶段划分,线性推进。

6.系统设计的内容是什么?

【答案】系统设计是问题求解及建立解答的高级策略。

(1)系统分解。子系统是系统的主要组成部分,子系统既不是一个对象也不是一个功能,而是类、关联、操作、事件和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。

(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些必须是同时动作的对象,哪些不是动作的对象。后者可放在一起,综合成单个控制线或任务。

(3)处理其及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理奇之间的通信,决定实现各子系统的各物理单元的联结。

(4)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常是各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量及可靠性之间做折中考虑。

(5)全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源、如处理器、驱动器等;空间,如盘空间、工作站屏幕等;逻辑名字,如对象标识符、类名、文件名等。

如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。

(6)选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。

(7)人机交互接口设计。设计中的大部分工作都与稳定的状态下行为有关,但必须考虑用户使用系统的交互接口。

7.给定下列伪码表示,设计出等价的N-S图,给出相应程序结构的Jackson方法的图形表示。

相关主题
文本预览
相关文档 最新文档