软件工程精华

上传人:努力****83 文档编号:167553983 上传时间:2022-11-03 格式:DOC 页数:8 大小:50KB
返回 下载 相关 举报
软件工程精华_第1页
第1页 / 共8页
软件工程精华_第2页
第2页 / 共8页
软件工程精华_第3页
第3页 / 共8页
点击查看更多>>
资源描述
软件工程复习提纲参考答案什么是软件工程?软件工程的目的是什么? 答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。目的:是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。什么是软件危机?软件危机的表现有哪些?产生的原因是什么?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。表现在:()对于软件开发的成本和进度的估计很不准确。()开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。()开发的软件可靠性差。()软件通常没有适当的文档。()软件的可维护性差。()软件开发生产率提高的速度,无远远跟不上计算机应用普及深入的趋势。原因:()软件的规模愈发庞大;()软件开发的管理困难。 ()软件本身的独有特点确实给开发和维护造成一些客观困难。()软件开发和维护中千金错误认识和方法的形成可以归结与计算机发展早期软件开发的个体化特点。()软件开发技术落后。()生产方式落后。()开发工具落后,生产率提高缓慢。要开发XX系统,能否通过充分的调查做到完全了解用户需求,写出正确的,非常符合用户的需求分析报告,并且在以后的软件开发过程中没有需求改变的事情发生?答:不能。因为用户可能在开始时提出一些功能需求,每当对系统有一定的理解后又会提出一些需求,以后随着理解的深入而不断提出新的需求,用户需求变动是一个极为普遍的问题,即使是部分变动,也往往会影响需求分析的全部,导致不一致性和不完备性。4说明软件开发的生命周期模型,软件开发的几个生命周期,每个周期里的主要任务是什么?答:软件开发的生命周期模型是描述软件开发过程中各种活动如何执行的模型。软件开发的生命周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期,具体分为以下四个时期:()软件分析时期;任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准。在此期间,要进行可行性论证,并做出成本估计和经费预算,制定进度安排。进行可行性研究和项目开发计划,需求分析。()软件设计时期;任务:a.设计软件的总体结构;b.设计软件具体模块的实现算法;c.软件设计结束之前,也要进行有关评审,评审通过后才能进入编码时期。()编码与测试时期;任务:组织程序员将高驻地的软件“翻译”成计算机可以正确运行的程序;并且要经过按照软件分析中提出需求要求和验收标准进行严格的测试和审查。根据具体软件的特点,决定是否划分成一些阶段,如编码、单元测试、集成测试、验收测试等等。()运行与维护时期。任务:软件运行过程中可能由于各方面的原因,需要对它进行修改。什么是瀑布模型?什么是原型模型?请比较一下瀑布模型和原型模型的优缺点?答:瀑布模型是将软件生命周期各活动规定为依线性顺序联接的若干阶段的模型。原型模型是借助一些软件开发工具或环境尽可能快地构造一个实际系统的简化模型。瀑布模型的优点:严格按照生命周期的各个阶段来进行开发,强调了每一阶段的严格性。这样就能解决在开发阶段后期修正不完善的需求说明将花费巨大的费用的问题。在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大作用。缺点:它是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。原型模型则是利用原型法技术能够快速实现系统的初步模型,供开发人员和用户进行交流,以便较准确获得用户的需求,不断使原型逐步完善,可以大大避免在瀑布模型冗长的开发过程中看不见产品雏形的现象。6如果要开发一个xx系统,具备哪些条件,你会选择用瀑布模型进行开发?会选择原型模型?答:如果要开发的系统功能和性能明确、完整、无重大变化,例如编译系统、数据库管理系统和操作系系统等,则会选择瀑布模型;采用原型模型适合如下条件的软件开发:1.有快速建立系统原型系统的软件工具与环境。2.那些不能预先确切定义需求的软件开发。3.那些项目组成成员不能很好协同配合、交流或通信上存在困难的情况。7可行性研究的任务是什么?主要是解决哪几个方面的问题? 答:可行性研究的任务是对问题的定义,要初步确定问题的规模和目标,问题定义后,要导出系统的逻辑模型。然后从系统的逻辑模型出发,选择若干供选择的主要系统方案。主要解决的4个方面的问题:1.技术可行性研究;2.经济可行性研究;3.法律可行性研究;4.开发方案选择性研究。8需求分析的目的是什么?由那些部分组成,主要任务是什么?你认为做好需求分析需要具备那些素质?答:需求分析的目的是开发人员要进行细致的调查分析,准确理解用户的要求,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约的过程。确定系统要完成哪些工作,也就是对系统提出完整、准确、清晰、具体的要求。主要任务:()问题明确定义;()导出软件的逻辑模型;()编写文档;需要具备素质:性格开朗,善于与人交流,具有团队精神,做事耐心细致,负责,善于分析,拥有良好的大局观,具有较强的理解能力,能够将各方面的需求系统组合在一起,具有较强编写文档的能力,能够协调好开发人员和用户之间的各种需求矛盾。9为什么需求分析很难做准确?说出你的理由。答:()需求易变性。用户在开始时提出一些功能需求,当对系统有一定的理解后,会提出一些需求。以后随着理解的深入而不断提出新的需求。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一对待性和不完备性。()问题的复杂性;()交流障碍。进行需求分析的人员具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。()不完备性和不一致性。用户各类人员对于系统的要求所处的角度不一样,对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾。10请举例说明什么是数据字典?数据字典在软件工程开发中的作用是什么?答:数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。它是数据条目,数据存储条目、数据项条目和基本加工条目的汇集。例子:数据流名称:订单别名:无简述:旅客订票写的项目来源:旅客去向:加工1“验订单”数据流量:2000份/每周组成:编号+订票日期+旅客编号+地址+电话+银行帐号+预定日期+目的地+数量其中数据流量指单位时间内的传输次数。作用:用来定义数据流图中的各个成分的具体含义的,它以一种正确的,无二义的说明方式为系统分析,设计及运行维护提供了有关元素的一致定义和详细的描述。它和数据流图共同构成系统的逻辑模型,是需求说明书的主要组成部分。11有一个XX系统。系统叙述请完成满足需要的数据库设计。以及画出数据流程图。12有图所示的一个数据流程图。请画出相应的功能模块图。13有一个非结构化的程序。图示请修改为结构化的程序。并画出相应的程序流程图。答:第六章P46614有比较两个二元组的方法如下:二元组的集合是:E=(a,b)|0a,b9 且a,b都是整数 。其中单个数的大小如下:1234567890。对于一个二元组AE,定义1:如果a=b,则称A成对。定义2:r=(a+b)%10,称为A的点数。定义3:如果ab,temp=a,否则temp=b。temp称为A的大数,记为MA。对于A(a,b),B(c,d)E,比较它们大小的规则如下:1如果A和B都成对,则比较a,c。如果ac,则AB。如果ca,则BA。如果a=c,则A=B。2成对的都比不成对的大。3如果都不成对,则比较点数。如果点数不同,则点数大的那个二元组大。零点最小。4如果都不成对,且点数相同。如果点数都是零。则A=B。如果点数不为零。则比较A和B的大数。如果MAMB,则AB。如果MBMA,则BA。如果MA=MB,则A=B。请回答下列问题:1 画出流程图。2 用C语言写出一个比较二元组的函数。如果前一个二元组大于后一个二元组,则返回1,如果相等则返回3,否则返回2。函数接口如下:int compare(int a, int b, int c, int d)3根据书上的各种黑盒和白盒的测试方法写出你的测试数据。并且写出期望结果。15有一个程序,描述。用C语言写出该函数的详细设计代码。16请介绍一下发现对象的原则以及一些方法,并将这些方法与结构化程序开发中所使用的相应工具进行比较。比较一下结构化方法和面向对象方法在需求阶段的相同和不同点。答:发现对象的原则为正确地运用抽象原则,先要舍弃与系统责任无关的事物,保留与系统责任有关的事物。其次,要舍弃与系统责任有关的事物中与系统责任无关的特征。考虑将问题域中的事物映射为什么对象以及如何对这些对象进行分类的问题,清晰而简练的表达问题域并使系统开销少。方法:见课本P213的图94结构化程序开发使用的工具为数据流图,数据字典比较一下结构化方法和面向对象方法在需求阶段的相同和不同点:结构化分析=数据流图+数据处理+数据存储+端点+处理说明+数据字典结构化分析方法是一种从问题空间到某种表示的映射方法,由数据流图表示,面向过程,自顶而下,结构清晰的系统结构面向对象=类和对象+结构与连接+继承+封装+消息通信OOA的对象是对问题域中事物的完整映射,包括事物的数据特征和行为特征。17试举例说明继承和多继承的概念。答: 继承:特殊类的对象拥有其一般类的全部属性与服务,就是称作特殊类对一般类的继承。例如:有了树这个一般类,那么在考虑苹果树这个类时发现,苹果树是树,它作为树这个类的特殊类,继承了树这个类的属性和服务。多继承:一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性和服务,这种继承模式就叫多继承。例如:有了轮船和客运工具两个一般类,在考虑客轮这个类时就可发现,客轮既是一种轮船,又是一种客运工具。所以客轮同时作为轮船和客运工具这两个类的特殊类,它同时继承了轮船和客运工具这两个类的属性和服务。18请举例说明多态性的概念。答:多态性:对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。例如:在一般类“几何图形”中定义了一个服务“绘图”,但并不确定执行时到底画了一个什么图形。特殊类“椭圆”和“多边形”都继承了几何图形类的绘图服务,但其功能却不同:一个椭圆,一个是画出一个多边形。在多边形类更下层的一般类“矩形”中绘图服务又可以画出一个矩形。这样,当系统的其余部分请求画出任何一种几何图形时,消息中给出的服务名同样都是“绘图”,而椭圆、多边形、矩形等类的对象接受到这个消息时却各自执行不同的绘图算法。19有人说:软件项目估算是一门艺术,而非一门科学。你如何理解这句话?答:软件项目估算是有效的软件项目管理必不可少的,由于软件开发的特殊性,开发成本的估算不是一件简单的事,往往不到最后时刻,是很难得到准确的科学估算。常常会遇到以下的一些问题:软件项目人员在对经理、客户、销售人员所建议的预算及进度的现实性提出疑问时缺乏确凿的证据,其次就是系统分析员在系统分析阶段进行实际的软硬件权衡分析时没有可靠的依据,再次就是项目经理在确定各个阶段及活动需要的时间和工作量时没有可靠的依据。因此,软件项目估算在软件开发过程所具有的不确定性,表现出软件项目估算永远不会是一门精确的科学,估算是一门艺术。20什么是类?什么是对象?举例说明类之间的关系有哪些?答:类:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。类之间的关系有四种:继承(比如树与苹果树的关系),关联(人和猫的关系),聚合(黑豹乐队和窦威的关系),组合(pc机和显示器的关系)。21对于分析阶段出现类之间的实例连接关系,在OOD阶段该如何处理?答:(根据可靠消息,此题内容没有列入考试范围,有兴趣的同学可以作为了解。)23什么叫整体部分关系?什么叫一般特殊关系?图示说明。答:整体-部分结构是把一组具有整体-部分关系的类组织在一起的结构。图示说明见课本P241 一般-特殊关系是由一组具有一般-特殊关系的类所组成的结构。图示说明见课本P24825请举例说明三条评价人机界面的设计准则答:设计准则如下:1.一致性;2.使用简便;3.启发性;4.减少重复的输入;5.减少人脑记忆的负担;6.容错性;7.及时反馈。26请举例解释一下主动类的概念。并且在OOD中,是如何 实现主动类的?答:根据可靠消息,此题内容没有列入考试范围,有兴趣的同学可以作为了解27.软件质量度量存在哪些质量标准?试说明评价软件质量的五个标准。答:功能性;可靠性;可用性;可维护性;可移植性。28如果你是软件开发的项目经理,请举出你可以从哪些方面去保证软件质量?至少 举出四个方面。答:1.通过适当的监控系统及其开发过程来保证软件质量;2.确保软件及其标准与以定的标准和规格要求完全一致;3.确保能及时发现产品、过程和标准的任何不足并提醒管理者注意,以便及时弥补。4确保项目组制定的计划、标准和规格适合项目组需要,同时满足评审和审计需要。29什么是主机仿真终端体系结构?什么是文件共享结构?什么是客户服务器4结构?答:主机仿真终端体系结构:以一台计算机为主机,其他计算机只作为它的远程仿真终端。 文件共享结构:系统功能分布到网络的各个节点上,数据存放在一个被称作文件服务器的主机上。客户服务器:把分布在不同节点上的系统组成部分之间的关系处理为请求服务和提供服务的关系,提供服务的计算机称作服务器,请求服务的计算机称作客户机。在这种体系结构中,客户端向服务器发出服务请求,由服务器提供的服务就地完成所要求的处理,然后只把处理结果通知请求者。30请比较一下通常情况下,B/S模式和C/S模式的优缺点。答:B/S模式:浏览器和服务器结构优点:1。B/S架构软件,维护和开发方式简单。 2.成本较低,选择更多;缺点:应用服务器运行负荷较重C/S模式:客户机和服务器结构优点:运行效率高,开放性强,可扩充性好,应用服务器运行负荷较轻。缺点:高昂的维护成本而且投资大31对象设计必须遵循的步骤。答:1.组合三钟模型以获取类上的操作;2.实现操作的设计算法;3.优化数据的访问路径;4.实现外部交互式的控制;5.调整类结构提高继承性;6.设计关联;7.确定对象表示;8.把类和关联封装成模块。32白盒测试的原理是什么?黑盒测试呢?熟悉白盒测试与黑盒测试的具体实例。答:白盒测试:把测试对象看作一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结构和数据结构是否和预期相同。黑盒测试:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的界面上进行测试,用来证实软件功能的可操作性,检查程序是否满足功能要求,是否能很好的接收数据,并产生正确的输出。33举例说明白盒测试不能替代黑盒测试。答:白盒测试主要是想对程序模块进行如下检查:1.对程序模块的所有独立的执行路径至少测试一遍;2.对所有的逻辑判定,取真与取假的两种情况都能至少测一遍;3.在循环的边界和运行的界限内执行循环体;4.测试内部数据结构的有效性。 黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的,注重于测试软件的功能需求,主要试图发现下列几类错误:功能不正确或遗漏,界面错误,数据库访问错误,性能错误,初始话和终止错误等。34从目的、任务、测试用例的设计思路等方面比较单元测试和集成测试的区别。答:单元测试:又称模块测试,是针对软件设计的最小单位程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试主要针对模块的5个基本特征进行测试:1.模块接口;2.局部数据结构;3.重要的执行路径;4.错误处理;6.边界条件。测试方法:需要为被测模块设计驱动模块和桩模块。集成测试:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统而进行的测试,故也称组装测试和联合测试。集成测试方法:主要有自底向上测试和自顶向下测试。35软件维护分为哪些类别?各自有什么特点?答:1.非结构化维护:其过程大致为阅读源代码定位错误重编程序回归测试结构化维护:其过程为评价设计计划途径修改设计重编程序回归测试。36在软件开发过程中,请举例三个例子说明影响软件维护的因素。37,请问一个合理的软件维护流程应该是怎么样的?答:(1)制定维护申请报告; (2)审查申请报告并批准。 (3)进行维护并做详细。 (4)复审。38如果你要应聘测试经理的职位,你觉得测试经理需要安排技术方面的哪些工作?答:安排的测试方法可以考虑:1.在软件产品交付使用之前要经过单元测试、集成测试、确认测试和系统测试。2.静态测试采用人工检测和计算机辅助静态分析的手段对程序进行检测,方法如下:人工测试,计算机辅助静态分析。3.动态测试黑盒测试和白盒测试。另外对测试工作总体负责,其主要职责如下:1.参与项目开发各个阶段的评审工作,以使提早发现问题;2.根据部门命令及项目需要安排编写测试相关文档并就某些特定文档提出评审;3.组织各级测试工作人员对测试工作进行准备;4.分配测试任务工作任务,并且协调好;5.参与测试中发现重大问题的讨论;6.审查测试人员日志,监督其工作;6.组织并参与测试后的讨论工作,使部门测试水平不断提高。39请举三个例子例说明在软件项目管理中,需要注意哪些风险?你会如何预防这些风险?答:包括三方面的风险:项目风险、技术风险、商业风险项目风险:潜在的预算、进度、个人、资源用户和需求方面的问题以及它们对软件项目的影响。技术风险:潜在的设计、实现、接口、检验、和维护方面的问题。商业风险:市场风险、预算风险等。预防风险:1.与现在在职的人员协商,确定人员流动的原因 2.在项目开始之前,把缓解这些原因的工作列入以拟定的计划中 3.当项目启动时,做好人员流动会出现的准备。采取一些办法以确保人员一旦离开时项目仍能继续。 4.建立项目组,以使大家都了解有关开发活动的信息 5.制定文档标准,并建立一种机制以保证文档能够及时产生 6.对所有工作组织细致的评审 7.对每一个关键性的技术人员,要培养后备人员。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!