软件工程习题解答第一章概述_第1页
软件工程习题解答第一章概述_第2页
软件工程习题解答第一章概述_第3页
软件工程习题解答第一章概述_第4页
软件工程习题解答第一章概述_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程习题解答第一章概述b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生c.软件产品不会用坏,不存在磨损、消耗问题。d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。生产方式个体手工劳动小集团合作生产工程化的生产开发方法追求编和技巧,追求程序运个人技巧,开始提出结构化方法行效率硬件特征可靠性差速度、容量、工作可靠性有明显提及网络化方软件特征只有程序、程序设计概念,不重视程序设计方法发的重要性,开发技术没有新的突破,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技开发,产生了尖锐矛盾,导致软件危机的产生开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。b.开发的软件不通满足用户要求。c.开发的软件可维护性差。d.开发的软件可靠性差。软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:b.软件开发管理困难而复杂。f.开发工具落后,生产率提高缓慢。b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。2)软件开发管理:软件管理学、软件经济学、软件心理学。软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。方法、维也纳开发方法(VDM)、面向对象的开发方法。第二章可行性研究灾难性后果。2、可行性研究有哪些步骤?b.研究正在运行的系统c.建立新系统的高层逻辑模型d.导出和评价各种方案f.编写可行性研究报告b.可行性研究前提c.对现有系统的分析d.所建议系统的技术可行性分析e.所建议系统的经济可行性分析f.社会因素可行性分析g.其他可供选择方案h.结论意见b.投资回收期无形效益:主要从性质上、心理上进行衡量,很难直接进行量的比较。通常以有形效益度量作为成本---效益分析的度量。第三章需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。(2)分析与综合,导出软件的逻辑模型.2.什么是结构化分析方法?该方法使用什么描述工具?结构化分析方法:是面向数据汉进行需求分析的方法。描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。3.结构化分析方法通过哪些步骤来实现?结构化分析方法步骤:a.了解当前系统的工作流程,获得当前系统的物理模型.b.抽象出当前系统的逻辑模型.c.建立上标系统的逻辑模型.d.作进一步补充和优化.4.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.基本符号有四种:→,箭头,表示数据流;○,圆或椭圆,表示加工;=,双杠,表示数据存储;□,方框,表示数据的源点或终点.5.画数据流图应该注意什么事项?a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基b.画数据流而不是控制流.c.一般不画物质流.d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果.e.编号.f.父图与子图的平衡.g.局部数据存储.h.提高数据流图的易理解性.字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.作用:1)为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.2)为分析人员查找数据流图中有关名字的详细定义而服务的.3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.ICAM)工程项目中用于进行复杂系统分析和设计的方法,是在结构化分析与设计技术的基础上提出来的。a.采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束及实现机制。b.采用严格的自顶向下、逐层分解的方式建立系统功能模型。价提供了有利条件。1)传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统"做什么"的功能,但它仅是一个静2)SA方法在使用DFD在分析与描述"数据要求"方面是有局限的。4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式方法住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。请用DFD数据流名称:存款单简述:储户存款时填写的项目来源:储户数据流量:未知简述:储户取款时填写的项目来源:储户数据流量:未知简述:储户取款后得到的项目来源:记录数据流量:未知组成:姓名+住址+取款类型+取款日期+利率+余额数据存储名称:账单简述:存放储户信息及其账目组成:姓名+住址+余额+存款类型+最后修改日期+利率查询要求:能立即查询加工名:分类检查激发条件:接收到存/取款单优先级:优先输入:存/取款单把取款单输出到统计加工名:统计激发条件:取款单输入:取款单加工逻辑:根据账单检查此储户是否存在,不存在输出错误{IF取款数<余额THEN余额=余额-取款数输出清单到储户,输出现金到储户输出错误清单到储户}加工名:记录激发条件:存款单输入:存款单加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{余额=余额+存款数输出存款单到储户}储户储户存取分类并检查2取款单存款单存款单记录储户清单(2)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理。否则,修改库(3)查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。化程序当技术员。请用结构化语言、判定表或判定树描述上述问题的加工逻辑。(1)结构化语言:根据职工年龄和文化程序:If年龄<=20If中学文化EndifIf年龄>=40Until没有剩余未分配员工判定表GHHGGHIGHI性别MMFF脱产学习√√钳工√√√√技术员材料员条件取值表条件名文化程度性别男女CDEGHIMF取值数和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。请绘制该加工的DFD图,并写出数据词典中的数据流条目。数据流词典报名单=姓名+性别+身份证号+课程名开考课程=课程名+开考时间考生名册=准考证号+姓名+课程单要包括所在队名,运动员编号号,运动员姓名,及参加的所有项目。请写出这三个数据流条目。运动员名单=队名+运动员号+姓名+{项目}项目=项目名项目参加者=项目名+{运动员号}要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。电话号码=分机号|外线号码外线号码=9+[市话号码|长话号码]市话号码=局号+分局号分局号=4{数字}4第四章概要设计软件概要设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换(1)设计软件系统结构(简称软件结构)a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分)d.确定模块之间的接口,即模块之间传递的信息。(接口)e.评价模块结构的质量。(质量)(2)数据结构及数据库设计:((3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划)2.软件设计的基本原理包括哪些内容?软件设计的基本原理:(4)模块独立性(两个定性的度量标准:耦合性与内聚性)两个定性的度量标准:耦合与内聚性耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。(数某一功能(控制变量)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。(一个公式数据环境)逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的6.什么是软件结构?简述软件结构设计优化准则。软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近D.模块的大小要适中。E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。7.什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系?模块的影响范围:受该模块内的一个判定影响的所有模块的集合。模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。8.什么是"变换流"?什么是"事务流"?试将相应形式的数据流图转换成软件结构图。变换流由输入、变换(或处理)、输出三部分组成。某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入选择其中一个路径来执行这种特征的DFD称为事物流。9.试述"变换分析","事务分析"的设计步骤。变换分析:b.设计软件结构的顶层和第一层-------变换结构。c.事务结构中、下层模块的设计、优化工作同变换结构。2、已知模块C中的一个判定影响到模块B,如图所示,它违反了SD的设计原则。试问:可以采用哪些手段对结构图作改进,请说明改进办法并画出改进的结构图。3、已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。BBBBDCAAA2A1A(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。试根据要求画出该系统的数据流程图,并将其转换为软件结构图。①③招生计划②④标准分录取线(3)根据供书目录和订书书目产生订书文档留底。(4)将订书信息(包括数目,数量等)反馈给供书单位。(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。试根据要求画出该问题的数据流程图,并把其转换为软件结构图。6、在结构化设计过程中,要将数据流图(DFD)映射成系统结构图(SC),分别画出变换型数据流和事物型数据第五章详细设计(1)为每个模块进行详细的算法设计。(2)为每个模块内的数据结构进行设计。(3)对数据库进行设计,即确定数据库的物理结构。C.过程设计语言a.采用自顶向下、逐步求精的程序设计方法b.使用三种基本程序控制结构构造程序1).用顺序方式对过程分解,确定各部分的执行顺序。2).用选择方式对过程分解,确定某个部分的执行条件。3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。b.找出输入数据结构和输出数据结构中有对应关系的数据单元。c.按一定的规则由输入、输出的数据结构导出程序结构。d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。(1)在数据A(1)-A(10)中求最大数和次大数。(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。ifA(i)>=n1n1=A(i) 2)置i=[(H+T)/2](取整).4)查不到时,将A(i),....,A(N)移到A(i+1),.....A(N+1),Key值送入A(i)中。6.一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。要求输出数据格式是每复制一行这符串后,另起一行打印出这个字符中的空格数,最后打印出文件1、假设对顾客的订货单按如下原则处理:将顾客的信用度分三个档次:对于上述三种情况,分别根据库存情况来决定对顾客订货的态度。情况之一(欠款时间≤30天),如果需求数≤库存量,则立即发货,如果需求数>库存量,则只发现有库存,不足部情况之三(欠款时间>100天),则通知先付欠款,再考虑是否发货。试用判定树的形式予以描述(设欠款时间D,需求数N,库存量Q)。学生名册学生名册表头表体表头表名字段名表名行*性别年龄学号3、有一过程,其流程如下图所示。性别年龄学号3、有一过程,其流程如下图所示。4、1、有一过程如下图所示的流程,试用判定表予以描述。1F……√2TFF√3TFT4TT√第六章实现答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。2、在项目开发时选择程序设计语言通常考虑哪些因素?项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。(1)友好的用户界面(2)兼有过程性和非过程性双重特性(3)高效的程序代码(4)完备的数据库(5)应用程序生成器4、举例说明各种程序设计语言的特点及适用范围?答:以常见的一些编程语言为例:结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨SQL:结构化查询语言,用于对数据库进行存取管理。汇编语言和Ada语言,主要用于实时处理和编写系统软件。5、什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。第七章软件测试答:软件测试的目的是的发现软件中存在错误的活动。好的测试用例可以发现至今没有发现的错误、好的测试用2、什么是白盒法?有那些覆盖标准?比较他们的检错能力。答:将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。有逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)答:将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。等价类划分、边界值分析、因果图、错误推测。答:单元测试对应详细设计和编码、集成测试对应概要设计、确认测试对应需求分析。答:测试模块的接口、数据结构、重要的执行路径、错误处理、边界条件。答:将模块组合起来成为一个完整的系统对其进行测试。非渐增式是将模块先进行单元测试然后组装在一起进行测试。渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。渐增式组装模块有自顶向下和自底向上两种组装方式。答:按照需求规格说明书中的确定指标对系统进行功能与性能的测试。进行确认测试(对照需求规格说明书用黑if(y=2)or(x=l)thenx:=x+l;该子程序接受x,y,z的值,并将计算结果x的值返回给调用程序。答题要求:(2)用白盒法中条件组合覆盖设计测试用例:期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。现要求用黑盒测试法中的边界值法写出测试用例。输入条件测试用例说明测试数据报表日期的1个数字字符5全部是非数字字符MAY---在有效范围边界上选取月份范围PROCEDUREEX(A,B:REAL;VARX:REALIF(A>2)AND(B=0)THENX:=A-3语句覆盖A=3B=0(1)按等价分类法设计测试用例(要求列出设计过程)(2)按边缘值分析法设计测试用例。不合理等价类测试用例beginⅠⅡⅢⅣx013y3221找出实现(1)语句覆盖2)条件覆盖3)判定覆盖至少要选择的数据组。第八章软件维护a、非结构化维护和结构化维护b、维护的困难性编码、数据、文档副作用软件的可维护性:软件能够被理解、校正、适应及增强功能的容易程度。可维护性的度量的特性是:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。A、建立明确的软件质量目标。B、利用先进的软件开发技术和工具。第九章答:增量构造和演化提交。增量构造是瀑布模型的基础上在一些的阶段中采用增量开发一些阶段整体开发。演化提交是在瀑布模型的基础上所有阶段都使用增量开发也就是不紧使用增量开发也使用增量提交。答:探索型、试验型、演化型。探索型:在需求阶段帮助明确理解需求用完抛弃。试验型:在设计阶段考核现行方案是否合适用完抛弃。演化型:及早的向用户展示一个系统的原形包含主要的功能得到用户的认可后将原形不答:快速开发、需求、构造原形、原形、运行原形、评价原形、修改意见。答:可以更清楚的理解用户的需求、开发阶段可以用原形解决局部的困难,通过原形的开发可以让用户看见系统的初步功能的实现有利与用户的开发人员更好的交流,及早的解决存在的问题减少开发的风险。缺乏好的管理工具和开发环境、缺乏管理机制、对开发人员的技术要求高、更新文档比较困难。5、对比瀑布模型和增量模型,指出增量模型的新思路。答:瀑布模型是一种整体的开发模型,开发的每一阶段必须按线性的顺序来进行,前一阶段的工作没有完成后一阶段的工作就不能开始。由于需求分析的易变性使的软件开发工作不顺利,同时瀑布模型的每个阶段有不可避免的错误出现,那么延伸到以下的各个阶段错误就会放大。增量模型是非整体开发的模型它采用渐增模型和原形模型,软件的开发是用增量开发和增量提交。第十章面向对象技术类:具有相似或相同性质的对象的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论