您好,欢迎访问三七文档
1.什么是软件?答:计算机程序和相关文档。2.什么是软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。3.什么是软件工程?答:软件工程是关于软件生产的各个方面的工程学科。或者说:采用工程的概念、原理、技术和方法来开发与维护软件,或者说把经过时间考验而证明是正确的管理技术和当前能够得到的合适的开发工具结合起来开发与维护软件,这就是“软件工程”。第二次作业说明:以下题目在考试时,可能变成填空题、也可能变成选择题、还有可能变成名词解释。1.软件工程方法学包括了几个关键要素?答:包括了3个关键要素,即方法、工具和过程。2.软件过程包含了那几项基本活动?答:软件过程包含了4项基本活动:(1)软件描述;(2)软件开发;(3)软件有效性验证;例如:填空题软件过程包含了4项基本活动:(1)软件描述;(2)软件开发;(3)软件有效性验证;(4)软件维护或进化。例如:选择题软件过程包含了4项基本活动:(1)软件描述;(2)软件开发;(3)软件有效性验证;(4)软件维护或进化A.验证B.检查C.软件有效性验证D.软件有效性检查3.什么是模型?答:模型是人们认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。第三次作业1.可行性研究包含哪几个方面?答:(1)技术可行性、(2)经济可行性、(3)操作可行性。2.软件维护分为哪几类?答:根据软件维护的任务与性质不同,通常可将软件维护分为纠错性维护、适应性维护、完善性维护、预防性维护四类活动。3.软件可维护性的定义是什么?答:指维护人员理解、改正软件的难易程度。决定软件可维护性的因素有:指整个软件文档和程序的可理解性、可测试性、可修改性。第四次作业1.原型法的基本概念是什么?答:原型法的基本概念有如下三点:(1)原型法不仅可以帮助系统分析员尽早获得更完整更准确的需求,还可以帮助设计人员验证设计方案或演进目标系统。(2)原型法适用于需求非常不明确的系统开发。(3)快速原型法如果使用得当,可以减少软件的总成本。2.快速原型模型的主要优点是什么?答:快速原型的本质是用原型系统获取用户的真正需求,开发人员便可依据原型系统书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求。3.什么是面向数据结构方法?答:面向数据结构方法是结构化方法的变形,它着重数据结构而不是数据流。根据需求基本上都采用顺序、选择和重复构造成分表示数据结构。第五次作业1.面向对象分析模型的五个层次是什么?答:面向对象分析模型的五个层次是主题层、类及对象层、结构层、属性层和服务层,因此其分析步骤也是按五个层次逐步展开。2.对象的五个特点是什么?答:对象的五个特点是:自治性;封装性;通信性;被动性(除主动对象外);暂存性。3.为什么说对象是动态的?答:面向对象的程序由一组相关类组成,所以类是静态的,程序的执行体现为一组相互通信的对象的活动,所以对象是动态的。第六次作业1.需求分析阶段的工作成果是产生大量的系统文档,那么文档的作用有哪些?答:文档的作用有(1)提高软件的可理解性,便于开发人员之间的沟通与交流;(2)变可见性的软件为部分可见性的文档资料,阶段性的工作成果,便于实施工程管理;(3)阶段性的审查依据;(4)便于用户或其他非开发人员熟悉该软件。2.需求分析有哪三种方法?答:需求分析有面向功能分析、面向数据分析、面向对象分析方法。3.需求分析阶段主要综合考虑的因素有哪些?答:需求分析阶段主要综合考虑的因素有(1)功能、(2)性能、(3)运行、(4)将来可能提出的要求。第七次作业1.软件系统的非功能需求是什么?答:非功能需求是指那些不直接与系统具体业务功能相关的一类需求。它们与系统的总体特性相关,如可靠性、信息安全性、响应时间和存储空间等。2.为什么对系统来说非功能需求比功能需求更关键?答:许多非功能需求关心的是系统整体特性而不是个别的系统特性,因此,非功能需求比功能需求对系统来说更关键。一个功能需求没有满足可能降低系统的能力,而一个非功能系统需求没有满足则可能使整个系统无法使用或者说系统的灵活性、应变能力达不到要求。3.数据流图的作用是什么?答:数据流图的作用是用来描述系统的逻辑模型,表示信息在系统中的流动和处理情况。4.画数据流图可采用的步骤是什么?答:画数据流图时:首先考虑数据的源点和终点(人或者作为输入/输出对象);接下来考虑处理(动词);最后考虑数据流和数据存储(名词)。第八次作业1.什么是执行者?答:执行者是与系统交互的人或物,它代表外部实体,是一个群体概念,代表的是一类能够使用某个功能的人或物,而不是某个个体。2.数据字典的定义是什么?答:数据字典的定义是指对数据流、数据流分量即数据元素、数据存储和处理四类元素进行定义。3.数据字典的作用是什么?答:数据字典的作用是:(1)与数据流图配合、描述软件系统的逻辑模型;(2)阶段性文档;(3)对数据流图中除源、终点外的其余成分均进行严格的无二义的、详尽的定义。第九次作业1.软件设计阶段的任务是什么?答:软件设计阶段的任务是对软件需求有了完整、准确、具体的理解之后,接下来的工作任务就是用软件正确地实现这些需求。这个阶段的工作目标是产生概要设计和详细设计文档。2.结构程序设计常见的三种结构是什么?答:结构程序设计常见的三种基本结构:顺序、循环、选择。3.面向对象建模有哪几种?答:面向对象建模有3种:(1)描述系统功能的功能模型;(2)描述系统数据结构的对象模型;(3)描述系统控制结构的动态模型。即功能模型;对象模型、动态模型。第十次作业1.对象的定义是什么?答:对象的定义是(1)从面向对象程序设计角度看对象定义:对象是具有相同状态的一组操作的集合;(2)从信息的模拟角度看对象定义:对象是对问题域某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。也就是说,对象是对属性值和操作的封装。(3)形式化定义:对象::=ID,MS,DS,MI,其中:ID是对象的标识或名字;MS是对象中的操作集合;DS是对象的数据结构;MI是对象受理的消息名集合(即对外接口)2.面向对象方法学的主要优点是什么?答:1.与人类习惯的思维方法一致;2.稳定性好;3.可重用性好;4.较易开发大型软件产品;5.可维护性好。3.什么是类(Class)?答:类就是对相同数据和相同操作的一组相似对象的定义,或者说,类是对具有相同属性和行为的一个或多个相似对象的描述。第十一次作业1.提高软件可重用性的主要准则是什么?答:提高软件可重用性的主要准则是:(1)提高方法内聚;(2)减小方法的规模;(3)保持方法的一致性;(4)把策略与实现分开;(5)全面覆盖;(6)尽量不使用全局信息;(7)利用继承机制2.为什么说在软件开发工作临近结束时才补写有关的一系列文档是不符合软件工程思想的?答:文档作为软件产品的有形部分,既可作为各开发阶段的成果,又可作为评价、审查工作的主要对象,还可作为前后阶段交接的重要文字资料,这样有助于软件工程管理工作的开展,对于规范化的工作有助于保证软件各阶段的工作质量。若最后才补文档就失去了上述的价值。3.假设你的任务是对一个已有的软件做重大修改,而且只允许你从下述文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适当数量的注释)。你将选取哪两份文档?为什么这样选取?答:选择(a)和(b)重大修改可能追加到改动系统的需求约定和设计方案,而源程序的改动,甚至程序编制,在详细设计完成后才可进行,比起修改需求或设计方案而言要容易得多。第十二次作业1.测试的正确定义是什么?答:测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这和某些人通常想象的“测试是为了表明程序是正确的”,“成功的测试是没有发现错误的测试’等是完全相反的。2.什么是黑盒测试?答:黑盒测试把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。即只测试程序的接口信息。适用于黑盒测试方法有:边界值分析、等价划分、错误推理。3.计算环形复杂度。答:流图中的区域数等于环形复杂度;流图G的环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是流图中节点数;流图G的环形复杂度V(G)=P+1,其中P是流图中判定节点的数目。4.调试的目标是什么?它有几种途径?答:无论采用什么方法,调试的根本目标都是寻找软件错误的原因并改正之。这个目标是通过把系统地评估、直觉和运气组合起来实现的。一般来说,有下列三种调试途径可以采用:•蛮干法;•回溯法;•原因排除法。第十三次1.主程序员组的核心有几个人?其角色名称与分工是什么?答:主程序员:全面负责系统定义、设计、编码、调试、安装。辅助程序员:协助主程序员,必要时替代主程序员(平时侧重于测试方案,分析测试结果)。程序管理员:全部事务性工作(提交上机程序、保存运行语言、进行软件配置)。2.什么是基线?答:在软件工程范围内,基线是软件开发的里程碑,它的标志是交付一个或多个软件配置项,这些软件配置项已经通过正式的技术复审而获得认可。或者说,基线是软件生存期中各开发阶段的一个特定点,它标志着一个阶段的结束。3.能力成熟度模型的组成成分是什么?答:能力成熟度模型的组成包括以下成分。•成熟度等级(Maturitylevels);•过程能力(ProcessCapability);•关键过程域(KeyProcessAreas,KPA);•目标(Goals);•公共特性(CommonFeatures);•关键实践(KeyPractices)。4.能力成熟度的五个等级是什么?答:能力成熟度的五个等级从低到高是:初始级、可重复级、已定义级、已管理级和优化级。第十四次1.软件重用的基本要求是什么?答:为使软构件也像硬件集成电路那样,能在构造各种各样的软件系统时方便地重复使用,就必须使它们满足下列要求。(l)模块独立性强;(2)具有高度可塑性;(3)接口清晰、简明、可靠。2.类构件的重用方式有哪些?答:类构件的重用方式有:(1)实例重用;(2)继承重用;(3)多态重用。3.什么是3C模型?答:描述可重用的软件构件一种理想的方式是3C模型——概念(concept)、内容(content)和语境(context)。问答题1请补充1-2个关于软件的错误观点,并对其进行分析和解释。观点一:开放软件源代码就一定好。观点二:软件质量问题可通过软件测试得到彻底解决。2试说明软件生存周期的概念。3当沿着螺旋模型的过程流路径向外移时,你认为正在开发或维护的软件发生了什么变化?答案1、观点一:开放软件源代码就一定好。分析:一般人都认为开放源代码对一个软件系统的完善有很好的促进作用,因为这样可以集合很多人的智慧,但这种观点并不完全正确。大家赞同开放源码,其实很大程度上是因为先有了Linux成功的例子,而Linux的出现和成功是有它一定的背景的,很大程度上是因为不支持源码开放的代表--微软的缘故。开放源代码对促进全球软件和信息技术行业的快速发展是很有益处的,但是关于源代码的GPL授权方式目前还看不到它对软件企业发展的好处。一味强调过度开放源代码,在现在盗版泛滥的时代,拥有源代码的公司如何得到回报,没有回报就没有进一步研发资金,软件的发展从何而来。观点二:软件质量问题可通过软件测试得到彻底解决。分析:为了克服软件危机和提高软件质量,人们进行了大量的研究和实践。最初的重点是着眼于技术革新,从各种软件工具(如编辑、编译、调试工具等等)研制开始,发展成为对开发各阶段进行全面支持的计算机辅助软件工程(CASE)环境。同时,注重软件开发模型研究,也就是如何划分软件开发过程的不同阶段,并针对不同阶段开展了有关技术和方法的研究如需求工程、设计工程、程序设计方法学、软件测试等等。通过长期的实践发现,仅仅依靠这些工具环境、模型及方法学来提高效率和质量,并未达到预期的目标。同时,人们逐渐认识到,如果能够同时对软件开发过程的质量加以控制,则可以大幅度的提高软件质量。只有从一开始就在开发过程中严格贯彻质量管理,软件产品的质量才有保证
本文标题:软件工程答案
链接地址:https://www.777doc.com/doc-6135523 .html