中南大学软院历年真题简答题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

简答题20061.什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是指导软件开发和维护的工程性学科;计算机科学着重于原理和理论,软件工程与计算机科学不同,软件工程着重于如何建造软件系统,软件是计算机中看不见摸不着的逻辑部分,以程序、数据和文档的形式出现。2.面向对象方法和结构化方法有何区别与联系?答:区别:面向对象从所处理的数据入手,以数据为中心来描述系统,其基本思想是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界的方法与过程,基本原则为:对象+类+继承+消息通信;结构化方法首先关心的是功能,强调以模块为中心,其基本思想是自顶向下,逐步求精,单入口,单出口,基本原则为:抽象与功能的分解。联系:软件开发过程中,在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。3.什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内?答:模块的作用域是指模块中判定的作用范围,它是指所有受这个判定范围影响的模块;模块的控制域是指模块本身及其直接或间接调用的模块;如果模块的作用域不在控制域内,则会增加数据间的传递量,使模块间出现控制耦合4.什么是设计模式?试举例说明组合设计模式的应用。答:设计模式是指系统命名,解释和评价某一重要的,可复用的面向对象的设计方案。组合设计模式:使用迭代器模式来遍历组合结构。5.什么是依赖倒置原则?它和开闭原则有何联系?答:依赖倒置是类设计原则的一种,它要求高层不应依赖于底层,抽象不应依赖于细节;依赖倒置原则的本质其实就是通过抽象(抽象类或接口)使各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合,如果没有实现这个原则,则开闭原则也无法实现。6.软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点?答:软件生存期过程没有规定一个特定的生存周期模型,各软件开发机构可视其项目的需要选择一种软件生存周期模型,并将软件生存期过程所含过程、活动和任务映射到选定的软件生存周期模型中。软件生存期模型是软件生存期过程所含过程、活动和任务的映射。瀑布模型特点:各阶段相互依赖;每阶段都进行评审;强调需求分析和设计。20071、瀑布模型是软件工程中应用最广泛的过程模型,试述采用瀑布模型进行软件开发的基本过程,该过程有何特点?答:瀑布模型规定了各项软件工程活动,包括需求分析、规格说明、设计、编码、测试和维护,并规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级而下。瀑布模型的特点是:阶段间具有顺序性和依赖性;清楚区分逻辑设计和物理设计,尽可能推迟程序的物理实现;每个阶段都必须完成规定文档,且每阶段结束前需要对完成的文档进行评审。2、什么是软件配置管理?软件配置管理和软件维护有何不同?答:软件配置管理是在软件生命周期内管理变化的一组活动,用来:标识变化、控制变化、确保适当地实现了变化、向相关人员报告变化。软件配置管理和软件维护的区别是:软件配置管理是一组追踪和控制活动,在软件项目启动时就开始,并一直持续到软件被淘汰后才终止;软件维护是一组软件工程活动,发生于软件交付给用户并投入运行之后。3、试举例说明聚集关系中共享聚集和组合聚集有何不同。答:如果在聚集关系中部分对象可同时参与多个整体对象的构成,则该聚集称为共享聚集。例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是一种共享聚集的关系。如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。例如,在屏幕上一个窗口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之的关系为组合聚集关系。20081.非渐增式测试与渐增式测试有何区别?答:非渐增式测试,一般应先经过单元测试,然后再把所有模块一次性组装在一起进行测试,最终得到要求的软件系统;而渐增式测试则采用逐步加入模块或功能簇的方式进行,在加入过程中边连接边测试,比较容易定位和修正错误,且接口也可以更容易进行彻底地测试2.试举例说明什么是功能性需求,什么是非功能性需求?为何非功能性需求往往比功能性需求还要重要?答:功能性需求是说有具体的完成内容的需求。例如:比如客户登录、邮箱网站的收发邮件、论坛网站的发帖留言等。非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。例如:性能要求:要求系统能满足100个人同时使用,页面反应时间不能超过6秒;非功能性需求往往比功能性需求还要重要是因为非功能性需求描述的是软件的质量属性,直接影响着用户体验,因此非功能性需求在决定系统成败的因素中起更重要的作用。3.层次图和层次方框图有何区别?答:不同:1,层次图描绘软件的层次结构.层次方框图描绘的是数据结构。2,层次图的方框表示模块或子模块。层次方框图的方框表示数据结构整体或其子集。3,层次图的连线表示调用关系,层次方框图表示组成关系。4.快速原型模型有几种?各有何特点?答:快速原形模型根据原型的不同作用,有三类原型模型:(1)探索型原型:把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。(2)实验型原型:主要用于设计阶段,考核实现方安是否合适,能否实现。对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型的开发来证实设计方案的正确性。(3)演化型原型:它将原型思想扩展到软件开发的全过程,就是及早向用户提交一个原型系统,在得到用户认可后,将原型系统不断扩充演化为最终的软件系统。20091.试简要说明面向对象方法与结构化方法相比有何优越性,至少列出三点。答:(1)强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,这就使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确地反映问题域。(2)运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息通讯等基本原则)进行系统开发,有益于发挥人类的思维能力,并有效地控制了系统复杂性。(3)对象的概念贯穿于开发过程的终,使各个开发阶段的系统成分具良好的对应,从而显著地提高了系统的开发效率与质量,并大大降低系统维护的难度。(4)对象概念的一致性,使参与系统开发的各类人员在开发的各所段具有共同语言,有效地改善了人员之间的交流和协作。(5)对象的相对稳定性和对易变因素隔离,增强了系统的应变能力。(6)对象类之间的继承关系和对象的相对独立性,对软件复用提供了强有力的支持。2.什么是模块的作用域?为何设计软件结构时要求模块的作用域必须在控制域之内?答:所谓模块的作用域是指模块判定的影响范围。作用域在控制域之内,可使得软件修改时代码局部化。3.什么是动态测试?为何静态测试方法往往比动态测试方法效率高?答:动态测试是指经运行程序代码而检查代码是否存在错误。静态测试往往不是运行代码,而在软件开发的早期进行,而早期错误发现要比错误晚发现付出的成本少,而静态测试往往在发现错误后还可继续进行,但动态测试往往需要停下来改进后才能进一步测试。20101.什么是模块的作用域?为何要求模块的作用域必须在控制域内?答:模块的作用域是指模块中判定的作用范围,它是指所有受这个判定范围影响的模块;模块的控制域是指模块本身及其直接或间接调用的模块;如果模块的作用域不在控制域内,则会增加数据间的传递量,使模块间出现控制耦合2.什么是MVC框架?简要说明框架中的类如何交互。答:MVC是指模型、视图和控制器三层框架模型,用户通过视图看到数据的情况,控制器用来处理用户的操作,进行业务逻辑处理并通过视图显示出来,如果模型发生变化,被注册的视图也随之变化,模型是观察目标,视图是观察者,控制器作为两者的中介者,MVC模式结合了观察者模式和中介者模式。3.软件维护活动有哪些类型?如何提高软件的可维护性?答:改正活动类型:改正性维护(由于开发时测试不彻底或不完全导致运行阶段出现的故障。20%)适应性维护(运行环境的变化。25%)完善性维护或增强(用户对软件提出新的功能或性能要求。50%)预防性维护或再工程(为提高软件的可维护性等,以便将来进一步改进软件打基础。5%)提高软件的可维护性:(1)建立明确的软件质量目标和优先级(2)使用提高软件质量的技术和工具(3)进行明确的质量保证审查(4)选择可维护的程序设计语言(5)改进程序文档(6)开发室考虑到维护4.简要说明瀑布模型的优缺点。答:优点:(1)流水线生产比个人生产效率高,质量好;(2)将逻辑设计与物理实施分开,避免无用功。减少成本,能尽量推迟物理实施;(3)文档驱动使得开发过程可视化,便于管理和控制。缺点:(1)当需求不明确时,流水线被阻塞,返流代价大;(2)得不到用户的反馈,开发过程得不到修正,导致有可能出现大的失误;(3)最后将产品一次提交给用户,用户感到不适应,成本增加,市场风险加大。20111.什么是软件测试?测试和调试有何区别?答:软件测试:软件测试是确保软件质量和降低软件成本的重要手段,设计软件的整个生存周期;软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的复审,是为了发现错误,通过检查和提供客观证据表明软件已经满足规定的需求;软件测试就是试图以最少的代价发现软件分析、设计和编码中存在的各种不同类型的错误,从而提高软件质量、降低软件成本。区别:测试是查找错误症状的过程,调试则是查找错误症状的原因并改正错误的过程。(联系:调试之后还应进一步进行测试和评价,以确保错误真正被消除且没有引入新的错误)2.从软件工程的角度来看,软件包含哪些内容?各有何作用?答:软件包括:程序、数据、描述程序与数据等与之相关的文档。作用:程序代码是软件的主体,用来完成软件相应的功能和操作;数据是用来运行以及维护系统的必要的成分,系统的运行和测试都离不开数据;文档的作用:(1)提高软件开发过程的能见度;(2)记录开发软件的有关信息便于使用与维护;(3)作为软件开发人员阶段工作成果和结束标志;(4)提高开发效率;(5)提供软件运行维护和培训有关资料;(6)便于用户了解软件功能、性能。20121.什么是软件危机?产生软件危机的原因是什么?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是两个问题:(1)如何开发软件,怎样满足对软件的日益增长的需求;(2)如何维护数量不断膨胀的已有软件。软件危机的出现,究其原因,一方面是由软件本身的特点引起的,如软件越来越复杂,软件故障难于检测,工作量难以估计;另一方面则是因为软件开发和维护方法不当所造成的,如软件的个体化特征太强等。2.什么是动态测试?为何静态测试方法可能比动态测试方法效率高?答:动态测试是通过运行软件来检验其动态行为和运行结果的正确性,动态测试是实际运行被测程序,输入相应的测试用例,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,静态测试是对被测程序进行特性分析的一些方法的总称,这种方法的主要特性是不利用计算机运行被测试的程序,而是采用其他手段达到检测的目的。因而在代码产生之前便可对各种文档进行测试,又由于软件质量主要取决于分析和设计阶段的质量,所以静态测试效率往往高于动态测试。3.面向对象方法中,类和对象有何联系与区别?举例说明。答:联系:类是一组相似对象的一般化描述,同一个类中的对象继承类的属性和方法。区别:类是一个抽象的概念,它不存在与现实中的时间空间中,类只是为所有的对象定义了抽象的属性和行为;类是一个静态的概念,类本身不携带任何数据,当没有为类创建任何对象时,类本身不存在于内存空间中。对象是类的一个具体。它是一个实实在在存在的东西;对象是一个动态的概念,每一个对象都存在这有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随它自己的行为而发生改变。举例:三角形(类)等腰三角形、等边三角形、直角三角形(对象)4.成本估计是软件费用管理的核心,通常项目成本估计有哪

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功