




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 46第一章 习题参考答案1什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开开发出的软件件很难满意。(2)软件产品品的质量往往往靠不住。 (3)一般软件很很难维护。(4)软件生产产效率很低。 (5)软件开发成成本越来越大大。 (6)软件成本与与开发进度难难以估计。 (7)软件技术的的发展远远满满足不了计算算机应用的普普及与深入的的需要。2为什么会产生软软件危机?开发人员方面,对对软件产品缺缺乏正确认识识,没有真正正理解软件产产品是一个完完整的配置组组成。造成开开发中制定计计划盲目、编编程草率,不不考虑
2、维护工工作的必要性性。软件本身方面,对对于计算机系系统来说,软软件是逻辑部部件,软件开开发过程没有有统一的、公公认的方法论论和规范指导导,造成软件件维护困难。尤其是随着软件件规模越来越越大,复杂程程度越来越高高,原有软件件开发方式效效率不高、质质量不能保证证、成本过高高、研制周期期不易估计、维维护困难等一一系列问题更更为突出,技技术的发展已已经远远不能能适应社会需需求。3怎样克服软软件危机?充分吸收和借鉴鉴人类长期以以来从事各种种工程项目中中积累的行之之有效的有效效原理、概念念、技术与方方法,特别是是吸取几十年年来人类从事事计算机硬件件研究和开发发的经验教训训。在开发软软件的过程中中努力作到良
3、良好的组织,严严格的管理,相相互友好的协协作。推广在实践中总总结出来的开开发软件的成成功的技术和和方法,并研研究更好、更更有效的技术术和方法,尽尽快克服在计计算机系统早早期发展阶段段形成的一些些错误概念和和作法。根据不同的应用用领域,开发发更好的软件件工具并使用用这些工具。将将软件开发各各个阶段使用用的软件工具具集合成一个个整体,形成成一个很好的的软件开发支支环环境。总之为了解决软软件危机,既既要有技术措措施(方法和和工具),又又要有必要的的组织管理措措施。4.构成软件项项目的最终产产品:应用程序、系统统程序、面向向用户的文档档资料和面向向开发者的文文档资料。5什么是软件件生存周期?软件生存周
4、期是是指从软件定定义、开发、使使用、维护到到淘汰的全过过程。6软件生存周周期为什么划划分成阶段? 任何一个阶段的的具体任务不不仅独立,而而且简单,便便于不同人员员分工协作,从从而降低整个个软件开发工工作的困难程程度。可以降低每个阶阶段任务的复复杂程度,简简化不同阶段段的联系,有有利于工程的的组织管理,也也便于采用良良好的技术方方法。使软件开发的全全过程以一种种有条不紊的的方式进行,保保证软件的质质量,特别是是提高了软件件的可维护性性。7应该怎样来来划分阶段?(1)每一个阶阶段的任务尽尽可能独立;(2)同一阶段段内的任务性性质尽可能相相同;(3)每一个阶阶段任务的开开始和结束有有严格的标准准。8
5、软件开发模模型有几种?它们的开发发方法有可特特点?软件开发模型有有瀑布型、渐渐增型和变换换型。瀑布型开发方法法是按照软件件生存周期的的划分依次实实施,每一个个阶段有明确确规定的任务务。它的特点点:(1)各个阶段段的顺序性和和依赖性;(2)划分逻辑辑设计与物理理设计,尽可可能推迟程序序的物理实现现;(3)每个阶段段必须完成规规定的文档,对对其中问题通通过复审及早早发现,及早早解决。渐增型开发方法法及特点:从部分需求出发发,先建立一一个不完全的的系统,通过过测试运行该该系统取得经经验和信息反反馈,加深对对软件需求的的理解,进一一步使系统扩扩充和完善。如如此反复,直直至软件人员员和用户对所所设计完成
6、的的软件系统满满意为止。在渐增型开发下下的软件是随随软件开发的的过程而逐渐渐形成的。渐增型开发方法法适合于知识识型软件的开开发,设计系系统时对用户户需求的认识识开始不是很很清楚的,需需要在开发过过程中不断认认识、不断获获得新的知识识去丰富和完完善系统。多多数研究性质质的试验软件件,一般采用用此方法。变换型开发方法法及特点:(1)从软件需需求的形式化化规格说明出出发,经过一一系列的程序序变换,得到到最终的程序序系统。 (2)该方法必须须有严格的数数学理论和形形式化技术的的支持。9.什么是软件件工程?软件工程是指导导计算机软件件开发和维护护的工程学科科。它采用工程的概概念、原理、技技术和方法来来开
7、发和维护护软件;它将管理技术与与当前经过时时间考验的而而证明是正确确的技术方法法结合起来;它强调使用生存存周期方法学学和结构分析析和结构技术术;经过人们长期的的努力和探索索,围绕着实实现软件优质质高产这个目目标,从技术术到管理两个个方面做了大大量的努力,逐渐形成了了”软件工程学学”这一新的学学科。10什么是软软件工程环境境:方法与工具的结结合,加上配配套的软、硬硬件支持称为为软件工程环环境。它能支持开发者按按照软件工程程的方法,全全面完成生存存周期中的各各项任务。第二章 习题参参考答案 1. 问问题定义的任任务和主要工工作?问题定义的任务务:将用户提提出的要求具具体化、定量量化;确定研研制系统
8、的范范围,明确研研制的边界。问题定义阶阶段的工作:通过调查研究,了了解系统需求求;确定系统的功能能需求、性能能需求、可靠靠性需求、安安全及保密性性、资源、开开发费用及开开发进度等的的需求;问题定义阶段的的产品系统目标标与范围说明明书。2.可行性研究究目的? 确定在问问题定义中所所提出的问题题是否值得去去解,在限制制条件下,问问题能否解决决。3可行性研究究的任务?进一步分析和澄澄清问题的定定义,在澄清清问题的基础础上,导出系系统的逻辑模模型;从系统逻辑模型型中,选择问问题的若干种种主要解法,研研究每一种解解法的可行性性,为以后的的行动提出建建议;如果问题没有可可行的解,建建议停止系统统开发;如果
9、果问题有可行行的解,应该该推荐一个较较好的解决方方案,并为工工程制定一个个初步的计划划。4可行性研究究包括哪几方方面的内容?(1)技术可行行性:现有技技术能否实现现本系统,现现有技术人员员能否胜任,开开发系统的资资源能否满足足;(2)经济可行行性:经济效效益是否超出出开发成本;(3)操作可行行性:系统操操作在用户内内部行得通吗吗?(4)法律可行行性:新系统统开发是否会会侵犯他人、集集体或国家利利益,是否违违反国家法律律。5可行性研究究的步骤?(1)复查系统统的规模和目目标;(2)研究目前前正在使用的的系统,总结结现有系统的的优劣,提出出新系统的雏雏形;(3)导出新系系统的高层逻逻辑模型;(4)
10、推荐建议议方案; (5)推荐行动动方针;(6)书写计划划任务书(可行性报告告); (7)提交审查查。6. 可行性研研究报告的主主要内容?可行性分析的结结果是可行性性研究报告,内容包括:系统概述:说明明开发的系统统名称,提出出单位和开发发单位。可行性研究的前前提:系统目标;要求;约束束和限制;可可行性研究的的基本准则等等。对现有系统的分分析:处理流程,图图示说明现有有系统的处理理流程和数据据流程;现有有系统存在的的问题。系统需求:主要要功能;主要要性能及其要要求;操作要要求;信息要要求;限制性性要求。建议系统:系统统目标;处理理流程;系统统结构,功能能,性能;系系统技术可行行性;投资和和效益分析
11、;操作可行性性;法律可行行性。其它可选方案:与国内外同同类型方案的的比较;提出出一两个可行行性方案供论论证和探讨。制定下一阶段的的预算。结论性意见:由由用户方、设设计方和投资资方共同签署署意见。第三章 习题答答案1.需求分析的的描述工具有有哪些?有数据流图、数数据字典、判判定表、判定定树、结构化化自然语言、层层次方框图、WWarnieer图、IPPO图和需求求描述语言等等。2.需求分析的的基本任务是是什么?准确定义未来系系统的目标,确确定为了满足足用户的需要要系统必须做做什么。3.怎样建立目目标系统的逻逻辑模型?要要经过哪些步步骤?建立目标系统的的逻辑模型的的过程也就是是数据流图的的分解过程。
12、它它的导出过程程如图: 继续分分解 有补补充修正用户复查细 化数据流图分析追踪数据流图 无补充修修正 用户复查细 化数据流图分析追踪数据流图4.什么是结构构化分析?它它的结构化体体现在哪里?结构化分析:使使用数据流程程图、数据字字典、结构化化英语、判定定表和判定树树等工具,来来建立一种新新的、称为结结构化说明书书的目标文档档需求规格说说明书。结构化体现在将将软件系统抽抽象为一系列列的逻辑加工工单元,各单单元之间以数数据流发生关关联。5.软件需求规规格说明书由由哪些部分组组成?组成包括:引言:编写目的的、背景说明明、术语定义义及参考资料料等。概述主要功能、约约束条件或特特殊需求。数据流图与数据据
13、字典。用户接口、硬件件接口及软件件接口。性能需求、属性性等。其它需求,如数数据库、操作作及故障处理理等。6.为什么数据据流图要分层层?画分层的的DFD要遵遵循哪些原则则?分层的目的:便便于逐步细化化、结构清晰晰。画分层的DFDD要遵循哪些些原则:(1)父图与子子图之间数据据要平衡。 (2)分解解的深度和层层次达到使加加工足够简单单、易于理解解的基本加工工为止。 (3)区分分局部文件和和局部外部项项(局限于数数据流中某一一层或某几层层的文件和外外部项)。 (4)不要要把控制流作作为数据流。 (5)忽略略琐碎的枝节节。 (6)每个个数据流要有有一个合适的的名字,尽量量使用现实系系统中有具体体意义的
14、名字字。7.系统流程图图与数据流程程图有什么区别?系统流程图描述述系统物理模模型的工具,数数据流程图描描述系统逻辑辑模型的工具具。系统流程图从系系统功能的角角度抽象的描描述系统的各各个部分及其其相互之间信信息流动的情情况。数据流程图从数数据传送和加加工的角度抽抽象的描述信信息在系统中中的流动和数数据处理的工工作状况。8.数据字典包包括哪些内容容?它的作用用是什么?数据字典是描述述数据流图中中数据的信息息的集合。它它对数据流图图上每一个成成分:数据项项、文件(数据结构)、数据流、数数据存储、加加工和外部项项等给以定义义和说明;它它主要由数据据流描述、加加工描述和文文件描述三部部分组成。对对用户来
15、讲,数据字典为为他们提供了了数据的明确确定义;对系系统分析员来来讲,数据字字典帮助他们们比较容易修修改已建立的的系统逻辑模模型。9.描述加工逻逻辑的工具有有哪些?有决策树(又称称判定树)、决决策表(又称称判断表)和和结构化语言言等。10.某单位拟拟开发一个计计算机房产管管理系统,要要求系统具有有分房、 调房、退退房和查询统统计等功能。房房产科将用户申请请表输入系统统 后,系系统首先检查查申请表的合合法性,对不不合法的申请请表,系统拒拒绝接收;对合法的的申请表根据据类型分别进进行处理。 如果是分房申请请,则根据申申请者的情况况(年龄、工工龄、职称、职职务、家庭人人口等)计算算其分数,当当分数高于
16、阀阀值分数时,按按分数高低将将申请单插到到分房队列的的适当位置。在在进行分房时时,从空房文文件中读出空空房信息,如如房号、面积积、等级、单单位面积房租租等,把好房房优先分给排排在分房队列列前面的符合合该等级房条条件的申请者者;从空房文文件中删掉这这个房号的信信息,并从分分房队列中删删掉该申请单单,再把此房房号的信息和和住户信息一一起写到住房房文件中,输输出住房分配配单给住户,同同时计算房租租,并将算出出的房租写到到房租文件中中。如果是退房申请请,则从住房房文件和房租租文件中删除除有关信息,再再把此房号的的信息写到空空房文件中。如果是调房申请请,则根据申申请者的情况况确定其住房房等级,然后后在空
17、房文件件中查找属于于该等级的空空房,退掉原原住房,再进进行与分房类类似的处理。住户可以向系统统查询目前分分房的阀值分分数,居住某某类房屋的条条件,某房号号的单位面积积及房租等信信息。房产科科可以要求系系统打印住房房情况的统计计表,或更改改某类房屋的的居住条件、单单位面积和房房租等。 用数数据流图描绘绘该系统的功功能需求;在在数据字典中中给出主要的的数据流、文文件和加工说说明。 参考考第四章4.5应用举例例教案之二分分析。 第四章 习题参参考答案系统设计包括哪哪两个阶段? 系统设计计包括总体设设计与详细设设计两个阶段段。总体设计的主要要任务是什么么?总体设计的主要要任务是完成成软件结构的的设计,
18、确定定系统的模块块及其模块之之间的关系。什么是模块?模模块具有哪几几个特征?总总体设计主要要考虑什么特特征? 模块是数数据说明、可可执行语句等等程序对象的的集合,可以以单独命名且且可通过名字字来访问。 模块具有有输入和输出出(参数传递递)、功能、内内部数据结构构(局部变量量)和程序代代码四个特性性。概要设计主要考考虑输入、输输出(参数传传递)和功能能两个特性。什么是模块化?模块设计的准准则?模块化是按规定定的原则将一一个大型软件件划分为一个个个较小的、相相对独立但又又相关的模块块。模块设计的准则则:改进软件结构, 提高模块块独立性:在在对初步模块块进行合并、分分解和移动的的分析、精化化过程中力
19、求求提高模块的的内聚,降低低藕合。模块大小要适中中:大约500行语句的代代码,过大的的模块应分解解以提高理解解性和可维护护性;过小的的模块,合并并到上级模块块中。软件结构图的深深度、宽度、扇扇入和扇出要要适当。一般般模块的调用用个数不要超超过5个。尽量降低模块接接口的复杂程程度;设计单入口、单单出口的模块块。模块的作用域应应在控制域之之内。变换型数据流由由哪几部分组组成?变换型结构由三三部分组成:传入路径、变变换(加工)中心和传出出路径。变换分析设计的的步骤?区分传入、传出出和变换中心心三部分,划划分DFD图图的分界线;完成第一级分解解:建立初始始SC图的框框架;完成第二级分解解:分解SCC图
20、的各个分分支;对初始结构图按按照设计准则则进行精化与与改进。事务型数据流由由哪几部分组组成?事务型结构由至至少一条接受受路径、一个个事务中心与与若干条动作作路径组成。事务分析设计的的步骤?在DFD图中确确定事务中心心、接收部分分(包含全部部接收路径)和发送部分分(包含全部部动作路径);画出SC图框架架,把DFDD图的三部分分分别”映射”为事务控制制模块,接收收模块和动作作发送模块.一般得到SSC图的顶层层和第一层(如果第一层层简单可以并并入顶层);分解和细化接收收分支和动作作分支,完成成初始的SCC图;对初始结构图按按照设计准则则进行精化与与改进。比较层次方框图图与结构图是是的异同?层次方框图
21、描绘绘数据的层次次结构, 结结构图描绘的的是软件结构构。二者都采用多层层次矩形框树树形结构。层层次方框图的的顶层矩形框框代表完整的的数据结构, 下面各层层矩形框依次次代表上个框框数据的子集集;结构图是是在层次图的的每一个方框框内注明模块块的名字或主主要功能,方方框之间的直直线表示模块块的调用关系系,用带注解解的箭头表示示模块调用过过程中传递的的信息。10.欲开发一一个银行的活活期存取款业业务的处理系系统:储户将将填好的存/取款单和存存折交给银行行工作人员,然然后由系统作作以下处理; (1)业务分类处处理:系统首首先根据储户户所填的存/取款单,确确定本次业务务的性质,并并将存/取款款单和存折交交
22、下一步处理理; (2)存款处理:系统将存款款单上的存款款金额分别记记录在存折和和帐目文件中中,并将现金金存入现金库库;最后将存存折还给储户户; (3)取款处理:系统将取款款单上的取款款金额分别记记录在存折和和帐目文件中中,并从现金金库提取现金金;最后将现现金和存折还还给储户。绘制该系统的数数据流图和软软件结构图。 顶层存取款存取款业务系统存取单、存折储户储户存折一层存折、存款单存款存款处理存折、存款单.审查.审查分类储户 存存折、存取单单 帐目文件件 现金金帐储户 取款处理 存折取款处理存折 二层修改1B修改存折修改1B修改1A处理存款单合格存折存款单业务分类业务分类审查单据存取单 合格存取单
23、单 帐目文件件 现现金帐储户储户存折 存折折不合格单据 合合格存折取款单修改2B修改2A修改2B修改2A修改存折 处处理取款单 注:A文件帐帐目及存折;B现金帐软件结构图存取款业务系统 存取款业务系统 2 2获得合理单据分类处理获得合理单据分类处理 11 11 2,3 3 4 5取款处理退回审核单据输入单据存款处理取款处理退回审核单据输入单据存款处理4 5 4 4 55 5修改存折修改帐目文件修改现金帐 1 存取单单、存折 2修改存折修改帐目文件修改现金帐 3 不合格格单据 4合格存折折、存款单 5合格存折折、取款单 第五章 习题参参考答案一.回答问题1.详细设计的的目的?为软件结构图(SC图
24、或HHC图)中的的每一个模块块确定采用的的算法和块内内数据结构,用某种选定定的表达工具具给出清晰的的描述.2.详细设计的的主要任务?编写软件的“详详细设计说明明书”.软件人员员要完成的工工作:为每一个模块确确定采用的算算法, 选择择某种适当的的工具表达算算法的过程,写出模块的的详细过程描描述.确定每一模块使使用的数据结结构.确定模块结构的的细节,包括括对系统外部部的接口和用用户界面,对对系统内部其其它模块的接接口,以及关关于模块输入入数据、输出出数据及局部部数据的全部部细节.为每一个模块设设计出一组测测试用例,以以便在编码阶阶段对模块代代码(即程序序)进行预定定的测试.3.结构化程序序设计的基
25、本本原则?在详细设计中所所有模块都使使用单入口、单单出口的顺序序、选择、循循环三种基本本控制结构. 4.比较面向数数据流和面向向数据结构两两类设计方法法的异同?相同点:遵守结构程序设设计“由顶向下”逐步细化的的原则,并以以其为共同的的基础;均服从“程序结结构必须适应应问题结构”的基本原则则,各自拥有有从问题结构构(包括数据据结构)导出出程序结构的的一组映射规规则。不同点:面向数据流的设设计以数据流流图为基础,在在分析阶段用用DFD表示软软件的逻辑模模型,在设计计阶段按数据据流类型,将将数据流图转转换为软件结结构。面向数数据结构的设设计以数据结结构为基础,从从问题的数据据结构出发导导出它的程序序
26、结构 。面向数据流的设设计的最终目目标是软件的的最终SC图,面向向数据结构的的设计的最终终目标是程序序的过程性描描述。5.比较Jacckson方方法和LCPP方法的异同同? Jacksonn与LCP设设计方法都是是以数据结构构为出发点,以以程序的过程程描述为最终终目标,设计计步骤基本相相似。它们的的主要差别是是: (1)使使用不同的表表达工具,其其中LCP方方法中的表达达工具Warrnier图图 比比Jacksson设计方方法中的表达达工具Jacckson图图有更大的通通用性; (2)JJacksoon方法的步步骤和指导原原则有一定的的灵活性,而而LCP设计计 方方法则更加严严密。6.详细设计
27、的的描述工具应应具备什么功功能?无论哪类描述工工具不仅要具具有描述设计计过程,如控控制流程、处处理功能、数数据组织及其其它方面的细细节的能力,而且在编码码阶段能够直直接将它翻译译为用程序设设计语言书写写的源程序。二.给出一组数数从小到大的的排序算法,分分别用下列工工具描述其详详细过程:流程图;(2)NS图;(33)PAD图图;(4)PPDL语言。输入输入ni=1Tm=jjnj=i+1FinA(j)A(m)FTm=1T输出A(m)FS=A(i)A(i)=A(m)A(m)=SPDL语言略PAD图PAD图N-S图m=im=iS=A(i)A(i)=A(m)A(m)=SPETURNi=1 TO n-1j
28、=i+1 TO nj=i+1 TO nm=jA(j) A(m)输出输出A(m)i=1 TO n-1S=A(i)A(i)=A(m)A(m)=Sj=i+1 TO nm=im=jA(j) A(m)TF三.根据后面给给出“卡片的分类类及统计”项目说明,完完成下列工作作: (1)用用Jacksson图表示示输入与输出出数据结构,找找出它们之间间的对应单元元; (2)画画出用Jacckson图图表示的程序序结构; (3)列列出程序所需需用的操作,并并加到上一步步画出的程序序结构图上; (4)用用Jacksson伪代码码写出程序的的过程表示。 输入卡片分析程程序。一叠输输入卡片按内内容分为K11、K2、KK
29、3三类,卡卡片的排列规规则是:以KK1卡始,以以K2卡终。起起始卡之前属属前置部分,不含K1卡卡;起始卡与与终了卡之间间属分批部分分,不含K22卡。 如图: 前置部分前置部分K3K3K3K3K2K2K1K1K1K1起始卡分批部分终了卡试用Jacksson方法编编一程序,要要求依次完成成下列分析工工作: 统计起始始卡前卡片的的张数,存入入A; 打印起始始卡的内容; 统计起始始卡后出现的的K1卡和KK3卡总批数数,存入B; 统计起始始卡后出现的的K1卡的张张数,存入CC; 统计起始始卡后出现的的K3卡的批批数,存入DD; 打印终了了卡的内容; 打印A、BB、C、D四四个统计值。输入卡片文件的数据结
30、构图输入卡片文件的数据结构图输入卡片文件输入卡片文件终了卡(K2)分批部分起始卡(K1)前置部分非K1卡*K1批0K3批0批*ISK3卡*IK1卡*I打印文件打印文件终了卡内容起始卡内容ABCD统计值输出卡片文件的数据结构图上述两个结构图有三组对应单元:上述两个结构图有三组对应单元:顶层单元、起始卡单元和终了卡单元。按映射规则,可导出下页程序结构图。输入卡片文件输入卡片文件打印起始卡打印A、B、C、D处理批部分处理K1卡*处理K3批0处理K1批0处理批*处理K3卡*ISII打印终了卡处理前置部分处理K1卡*I由上步导出的程序结构图将输入与输出中的两模块细将输入与输出中的两模块细化处理前置部分处
31、理K1卡*I 1统计张数处理K3批0处理K1批0处理批部分处理批*I 2S 3处理批类统计张数I 4处理K1卡*处理K3卡*I 5处理批体统计批数统计总批数程序的过程表示示及伪代码略略第六章 习题题参考答案编码的任务?使用选定的程序序设计语言,把把模块的过程程性描述翻译译为用语言书书写的源程序序(源代码)。对源程序基本要要求?源程序要求:正正确可靠、简简明清晰、效效率高。源程序的正确性性是对程序质质量的最基本本要求;源程序的简明清清晰,便于验验证源代码和和模块规格说说明的一致性性,容易进行行测试和维护护;对于大多数模块块,编码时应应该把简明清清晰放在第一一位;除了编码阶段产产生源代码外外,在测
32、试阶阶段也需要编编写一些测试试程序,用于于对软件的测测试。程序设计语言的的特点?名字说明:程序序中使用对象象的名字,能能为编译程序序所检查和识识别;类型说明:定义义对象的类型型,确定该对对象的使用方方式;初始化:为变量量提供适当的的初始值或由由系统给变量量赋一特殊的的表明未初始始化的值;对象的局部性:程序中真正正需要的那部部分才能访问问的对象;程序模块:控制制程序对象的的名字;循环控制结构:如FOR语句、WHIILE-DOO语句、REPPEAT-UUNTIL语语句等;分支控制结构:如IF语句、CASSE语句等;异常处理:为程程序运行过程程中发生的错错误和意外事事件提供检测测和处理上的的帮助;独
33、立编译:能分分别编译各个个程序单元。选择程序设计语语言需要考虑虑的因素?选择用户熟悉、便便于用户维护护的语言。选择目标系统的的环境中可以以提供的编译译程序所能选选用的语言。选择可以得到的的软件工具,能支持程序序开发中可以以利用的语言言。根据工程规模的的大小、目标标系统应用范范围,如实时时应用选择AAda语言或或汇编语言,系系统软件开发发选择C语言或汇编编语言,软件件开发中若含含有大量数据据操作则选择择SQL、dBASEE等数据库语语言等。选择程序员熟悉悉的语言。选择标准化程度度高、程序可可移植性好的的语言。根据算法与计算算的复杂性、数数据结构的复复杂性选择。如如对于系统程程序和结构复复杂的应用
34、程程序,选择支支持数组、记记录(或结构)与指针动态态数据结构的的Pascaal语言或C语言。根据实时要求系系统需要的响响应速度和效效率选择相应应的语言。编码风格的指导导原则。源程序:包括适适当的标识符符、适当的注注解、程序清清单的合理布布局与清晰;数据说明:数据据结构或数据据类型的说明明次序标准化化;变量名称称尽量有意义义;对复杂的的数据结构在在注解中要说说明在程序设设计中实现这这个数据结构构的方法。语句的构造简单单明了:不要要为节省空间间将多个语句句写在同一行行;尽量避免免复杂的条件件及“非”条件的测试试;避免大量量使用循环嵌嵌套和条件嵌嵌套;括号的的使用是为了了使逻辑表达达式和算术表表达式
35、的运算算顺序清晰直直观。效率:考虑程序序运行的时间间存储器效率率、输入/输出的效率率;在处理程程序正确性、清清晰与效率之之间的关系时时先求程序正正确后求快;先求清楚后后求快;保持持程序简单以以求快;书写写清楚,不为“效率”牺牲清晰。第四代语言(44GL)应具具备哪些的特特征?具有很强的数据据管理能力,能能对数据库进进行有效的存存取、查询和和其它有关操操作;能提供一组高效效的、非过程程化的命令,组组成语言的基基本语句,编编程时用户只只需用这些命命令说明“做什么”,不必描述述实现的细节节;能满足多功能、一一体化的要求求。为此,语语言中除必须须含有控制程程序逻辑与实实现数据库操操作的语句外外,还应包
36、括括生成与处理理报表、表格格、图形,以以及实现数据据运算和分析析统计功能的的各种语句,共共同构成一个个一体化的语语言,以适应应多种应用开开发的需要。 7.修修改右表中的的程序结构。改进如下程序的的结构 改进后的程程序结构:if (ABB) theen if (AB) theen if (XXY) tthen A:=B; B:=Y; else if (XXY) tthen elsee B:=Y; A:=X; elsse enndif; A:=X;else endiff; A=:B; endif;将如下的多出口口循环结构改改为单出口程程序结构 改进后的的单出口程序序结构WHILE CC1 DO e
37、xxit1:=falsee; exiit2:=ffalse;BEGIN WHILLE C1 AND (NOT eexit1) AND (NOT exit22) DO BEGGIN IFF C2 TTHEN GGOTO 220; IF C2 THHEN exxit1:=true; IFF C3 TTHEN GGOTO 330; IF C33 THENN exitt2:=trrue; ENND; 20:codde forr C2 eexit END ; GOTOO 40; IF (exitt1) TTHEN GGOTO 220; 30:code for CC3 exiit IF (exitt2)
38、TTHEN GGOTO 330;40: 200:codde forr C2 eexitGOTO 400;30:codde forr C3 eexit40:第七章 习题题参考答案一.回答问题 1.软件件测试的基本本任务?软件测试是按照照特定的规则则,发现软件件错误的过程程;好的测试试方案是尽可可能发现迄今今尚未发现错错误的测试;成功的测试试方案是发现现迄今尚未发发现错误的测测试; 2.测试试与调试的主主要区别?测试从一个侧面面证明程序员员的失败;调调试证明程序序员的正确;测试从已知条件件开始,使用用预先定义的的程序,且有有预知的结果果,不可预见见的仅是程序序是否通过测测试;调试从不可知知内部条件
39、开开始,除统计计性调试外,结结果是不可预预见的;测试有计划并且且要进行测试试设计;调试试不受时间约约束;测试是发现错误误、改正错误误、重新测试试的过程;调调试是一个推推理的过程;测试执行是有规规程的;调试试执行要求程程序员进行必必要的推理;测试由独立的测测试组在不了了解软件设计计的件下完成成;调试由了解详详细设计的程程序员完成;大多数测试的执执行和设计可可由工具支持持;调试用的工具具主要是调试试器。 3.人工工复审的方式式和作用?人工复审的方式式:代码会审审、走查和排排练和办公桌桌检查;人工复审的作用用:检查程序序的静态错误误。 4.什么么是黑盒测试试?黑盒测试试主要采用的的技术有哪些些?黑盒
40、测试也称为为功能测试,它着眼于程程序的外部特特征,而不考考虑程序的内内部逻辑结构构。测试者把把被测程序看看成一个黑盒盒,不用关心心程序的内部部结构。黑盒盒测试是在程程序接口处进进行测试,它它只检查程序序功能是否能能按照规格说说明书的规定定正常使用,程程序是否能适适当地接收输输入数据产生生正确的输出出信息,并且且保持外部信信息(如数据据库或文件)的完整性。黑盒测试主要采采用的技术有有:等价分类类法、边沿值值分析法、错错误推测法和和因果图等技技术。 5.什么么是白盒测试试?白盒测试试主要采用的的技术有哪些些?测试者了解被测测程序的内部部结构和处理理过程,对程程序的所有逻逻辑路径进行行测试,在不不同
41、点检查程程序状态,确确定实际状态态与预期状态态是否一致。白盒测试主要采采用的技术有有:路径测试试技术和事务务处理流程技技术,对包含含有大量逻辑辑判断或条件件组合的程序序采用基于逻逻辑的测试技技术。 6.路径径测试技术中中几种主要覆覆盖的含义?举例说明?语句覆盖:至少少执行程序中中所有语句一一次。 判定覆盖:使被被测程序中的的每一个分支支至少执行一一次。故也称称为分支覆盖盖。条件覆盖:执行行所有可能的的穿过程序的的控制路流程程。条件组合测试:设计足够的的测试用例,使使每个判定中中的所有可能能条件取值组组合至少执行行一次。(例略) 7.等价价分类法的测测试技术采用用的一般方法法?举例说明明?为每个
42、等价类编编号;设计一个新的测测试方案,以以尽可能多的的覆盖尚未被被覆盖的有效效等价类,重重复这一步骤骤,直到所有有有效等价类类被覆盖为止止。设计一个新的测测试方案,使使它覆盖一个个尚未被覆盖盖的无效等价价类, 重复复这一步骤,直到所有无无效等价类被被覆盖为止。(例略) 8.软件件测试的一般般步骤?单元测试、子系系统测试、系系统测试、验验收测试、平平行测试。 9.比较较集成试的两两种方式的优优劣?非渐增式测试方方式:分别测测试模块,再再把所有模块块按设计要求求放在一起组组成所要的程程序。该方法法编写测试软软件工作量大大,模块间的的接口错误发发现得晚,错错误定位较难难诊断,总体体测试有的错错误容易
43、漏掉掉,测试时间间相对较少,可可以并行测试试所有模块,能能充分利用人人力,加快工工程进度。渐增式测试方式式:把下一个个要测试的模模块,同已经经测试好的那那些模块结合合起来进行测测试。该方法法利用已测试试过的模块作作测试软件,开销小,较较早发现模块块间的接口错错误,错误定定位往往和最最近入的模块块相关,对已已测试好的模模块可在新加加入模块的条条件下受到新新的检验,测测试更彻底,需需要较多的测测试时间,不不能并行测试试。总的来说,渐增增式测试方法法比较好。 10.软件件测试的策略略?在任何情况下都都应使用边界界值分析的方方法。必要时用等价类类划分法补充充测试方案。必要时再用错误误推测法补充充测试方
44、案。对照程序逻辑,检检查已设计出出的测试方案案。根据对程序可靠靠性的要求采采用不同的逻逻辑覆盖标准准,再补充一一些测试方案案。二.某电力公司司有A、B、CC、D共四类类收费标准,并并规定,居民民用电每月2200度以下下按A类收费费, 2000度以上按BB类收费。动动力电以每月月1万度为分分界,非高峰峰用电不足11万度按B类类收费,达到到或超过1万万度按C类收收费。高峰用用电不足1万万度按C类收收费,达到或或超过1万度度按D类收费费。试用基于于逻辑的测试试方法为它设设计足够的测测试用例实现现条件组合的的完全覆概。规则号123456居民用电200度以下Y200度以上Y动力用电非高峰1万度以下Y1万
45、度以上Y高峰1万度以下Y1万度以上Y收费标准A类B类C类D类测试用例用电类型输入数据预期结果居民用电90度/月A110度/月B动力用电非高峰8000度/月月B12000度/月C高峰9000度/月月C11000度/月D三.如图显示某某程序的逻辑辑结构。 试为它设设计足够的测测试用例,分分别实现对程程序的判定覆覆概、条件覆覆概和条件组组合覆概。AA0 and B=0S1S2 T F设计测试方案覆盖种类需满足的条件测试数据期望结果判定覆盖A1,B=00A=2,B=00执行S1A1,B0或或A1,B=0或或A1,B0A=2,B=11或A=1,B=00或A=1,B=11执行S2条件覆盖以下四种情况各各出
46、现一次A1B=0A=2,B=00执行S1A1B0A=1,B=11执行S2条件组合覆盖A1,B=00A=2,B=00执行S1A1,B0A=2,B=11执行S2A1,B=0A=1,B=00执行S2A1,B0A=1,B=11执行S2四.某城市电话话号码由三部部分组成。它它们的名称和和内容分别是是: 地区区码:空白或或三位数字; 前 缀:非0或1的三位位数字; 后 缀:4位位数字。 假定定被测程序能能接受一切符符合上述规定定的电话号码码,拒绝所有有不符合规定定的电话号码码。根据该程程序的规格说说明,作等价价类的划分,并并设计测试方方案。 1.划分等等价类输入条件有效等价类无效等价类地区码1.空白;2.
47、三位数;有非数字字符;2.少于三位位数字;3.多于三位数数字。前 缀3.从200到到999之间的的三位4.有非数字字字符;5.起始位为为0;6.起始位为1; 7.少于三位数数字;8.多于三位数数字。后 缀4.四位数字。9.有非数字字字符;10.少于四位数数字;11.多于四位位数字。设计测试方案方案内容输 入预期输出地区码前缀后缀1空白2009999之间的三位位数字四位数字( )2776-23445有效2三位数字四位数字(635)8005-93221有效3有非数字字符(20A)7223-45667无效4少于三位数字(33 )2334-56778无效5多于三位数字(5555)3345-67789无
48、效6有非数字字符(345)5AA2-34556无效7起始位为0(345)0112-34556无效8起始位为1(345)1332-34556无效9少于三位数字(345) 992-34556无效10多于三位数字(345)45562-34456无效11有非数字字符(345)3442-3A556无效12少于四位数字(345)3442- 3556无效13多于四位数字(345)5662-345567无效第八章 习题题参考答案1.为什么说软软件的维护是是不可避免的的? 因为软件件的开发过程程中,一般很很难检测到所所有的错误,其其次软件在应应用过程中需需要随用户新新的要求或运运行环境的变变化而进行软软件的修改
49、或或完成功能的的增删等,为为了提高软件件的应用水平平和使用寿命命,软件的维维护是不可避避免的。2.软件的维护护一般分为哪哪几类?改正性维护:满满足用户对已已开发产品的的性能与运行行环境不断提提高的要求,进进而达到延长长软件寿命的的目的。适应性维护:对对程序使用期期间发现的程程序错误进行行诊断和改正正的过程,配配合变化了的的环境进行修修改软件的活动;完善性维护:满满足用户在使使用过程中提提出增加新的的功能或修改改已有功能的的建议而进行行的工作;预防性维护:为为了改善未来来的可维护性性或可靠性而而修改软件的的工作。3.影响软件维维护的因素有有哪些?开发方法:采用用模块化详细细设计文档有有助于理解软
50、软件的结构、界界面功能和内内部流程;开开发过程中严严格而科学的的管理规划及及清晰可靠的的文档资料对对发生错误后后的理解与纠纠错是至关重重要的;开发发过程中模块块的独立程度度越高,对软软件修改越容容易,对软件件的改进和移移植越方便。开发条件:软件件开发及维护护人员的水平平决定了软件件开发的质量量和维护的效效率;开发过过程中使用标标准的程序设设计语言和标标准的操作系系统接口,可可以大大提高高软件的可维维护性;在测测试过程中用用例的有效性性,可极大地地减少软件存存在的错误;其次使用规规范化的文档档资料可为维维护提供更好好的依据。4.软件维护困困难主要表现现在什么方面面?一般来讲,维护护人员对开发发人
51、员写的程程序及文档,理理解都比较困困难,对维护护工作不会喜喜欢;维护持续时间都都很长,在开开发人员不在在现场的轻快快下,维护软软件通常是很很困难的;绝大多数软件在在设计时对将将来的软件修修改都没有考考虑或考虑不不多,尤其未未能在设计中中强调并认真真解决好模块块的独立性,使使软件的修改改既困难又易易发生差错。5.决定软件可可维护性的因因素?软件的可理解性性、可测试性性、可修改性性;文档描述符合要要求、用户文文档简洁明确确、系统文档档完整并且标标准。6.软件价格应应该计入维护护成本吗?为为什么? 在软件的的生命周期中中,软件维护护的工作量非非常大,不同同应用领域的的维护成本差差别也很大。一一般大型
52、软件件的维护成本本远远高于开开发成本若干干倍。因此软软件价格中应应该计入维护护成本。7.对前面各章章中分析的各各应用系统,提提出改进和扩扩充功能的要要求?教材销售采购系系统;图书管理系统;房产管理系统。(略)第九章 习题题参考答案1.软件工程管管理的内容?费用管理: 对对软件开发进进行成本核算算,使软件生生产按照商品品生产的规律律办事。包括括:以简单、科科学方法估算算软件开发费费用,作为签签定开发合同同的根据;管管理开发费用用的有效使用用,即用经济济手段来保证证产品如期按按质完成。质量管理: 按按项目的质量量保证计划,确保各个开开发阶段的开开发和维护工工作全部按软软件工程的规规范进行,保保证软
53、件产品品的质量。配置管理:通过过对于程序、文文档和数据的的各种版本所所进行的管理理,保证资料料的完整性与与一致性。项目管理:制定定项目实施施计划,按按照计划的内内容组织和实实施软件的工工程化生产。最最终目标是以以合理的费用用和进度,圆圆满完成计划划所规定的软软件项目。2.软件项目有有哪些特点?软件项目与其他他任何产业项项目不同,它它是算法、思思想、概念、组组织、流程、效效率、优化等等的融合体;开发软件项目产产品,在多数数情况下,用用户给不出明明确的想法和和要求。在开发过程中,程程序及其相关关的文档资料料常常需要修修改,在修改改过程中又可可能带来新的的问题,且这这些问题要在在很久以后才才会发现。
54、在研制开发过程程中,文档资资料是不可缺缺少的,但工工作量又是巨巨大的,往往往也是人们不不愿去作的。参加软件项目的的工作人员,要要求具有一定定的业务水平平和实际工作作经验,而很很难完全避免免的人员流动动,对工作的的影响是很大大的。离开的的人员不仅带带走了重要的的信息,而且且带走了工作作经验。3.软件成本估估算的一般方方法?自顶向下估计: 首先估算算出项目总的的开发成本,然然后在项目内内部进行成本本分配。由少少数专家参与与,依靠他们们过去的经验验,将要开发发的软件与过过去开发过的的软件进行“类比”,以估计新新的软件开发发所需要的工工作量和成本本。自底向上估计: 将开发任任务分成若干干子任务,子子任
55、务又分成成子子任务,直到每一个个单元内容足足够明确为止止;把各个任任务单元的成成本估计出来来,汇合成项项目的总成本本。该方法得得到的结果比比较接近实际际。4.为什么在软软件开发中,不不能用简单增增加人员的方方法来缩短开开发时间? 大量软软件开发实践践说明:向一一个已经延迟迟的项目追加加开发人员,可能使它完完成得更晚。因因为当开发人人员以算术级级数增长时,而而人员之间的的通信将以几几何级数增长长,往往“得不偿失”。5.影响软件质质量的主要因因素有哪些?产品运行:正确确性、风险性性、效率、完完整性、健壮壮性和可用性性;产品修改:可理理解性、可维维护性、灵活活性、可测试试性;产品转移:可移移植性、可
56、重重用性和互运运行性。6.本章第四节节的例子是某某个软件项目目的PERTT图。 (1)找出出关键路径和和完成项目的的最早时间; (2)标出出每项活动的的最早起止时时间与最迟起起止时间。 (见该章教教案举例)7.将上题的内内容改用Gaantt图来来表示。 (见该章教教案举例)第十章 习题题参考答案1.软件工具是是什么?按照照软件生存周周期可将其分分为几类?软件工具是指为为支持计算机机软件及其文文档的开发、维维护、模拟、移移植或管理而而研制的程序序系统。按照照软件生存周周期可将其分分为如下几类类: 需求分析:如数数据流图绘制制与分析工具具、状态转换换图绘制与分分析工具、面面向对象的模模型和分析工工具、快速原原型构造工具具、数据字典典与数据库工工具等。软件设计:如HHIPO图、PPDL(程序序设计语言)或PAD(问题分析图图)支持工具具等。编码:集成化的的程序员工作作平
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物理高考题及答案打印
- 安徽医科大学临床医学院《工程数学A》2023-2024学年第一学期期末试卷
- 天津市2025届三年级数学第二学期期末调研试题含解析
- 遂宁市重点中学2024-2025学年高三最后一考历史试题试卷含解析
- 天津师范大学津沽学院《社会化营销案例研究》2023-2024学年第二学期期末试卷
- 2025届贵州省凯里一中等重点中学高三下学期4月综合测试(二)语文试题含解析
- 永州职业技术学院《历代名著导读》2023-2024学年第二学期期末试卷
- 安徽省马鞍山市和县一中2024-2025学年高三年级元月调研考试语文试题含解析
- 浙江省绍兴市越城区2024-2025学年三年级数学第二学期期末统考模拟试题含解析
- 贵州电子科技职业学院《外国历史要籍介绍》2023-2024学年第二学期期末试卷
- 2023年公共营养师之三级营养师全国通用试题
- 《无人机概论》第1章 无人机概述
- 售后工程师的数据分析能力
- 鞋业成本分析与控制
- 典当行行业报告
- 食品新产品开发 课件 第三章 食品新产品开发配方设计
- 《幼儿园课程》第1章:幼儿园课程概述
- 诊所消防安全培训课件
- 实验室扩项方案
- 砂石加工项目实施方案
- 移动网络维护人员技能认证-安全-L1备考试题库大全-上(单选题汇总)
评论
0/150
提交评论