版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程(习题)1.以下哪种不是可行性分析的内容(B)。A.技术可行性B.质量可行性C.经济可行性D.社会可行性2.软件工程三要素是(C)。A.技术、方法和工具B.方法、对象和类C.方法、工具和过程D.过程、模型和方法3.每个阶段之前增加了风险分析过程的快速原型模型是(D)。A.瀑布模型B.增量模型C.喷泉模型D.螺旋模型4.增量模型本质上是一种(C)。A.线性顺序模型 B.整体开发模型 C.非整体开发模型D.顺序执行模型5.需求规格说明书的作用不应包括(D)。A.软件设计的依据 B.用户与软件开发人员对软件要做什么的共同理解C.软件验收的依据 D.软件可行性研究的依据6.在结构化分析方法中用以表达系统内数据的运动情况的工具是(A)。A.数据流图B.数据字典C.结构化语言D.判定表与判定鼠7.以下哪种测试是白盒测试方法()A.数据流测试 B.条件测试C.边界值测试 D.循环测试8.关联是建立(B)之间关系的一种手段。A.对象B.类C.功能D.属性9.面向对象的分析首要工作是建立(D)。A.系统的动态模型B.系统的功能模型C.基本的E-R图D.问题的对象模型10.下列哪项不是人们常用的评价软件质量的4个因素之一()?A.可移植性B.可靠性C.可维护性D.易用性11.(F)需求分析的主要目的是解决软件开发的具体方案。12.(F)软件设计说明书是软件概要设计的主要成果。13.(T)单元测试通常应该先进行“人工走查”,再以白盒测试为主,辅以黑盒法进行动态测试。14.(T)类的设计过程包括:确定类、确定关联类、确定属性和识别继承关系。15.(T)面向对象分析就是抽取和整理用户需求并建立问题域精确模型的过程。21某银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址、身份证号码等存款信息,并打印出存款存单给储户;如果是取款且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。要求:1、用ER图描绘系统中的数据对象。2、请用数据流图描绘本系统的功能。软件工程答案整理填空1.软件测试的目的是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。2.测试阶段的基本任务是根据软件开发各阶段的和程序的,精心设计一组,利用这些实例执行,找出软件中潜在的各种和。3.测试用例由和预期的两部分组成。4.软件测试方法一般分为两大类:方法和方法。5.动态测试通过发现错误。根据的设计方法不同,动态测试又分为与两类。6.静态测试采用和的手段对程序进行检测。7.人工审查程序偏重于的检验,而软件审查除了审查还要对各阶段进行检验。8.计算机辅助静态分析利用工具对测试程序进行分析。9.黑盒法只在软件的处进行测试,依据说明书,检查程序是否满足要求。10.白盒法必须考虑程序的和,以检查的细节为基础,对程序中尽可能多的逻辑路径进行。11.白盒测试是测试,被测对象是,以程序的为基础设计测试用例。12.逻辑覆盖是对程序内部有存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为、、、、和6种覆盖技术。13.实际的逻辑覆盖测试中,一般以覆盖为主设计测试用例,然后再补充部分用例,以达到覆盖测试标准。14.循环覆盖是对程序内部有存在的逻辑结构设计测试用例,它通过限制来测试。15.基本路径测试是在程序基础上,通过分析控制构造的复杂性,导出集合,从而设计测试用例。16.黑盒测试是测试,用黑盒技术设计测试用例有4种方法:、、和。17.等价类划分从程序的说明,找出一个输入条件(通常是或),然后将每个输入条件划分成两个或多个。18.边界值分析是将测试情况作为重点目标,选取正好等于、刚刚大于或刚刚小于的测试数据。如果输入或输出域是一个有序集合,则应选取集合的元素和元素作为测试用例。19.在测试程序时,根据经验或直觉推测程序中可能存在的各种错误,称为。20.因果图的基本原理是通过画图,把用自然语言描述的转换为,最后为每一列设计一个测试用例。21.测试的综合策略是在测试中,联合使用各种方法。通常先用法设计基本的测试用例,再用法补充一些必要的测试用例。22.软件测试过程中需要3类信息:、和。23.软件测试一般经过4个测试:、、和。24.指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误,它涉及和的文档。25.单元测试主要测试的5个基本特征:、、、和。26.在单元测试中,需要为被测模块设计模块和模块。用来模拟被测模块的上级调用模块,用来代替被测模块所调用的模块。27.集成测试指在测试基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。也称测试或测试。28.集成测试的方法有两种:和。29.渐增式测试有两种不同的组装模块的方法:和。30.自顶向下渐增式测试不需要编写模块,只需要编写模块,其步骤是从模块开始,沿着被测程序的的控制路径逐步向下测试,它有两种组合策略:和。31.自底向上渐增式测试不需要编写模块,只需要编写模块。32.确认测试指检查软件的与是否与说明书中确定的指标相符合,又称测试。33.确认测试在模拟环境下运用测试方法,由和参加的测试。34.确认测试开始前需要制定计划,结束后要写出报告。其测试用例要选用的数据。35.软件配置审查的任务是检查软件的所有文档资料的和。36.调试也称,是在成功的测试之后才开始进行,其目的是确定错误的和,并改正错误。37.调试技术包括、、和。38.回溯法调试是从出发,而归纳法调试是从入手。39.被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为测试。40.用等价类划分法设计一个测试用例时,使其覆盖尚未被覆盖的合理等价类。41.用等价类划分法设计一个测试用例时,使其覆盖不合理等价类。42.在单元测试时,需要为被测模块设计。43.在集成测试时有两种测试方法,它们是。44.软件测试是为了而执行程序的过程。45.运行被测程序的方法称为测试。46.动态测试中,主要测试软件功能的方法称为法。47.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为。48.要覆盖含循环结构的所有路径是不可能的,一般通过限制来测试。49.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等在和。50.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是。51.集成测试中的具体方法是。52.确认测试阶段的两项工作是。53.在单元测试中,测试一个模块时,需要设计。54.软件配置管理,简称SCM,它用于整个软件工程过程。其主要目标是:、、、。55.SCM是一组管理整个软件生存期各阶段中的活动。56.基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个。2.文档资料内部结构测试用例程序错误缺陷3.输入数据输出数据4.动态测试静态测试5.运行程序测试用例黑盒测试白盒测试6.人工检测计算机辅助静态分析7.编码质量编码软件产品8.静态分析特性9.接口需求规格功能10.内部结构处理过程处理过程测试11.结构源程序内部逻辑12.判定语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖13.条件组合路径14.循环循环次数15.控制流程图环路基本路径16.功能等价类划分边界值分析错误推测因果图17.功能一句话一个短语等价类18.边界边界值第一个最后一个19.错误推测法20.因果功能说明判定表判定表21.测试黑盒白盒22.软件配置测试配置测试工具23.单元测试集成测试确认测试系统测试24.单元测试编码详细设计25.模块模块接口局部数据结构重要的执行路径错误处理边界条件26.驱动桩驱动模块桩模块27.单元组装联合28.非渐增式测试渐增式测试29.自顶向下结合自底向上结合30.驱动桩顶层软件结构图深度优先策略宽度优先策略31.桩驱动32.功能性能需求规格有效性33.黑盒专门测试人员用户34.测试测试分析实际运用35.完整性正确性36.纠错原因位置37.简单调试归纳法调试演绎法调试回溯法调试38.程序产生错误的地方测试结果发现的线索39.静态40.尽可能多的41.一个42.驱动模块与桩模块43.渐增式和非渐增式44.发现错误45.动态测试46.黑盒法47.判定覆盖48.循环次数49.两个不合理的等价类50.错误推测法51.渐增式和非渐增式测试方法52.进行确认测试和软件配置审查53.驱动模块和桩模块54.标识变更控制变更确保变更正确地实现报告有关变更55.变更56.检查点1.程序设计语言的特性主要有心理特性、工程特性和技术特性三个方面。2.程序语言的工程特性主要表现为可移植性、开发工具的可利用性、软件的可重用性和可维护性。3.为了提高程序的易读性,同时为减少错误,提高软件开发效率,编码时应注意养成良好的程序设计风格。4.程序加注释对理解程序提供了明确指导,根据作用不同注释分序言性注释和功能性注释。5.软件需求分析之后,软件的设计、编码、测试与语言的特性有很大的关系,这个特性主要是语言的技术特性。6.语句构造的原则是简单直接,不能为了追求效率而使代码复杂化。7.FORTRAN语言上世界上第一个被正式推广应用的计算机语言,它不仅面向科学计算,数据处理能力也极强。8.汇编语言是面向机器的,可以完成高级语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。9.为了使数据定义更容易理解和维护,一个语句说明多个变量时,各变量名按字典排列。10.编码是将详细设计得到的处理过程的描述转换为基于某种计算机语言的程序。1.软件原来没有帮助信息,使用不方便,现在要增加帮助信息。这种维护性活动称之为完善性维护。2.调试也称纠错,是在成功的测试之后才开始进行,其目的是确定错误的原因和位置,并改正错误。3.调试技术包括简单调试、归纳法调试、演绎法调试和回溯法调试。4.回溯法调试是从程序产生错误的地方出发,而归纳法调试是从测试结果发现的线索入手。简答题1简述1983年IEEE为软件下的定义。5822926计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。2简述软件危机的表现有哪些?以及解决软件危机的途径有哪些?软件危机的主要表现包括:(1)软件开发进度难以预测,开发成本难以控制,导致超预算、超时;(2)产品功能难以满足用户需求;(3)软件产品质量无法保证;(4)软件缺少适当的文档资料,维护困难;(5)软件成本超过硬件成本;(6)软件开发生产率的提高速度跟不上计算机应用普及深入的趋势;解决软件危机的途径有:1管理措施:项目管理、配置管理、过程管理、质量控制2技术措施:开发过程、开发技术与方法和开发工具3软件工程的定义1993年IEEE给出的定义:软件工程是:①系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。”软件工程是围绕软件开发的一门交叉学科: 软件工程=计算机科学+工程学+管理学4软件工程的10个知识领域软件工程过程(SoftwareEngineeringProcess)软件工程工具和方法(SoftwareEngineeringToolsandMethods)软件需求(SoftwareRequirement)l软件设计(SoftwareDesign)软件构造(SoftwareConstruction)软件测试(SoftwareTesting)软件维护(SoftwareMaintenance)软件配置管理(SoftwareConfigurationmanagement)软件工程管理(SoftwareEngineeringmanagement)软件质量(SoftwareQuality)5软件工程的目标是什么,软件工程的三要素都是什么?软件工程的目标:软件工程必须以有组织的质量保证为基础,进行全面质量管理,不断地过程改进使软件工程方法走向成熟。软件工程的三要素包括:过程、方法和工具过程为及时合理地开发出满足用户需求的计算机软件而进行一系列有组织的活动。过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理。方法为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的开发活动如何来做。开发方法经历了从面向结构、面向对象、面向组件到面向服务的发展工程。工具为过程和方法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件工程(CASE,ComputerAidedSoftwareEngineering)。6软件工程的七条基本原理美国著名的软件工程专家巴利•玻姆(BarryBoehm)提出了软件工程的七条基本原理:1.用分阶段的生命周期计划严格管理;2.坚持进行阶段评审;3.实行严格的产品控制;4.采纳现代程序设计技术;5.结果应能清楚地审查;6.开发小组的人员应少而精;7.承认不断改进软件工程实践的必要性。7简述软件过程的定义,软件过程又可以分为那几个类型?软件过程(SoftwareProcedure)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件过程可概括为基本过程、支持过程和组织过程等三种类型。其中,基本过程包括:获取过程、供应过程、开发过程、运作过程和维护过程。支持过程包括:文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程和问题解决过程等过程。组织过程包括:管理过程、基础设施过程、改进过程和培训过程。8里程碑(MileStone)思想阶段工作的目标进行总结、评审、调整和部署下一个里程碑。目的:合理分配,细化管理“粒度”,降低项目风险。9基线思想基线是指一个(或一组)配置项在项目生命周期的不同时间点的一种状态,各阶段有各阶段的基线:需求基线、设计基线、测试基线等。基线一旦建立后变化需要受控制。10简述软件生存周期的概念,说明软件生存周期划分为那几个主要时期?每个时期有包括哪些主要阶段?软件生存周期是指软件产品从定义到开发、使用和维护,直到最终被弃用的时期,称为生存周期。生存周期的可划分为计划时期、开发时期和运行时期等三个主要时期。其中计划时期包括问题定义和可行性研究两个阶段。开发时期包括需求分析、总体设计、详细设计和实现等四个阶段。运行时期的又称为运行和维护阶段。11简述教材中介绍了那些软件开发模型?这些模型各有什么特点?教材中重点介绍了瀑布、原型、增量、螺旋四个传统模型和RUP、XP两个现代模型。其中,瀑布模型严格按照生存周期开发软件,每个阶段必须完成规定的、完整、准确的合格文档,前一阶段的输出文档就是后一阶段的输入文档。其主要特点包括:①活动间具有顺序性和依赖性;②推迟实现的观点;③质量保证的观点;快速原型模型法是开发人员在一个基本的需求的基础上快速开发出一个软件原型,然后由用户使用和评价原型、开发人员根据用户意见再修改原型,然后再使用评价再修改、直至将原型进化为最终产品。快速原型模型的特点包括:①做出系统原型,及早向用户展示系统要实现的界面及功能,增强用户的合作信心;②直观化的表达,容易交流,消除理解上的歧义;③修改集中在前期的原型确认上,较大程度减少后期实施中的返工。④入手快,加快开发进度;增量模型是一种演化模型,先完成一个系统子集的开发,再按同样的开发步骤增加子集,如此递增下去直至满足全部系统需求。每个增量可按快速原型法进行。增量模型的特点包括:①无须等待获取完整需求就可入手,尽快见到成果,增强双方信心;②分步开发,降低复杂性和难度,减少技术风险,并可并行开发;③边开发边投入,可及早发现问题,减少投资风险;④各个子集是逐渐并入已有的系统中,加入子集不能破坏已构造好的部分,这需要软件具备开放式的体系结构;⑤适用于需求不完整的软件开发,指的是需求逐渐摸清、逐步完善,并非随意改变,需求改变过大会导致整体性失控。后面要介绍的XP(极限编程)属于该模型。螺旋模型(Spiralmodel)是一种融合了瀑布模型、快速原型模型和增量模型的演进模型,并引入风险分析机制。适合大型复杂的系统开发。螺旋模型特点包括:①多种模型结合的一种演进模型,融合了瀑布模型、快速原型和增量模型的所有特点,融进了循环往复、迭代演进的思想;②增加风险分析,一旦风险成立,原方案应终止、修订,力求风险可控③客户始终参与每个阶段的开发,每个阶段的成果需客户确认,避免错误的积累。统一过程RUP(RationalUnifiedProcess)是由Rational公司在推出统一建模语言UML后,推出的一个软件开发框架RUP,称为软件统一开发过程。12统一过程RUP定义了那几个主要阶段?初始阶段(Inception):主要完成商业需求,确定项目边界。里程碑是生命周期目标(LifecycleObjective),评价项目基本的生存能力。细化阶段(Elaboration):主要完成领域问题分析和软件设计。获取用户需求(功能和非功能需求),建立需求模型;进一步确立体系结构和设计软件结构等工作。里程碑是生命周期结构(LifecycleArchitecture)。构造阶段(Construction):主要完成系统实现、测试,里程碑是初始功能(InitialOperational),产品版本常被称为“beta”版。交付阶段(Transition):重点是确保软件对最终用户是可用的。里程碑:产品发布(ProductRelease)13统一过程RUP工作流6个核心过程工作流(CoreProcessWorkflows)商业建模(BusinessModeling):弄清项目边界和约束,做出计划。需求(Requirements):描述系统应做什么,开发人员和用户达成需求基线。分析和设计(Analysis&Design):将需求转化成计算机可以实现的模型。实现(Implementation):用程序设计语言将设计模型组织成可执行的文件、数据。测试(Test):是发现软件中的错误,在实验环境下验证所有的需求是否被正确的实现。部署(Deployment):将软件分发给最终用户,安装在真实的环境下,由用户操作运行。3个核心支持工作流(CoreSupportingWorkflows)是对核心过程工作流的配套支持和管理,保障核心过程工作流顺畅、高效运行。配置和变更管理:工作文档的管理,在版本更新、需求变更中做到各类文档及时、同步跟踪,保证各文档内容完整、一致。项目管理(ProjectManagement):资源配置、评估监控、风险控制、计划调整等管理工作,目的效益最大化。环境(Environment):软件开发环境,包括人员、设备、过程和工具,以及各种规范、指导手册和保障措施。14简述rup模型中基线与里程碑的概念,二者之间的关系。基线,是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础,也可以理解成为一个阶段的起点并已经制定了相应的工作标准,并且只有经过授权后才能变更这个标准。里程碑,是计划中确定的阶段性工作完成目标,要求提交阶段交付物,作为阶段评估的标准。基线和里程牌的关系:基线是为了建立参照点,是阶段的起点;里程牌是建立阶段性目标,是阶段终点,最后的里程牌可能是一次迭代的终结。15简述软件计划的目标和主要工作.软件计划的目标:研究项目的可行性,研究合理地运用软件项目开发所需的资源、经费,掌握开发进度,控制项目开发过程按此计划进行。主要工作包括:确定项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。16软件计划的活动有哪些?这些活动的内容是什么?软件计划主要活动包括:问题定义,可行性研究,项目计划。这些活动的内容是:问题定义:确定项目实施范围,回答项目“做什么?”的问题。可行性研究:项目的必要性和可能性。制定项目计划:编制项目开发计划。17简述问题定义的目的和主要任务。问题定义的目的:弄清要计算机解决的根本问题所在(要解决的问题是什么?),确定新系统的作用域,以及项目所需的资源、工期和经费。问题定义的主要任务:编写项目报告提交审查,作为可行性分析的依据。18简述可行性分析的目的、任务和内容。可行性分析的目的:确定项目的必要性和可能性。可行性分析的任务包括:可行性分析;写可行性研究报告;编制开发计划。可行性分析的内容包括:技术、经济和社会三个方面的可行性:19简述需求分析的目的、必要性和参与角色需求分析的目的是:弄清用户对系统的细节要求,完整、准确、清晰、具体地回答目标系统“做什么”。准确地理解用户提出的软件功能、性能及其环境的要求。需求分析的必要性:用户与开发者的知识领域不同,产生歧义;软件开发失败50%是需求不合理,早期错误易放大。参与角色:开发方包括分析师、设计师和架构师。用户方包括领域专家、用户和部门负责人。20需求开发的任务有哪些?需求开发的任务包括需求获取:收集用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。需求分析:通过符号和文字说明描述系统模型,使用户和开发者间建立共同语言基础,消除理解上的歧义的过程。需求说明:既编写需求文档,也称编写需求规格说明书。需求说明书是需求分析阶段的最终成果,也是需求分析阶段复审的依据;是用户领域专家、软件分析师、软件设计师共同交流的途径和媒介;是交付给用户文档的一部份;需求验证:即需求评审。根据需求说明书,分析师、设计师、客户会审文档,对需求的正确性、一致性、完整性、无二义行进行评审、确认。21需求的层次软件需求包括三个不同的层次:业务需求、用户需求、功能需求,也包括非功能需求。1.业务需求(businessrequirement)业务需求是反映企业/组织对软件系统的高层次目标要求,即软件系统的建设目标。业务需求通常是“问题定义”或“可行性研究”阶段获取的内容;在需求规格说明书中反映在项目背景、系统目标或任务概述的描述中。获取的主要对象是客户方的高管、专家、部门负责人。2.用户需求(userrequirement)用户需求:用来描述用户使用产品必须要完成的任务;使用业务领域的术语描述,采用开发者与用户都能理解的语言和图形表达。用户需求是经过调查、归纳后双方认同的结果。获取的主要对象是部门负责人、软件的操作者或称终端用户。3.功能需求(functionalrequirement)功能需求定义了开发人员必须实现的软件功能,结果在需求规格说明书中;功能需求用软件行业术语表达:通常是需求建模的结果即目标系统的逻辑模型,如结构化的功能模型、数据模型、行为模型,面向对象的类模型等。4.非功能需求特性是指一些非功能需求,是满足业务需求的性能要求。如界面的交互性、数据的安全性、数据的事务性、用户的并发性、响应的快速性、操作的实时性、错误与异常的恢复性、软件的容错性等等。项目的失败或拖延一般不是在功能上,而恰恰倒是在性能要求上,因为这些性能与软件的体系结构有关,与构成系统的网路与硬件环境等底层技术有关,往往超越一般开发人员的技术能力。22需求获取的一般方法① 需求获取方法以采访、观察、座谈、对先前的系统版本的测试等。必要时采用快速原型法。② 先集中在使用者对系统的观点上,以收集用户原始资料,数据、工作方式、工作流程、使用要求等为工作起点,深入到部门、车间、班组,做好原始纪录;③ 然后根据对问题及环境的理解与开发经验,改正用户需求的模糊、歧义和不一致性要求,排除用户的不合理要求,挖掘用户尚未提出但具有价值的潜在需求,使用户需求逐步精确化、一致化和完全化;④ 需求获取非一次完成:需要往复进行、逐步深化。⑤需求获取的内容:写进“需求规格说明书”,确认。23需求获取的策略①循序渐进的策略;②确定优先级:先进行重点的需求调研,有助于识别出重大的风险,并为制定迭代计划提供指导;③不要陷入技术:需求未明确,应回避对技术问题讨论。④挖掘用户需求:“诱导式”就是挖掘用户需求。客户并非IT专业人士,需求的概念是模糊的、笼统的,而且尺度难以把握,预测潜在需求。⑤区分不必要的需求:客户对有些需求提不出来,自然也会提出一些不必要的需求。24简述概要设计和详细设计的内容。软件设计包括概要设计和详细设计。概要设计又分为体系结构设计和领域问题结构设计。体系结构设计:是支撑和管理软件运行的环境设计。由于现代的软件是处在操作系统、网络、各种服务器共同搭建的环境下运行,并且具有并发、安全、事务等多方面的管理,是软件设计优先考虑的问题。领域问题结构设计:满足需求的软件功能设计,核心所在。将领域问题的分析模型细化成软件结构模型,也就是划分软件的模块结构及确定模块之间的关系。②详细设计又分为如下三个部分:对模块内部的过程和数据结构进行设计。也就是对模块内进行算法分析和程序设计。人机交互界面的具体设计,还有与其它外部系统接口设计。完成对数据库的物理设计概要设计是根据需求确定软件和数据的总体框架;详细设计是进一步精化成软件的算法和数据结构。2525简述衡量软件模块独立性的度量标准有哪些?模块独立性是指模块能够完成独立的功能;模块符合信息隐藏和信息局部化原则;模块间关连和依赖程度尽量小。衡量软件模块独立性的度量标准的指标有取决于模块的内部特征的指标内聚度和取决于模块的外部特征的指标耦合度。内聚度:一个模块内部各个元素间(语句和程序段)彼此的紧密程度的度量。耦合度:指软件结构中各模块间相互联系紧密程度的一种度量。26简述内聚度的七个等级?内聚度表示一个模块内部各成分之间彼此结合的紧密程度。内聚度按其高低程度可分为七级,高内聚度模块独立性强,设计尽可能提高模块内聚度。偶然性内聚:是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。逻辑性内聚:模块内完成的诸任务逻辑上相关。该类内聚的缺点是执行中要从模块外引入用作判断的开关量,从而增加了块间偶合(控制偶合)。时间性内聚:如果一个模块包含的诸任务必须在同一时间段内执行,则称之为时间性内聚过程性内聚:模块的过程性内聚度是指模块内成份彼此相关,并且必须按特定的次序在本模块内执行;通讯性内聚:是指模块中各组成成分都将对某个数据结构的同一区域进行操作,以达到通信的目的。顺序性内聚:一个模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行,通常,一个处理成分的输出是另一个处理成分的输入。功能性内聚:模块内所有成分形成一个整体,完成单个功能,则称功能内聚,功能内聚是最高程度的内聚形式。27耦合度的七个等级耦合度是模块独立性最显著特征。耦合度按其高低程度可分为七级,松耦合是软件设计一直追求的目标。非直接耦合:模块不依赖另一个模块能独立工作,这是最松的耦合。数据耦合:两模块间通过参数交换数据信息,则称这两模块为数据耦合。特征耦合:模块之间除传递关键数据外还附加公共数据。控制耦合:如果两模块间通过参数交换信息,此时若传递的信息中含有控制信息,则为控制耦合。外部耦合:当若干模块均与同一个外部环境关联,它们之间便存在外部耦合。公共耦合:当若干模块通过全局的数据环境相互作用时,它们之间存在公共耦合。内容耦合:当一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一个模块内部等,模块间的耦合就是内容耦合。28简述模块的作用域与控制域的概念及其相关设计原则。模块的作用域:从功能方面考虑,受模块内一个判定影响的所有模块的集合;模块的控制域:从结构方面考虑,包括它自己及其所有下属模块的集合。相关设计原则是:模块的作用域应在控制域之内。29详细设计的表达方式有哪些?1.伪代码(Pseudocode):是一种算法描述语言,也称PDL语言(ProgramDesignLanguage)。伪代码介于自然语言与编程语言之间,用伪代码描述的算法可以容易用任何一种编程语言实现。伪代码表达算法必须结构清晰、代码简单、可读性好。2.程序流程图:用图形符号表达算法,直观表达循环、分支等复杂结构,是喜闻乐见的表现形式。3.盒图(N-S)(Nassi和Shneiderman):也是一种图形符号表达方式,同样可以表达各种流向控制,但比程序流程图紧凑、功能域明确。4.PAD图(PAD-ProblemAnalysisDiagram)[28]:同样是用图形符号表达算法,但它具有结构化的表达方式,因此结构十分清晰,很容易翻译成程序代码。PAD支持自顶向下,逐步求精方法的使用。判定表与判定树:对于规则较多,判定条件较复杂的情况,宜采用这两种方法表达。5.判定表与判定树:对于规则较多,判定条件较复杂的情况,宜采用这两种方法表达。30简述面向数据流的结构化分析SA方法中,有哪些建模方法?功能建模:数据流图DFD(DataFlowDiagram)+数据字典DD(DataDictionary);数据建模:实体关系图ERD(EntityRelationDiagram);行为建模:状态转换图STD(StateTransformDiagram);加工说明PESPEC(ProcessSPECification)和判定表等辅助工具。31简述数据流图(DFD)的图形符号有哪些?①数据流:表示数据流的名称和数据的流向(从加工出发或流向加工);②外部实体:系统外与系统交互的人或实体;③数据加工:数据处理;④数据存储:数据进行持久保存的环节;32简述数据字典的作用、内容和组成元素有哪些?数据流图描述了数据加工,但没有描述数据的内容。数据流图必须与描述并组织数据条目的数据字典DD(DataDictionary)配套使用。数据字典描述的对象:描述数据流图中出现的所有数据和加工。这里的数据描述是概念性的,属数据结构的抽象描述;加工采用加工小说明进行概念性的描述。数据字典的组成元素包括:数据流条目、数据存储条目、数据项条目;加工条目(也称为小说明);33简述面向对象的基本概念有哪些?1.对象与面向对象对象(Object):即表示客观世界中的某个具体的事物。面向对象(ObjectOriented):是人类的活动,是人类认知、观察客观事物的方法论。2.面向对象的抽象与分类3.类的封装与对象的整体性4.关联性与交互性客观事物都不是孤立存在的,万物之间相互依存、相互交流。关联性表达客观事物的社会性、共存性、组织性,是静态的结构描述。消息机制是对象的交互性,表示对象生存环境的依赖性。5.继承性对事物的分类本身就体现继承性。软件开发利用继承性可对Object更好地分类,软件结构更严谨,代码的复用性更强。6.多态性对象在不同的条件下,同样的行为会表现不同的效果,这就是Object的多态(polymorphism)。面向对象编程语言提供抽象类、接口、重载等技术支持多态的实现。34面向对象的五大特性有哪些?面向对象的特性有抽象性、封装性、继承性、多态性和消息机制等五大特性。35简述面向对象开发过程的内容有哪些?①需求获取:开发者以OO的观点(OOV)来观察客观世界的目标即获取需求,然后用自然语言写到需求规格说明(OOS)中,也就是对客观世界的最高层抽象。②面向对象分析OOA(ObjectOrientedAnalysis)与面向对象设计OOD(ObjectOrientedDesign)。③面向对象编程ObjectOrientedProgram(OOP)与面向对象测试ObjectOrientedTesting(OOT)是代码实现过程,它依赖于编程语言和工具。④软件维护ObjectOrientedSoftwareMaintenance(OOSM)。36与传统的软件开发方法相比较,面向对象开发的主要优点有哪些?1.自然性即客观性2.操作数据对象而非数据实体3.阶段衔接平滑4.结构性好、复用性强5.提高扩展性和维护性37简述UML中定义了那些图形符号?并简述起作用。用例图(UseCase)描述系统参与者与领域问题的功能类图(Class)描述系统的逻辑结构,类、接口及它们的协作关系包图(Package)描述类的复用组织—分组对象图(Object)描述类的实例在某时刻的关系构件图(Component)描述系统按构件组成上的关系配置图(Deployment)描述系统运行环境的配置情况时序图(Sequence)描述某些对象共同合作完成某项功能而按时间顺序进行的消息传递协作图(Collaboration)描述某些对象共同合作完成某项功能的依赖关系活动图(Activity)描述某个用例按事件流转所经历的的活动,即业务流程状态图(Statechart)描述某个业务流程按事件流转所经历的状态,即状态机38简述用例图中有哪些模型元素?并简述其含义?①参与者:指存在于系统外部并与该系统发生交互的人或其他系统,代表系统的使用者或使用环境。②用例(UseCase),用例用于表示系统提供的服务,它定义了系统是如何与参与者交互,描述了参与者与系统之间的交互过程。③角色与用例间的关系关联,它表示参与者与系统中的哪些用例交互。用例之间的关系:包含<<include>>和扩充<<extend>>关系以及泛化关系。参与者之间的泛化关系。39简述类图中有哪些模型元素?并简述其含义?提示:一切可以出现在类图中的元素。类:类名、属性、方法(可见性、作用域)特殊类:接口类之间的关系的定义、表示和属性:关联、依赖、聚合、组合、泛化、实现。各种类关系之间的关系。40简述包图中有哪些模型元素?并简述其含义?提示:一切可以出现在包图中的元素。包和包之间的关系。41简述活动图中有哪些构成元素?并简述这些元素的含义?42简述OOA模型的结构OOA的核心任务是搞清用户需求,最终要建立起OOA模型。UML的OOA模型由“用例模型”和“概念模型”两大部分组成。①用例模型,是将用自然语言描述的领域问题,转换成UML语言表达的模型,主要面向用户,反映用户需求。完整的用例模型由用例图和业务场景描述两个部分组成,用例图表示功能的划分;业务场景描述则对每个用例的事件流进行描述;②概念模型(类模型/结构模型/静态模型)。将用例模型映射成类模型:从用例模型中找出类,面向设计人员。主要工作是:根据用例图进行类的划分与封装;描述类间的静态关系与结构;用交互图表达类对象间的消息传递。43对象间的可访问性①属性可见性:B是A的一个属性(关联、聚合);②参数可见性:B的对象是A的一个方法的参数;③局部声明可见性:B的对象是在A的一个方法中声明的一个局部变量;④全局可见性:B的对象在某种程度上全局可见;44对象持久化对象持久化常用技术实体类的实例称为数据对象,对象持久化主要用于数据对象的持久化,简称数据持久化。一个数据对象的持久化就是保存到实体表中的一条记录,对实体对象的访问就是操作属性的值。对象持久化常用技术①对象的序列化指将对象的相关信息(对象序列号、属性名、属性值等)转换为字节流,然后再把字节流写入数据流。可以把对象这些信息存储在本地的文件里,也可以把它通过网络传输到远程。通过对象反序列化,得到原对象完全相同的副本。②对象持久化到数据库中数据库可以是对象数据库或关系数据库。③用XML(eXtensibleMarkupLanguage)存储。45“实体模型”到“关系模型”的OR映射(1) 一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。(2) 对象关系(一对一、一对多、多对多)的映射可能有多种情况,但一般映射为一个表或多个表,在表间定义相应的主键PK(Primarykey)和外键FK(Foreignkey)建立实体间的关系。(3) 单一继承的泛化关系可以对超类、子类分别映射表,也可以不定义父类表而让子类表拥有父类属性;反之,也可以不定义子类表而让父类表拥有全部子类属性。(4)对多重继承的超类和子类分别映射表,对多次多重继承的泛化关系也映射一个表。(5)对映射后的库表进行冗余控制调整,使其达到合理的关系范式。46软件测试的定义软件测试是为了发现错误而运行程序的过程;软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错;测试对象不仅是程序,还应该包括开发过程中产生的所有产品,包括文档,其目的是为了尽早地、尽可能多的发现并排除软件中潜在的错误。47软件测试的基本原则①Who来测试?测试工作应该由独立的、专业的软件测试机构来完成,设计人员和程序员要参与测试;对测试结果一定要有一个确认的过程,一般由角色A测试出来的错误,一定要有一个角色B来确认,严重的错误可以召开评审会进行讨论和分析;②测试What?程序员交付的模块、系统和文档;③测试Extent?设计测试用例,充分覆盖所有条件或所有语句即可;④When测试?尽早和不断的测试,即将这种“测试”贯穿于软件开发的各个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错误;⑤How测试?设计测试用例时不仅要考虑到合法的输入,还要考虑到不合法的输入以及各种边界条件;对发现错误较多的程序模块,应进行重点测试。48软件缺陷,软件缺陷的属性:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的属性:缺陷标识、缺陷类型、缺陷严重、程度缺陷、优先级、缺陷状态、缺陷起源、缺陷来源、缺陷根源等。49简述测试用例的概念测试用例(TestCase)是关于具体测试步骤的文档,以判断被测软件的工作是否正常。内容包括:测试目标、测试环境、输入数据、测试步骤、预期结果等。从表现形式上看,测试用例可以是纯文本的文档,也可以是用程序设计语言编写的一段代码。50简述基本测试方法的分类情况测试方法分类内容静态测试走查评审动态测试白盒测试逻辑覆盖法语句覆盖语句覆盖是最简单、最弱覆盖。它只覆盖可执行语句至少执行一次。判定覆盖判定覆盖又叫分支覆盖,是对每个判定式取真、假各一次,使每个判定的每个分支都至少执行一次,同时满足语句覆盖。条件覆盖条件覆盖是把程序中每个判断的每个条件为真和假各取值一次。条件覆盖深入到判定中的每个条件,但不一定满足判定覆盖的要求。判定/条件覆盖判定/条件覆盖能同时满足判定、条件两种覆盖标准的取值。就是使得判定中每个条件的所有可能取值至少执行一次,同时每个判定本身所有取值至少执行一次。条件组合覆盖条件组合覆盖是按每个判断的所有条件取值进行组合。这是5种覆盖中最强的覆盖。它不但可覆盖所有条件,还可覆盖所有判断的可取分支。基本路径覆盖法基本路径测试步骤:①导出程序流程图的拓扑结构-流图(控制流程图);②计算流图G的环路复杂性V(G);③确定只包含独立路径的基本路径集;④设计测试用例;黑盒测试等价类划分法对测试数据进行区间划分,从这些区间中选取典型值作为用例代表,认为测试等价类中的一个代表值的结果就等于对该类其它值的测试。边界值分析法边界值分析法就是对输入或输出的边界值进行测试的一种方法。错误推测法因果图法51简述软件测试过程的主要内容。1.需求与设计评审2.单元测试(UnitTesting)3.集成测试4.功能测试5.系统测试6.验收测试7.α与β测试52简述单元测试(UnitTesting)的主要内容。单元测试又称模块测试,是针对软件设计的最小单位程序模块(函数、类等)进行正确性检验的测试工作。单元测试采用黑盒+白盒混合方式,采用黑盒测试为主为先,白盒测试为辅为后的策略。1)用黑盒进行模块接口测试2)用黑盒进行模块边界条件的测试3)用白盒进行模块局部数据结构和算法的测试4)用白盒进行模块中独立路径的测试5)模块中各条错误处理路径的测试53简述集成测试的主要内容集成测试也叫组装测试或联合测试。集成测试是在单元测试基础上,再将单元按照概要设计规格说明的要求组装成更大的模块、子系统或系统。1)非渐增式集成测试非渐增式集成测试又叫一次性集成测试,就是把所有经过单元测试的模块按照设计规格说明书一次性组装成系统,然后进行统一的测试。2)渐增式集成测试渐增式集成测试即把下一个要测试的模块同已经测试好的模块结合起来进行测试,测完后,再把下一个应该测试的模块结合进来测试。54.简述验收测试的概念验收测试是软件交付之前的最后一个测试操作,验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。55.α与β测试这两种测试是针对商用软件的系统测试。商用软件与合同定制式软件不同,它面向的使用群体数量大、不确定,没用针对性的验收用户。因此在软件正式面市之前免费供用户试用,由用户在试用中发现问题,这就是β测试。提供给用户的β版如果BUG太多,客户将无法试用和承受,因此首先软件开发组织内部人员模拟各类用户对即将面市软件产品进行测试,此时称为α测试。56简述软件维护的概念软件维护是在软件交付使用之后,为了改正错误或满足新的需求而修改软件的过程。57软件维护的分类纠错性维护(CorrectiveMaintenance)纠错性维护是在软件交付后,纠正哪些在运行中发现的残留错误,也称改正性维护。适应性维护(AdaptiveMaintenance)为适应软件运行环境(软件生态环境)的变化而修改软件的活动称为适应性维护。完善性维护(PerfectiveMaintenance)根据用户在软件使用过程中提出的建设性意见(需求变化)而进行的维护活动称为改善性维护。预防性维护(PreventiveMaintenance)为了进一步改善软件的可靠性和易维护性,或者为将来的维护奠定更好的基础而对软件进行修改。58简述软件维护的副作用及困难有哪些?1.维护的副作用维护的副作用就是指由于维护或在维护过程中其他一些不期望的行为引入的错误。引起副作用的维护修改可分三类:代码副作用;数据副作用;文档副作用。2.维护工作面临的困难周期长、难度大、费用高。维护费用高达开发费用的55%—70%,而且逐年上涨。维护中还可能引入新的潜在错误。分析设计的缺欠、非维护者开发、现场追踪等等。59简述软件配置项的概念和内容。软件配置项SCI(softwareConfigurationItem)软件生存周期各个阶段活动的产物经审批后即可称之为软件配置项。软件配置项包括:与合同、过程、计划和产品有关的文档和资料;源代码、目标代码和可执行代码;相关产品,包括软件工具、库内的可重用软件、外购软件及顾客提供的软件等。60简述结构化维护和非结构化软件维护的概念。1.非结构化维护是指满足如下条件的维护l软件的配置中只有源代码。l由于没有分析和设计文档,无法对程序的功能进行反向追踪,理解别人的代码是很痛苦的事情。l由于配置中没有测试文档,所以维护后的代码无法进行回归测试。因而导致程序的结构化被不断的破坏,维护的质量无法得到保证。2.结构化维护是指满足如下条件的维护l待维护的软件的配置是完整的。l用户提出的维护申请用正向追踪很容易从分析设计文档追踪直至代码中,从而使维护人员很容易定位代码的维护点。所以这种维护不会破坏软件的结构。l结构化维护不仅能减少维护的工作量,还能提高维护的质量。软件配置文档的重要性。1.为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?2.软件测试的目的是什么?为什么把软件测试的目的定义为只是发现错误?3.软件测试应当遵循什么原则?为什么要遵循这些原则?4.软件测试的步骤是什么?这些测试与软件开发各阶段之间的关系?5.软件测试的过程是什么?6.单元测试、集成测试和确认测试各自主要目标是什么?它们之间有什么不同?相互有什么关系?7.什么是黑盒测试与白盒测试?它们都适应哪些测试?8.简述软件测试与软件调试的区别。9.软件配置管理的任务。10.试述第三代界面的优点。11.试述人机界面的设计过程。1.①软件测试是软件开发中不可缺少的重要一环,原因是:·
测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。·
软件测试代表了需求分析、设计、编码的最终复审。②软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。2.软件测试的目的有:①软件测试是为了发现错误而执行程序的过程。②一个好的测试用例能够发现至今尚未发现的错误。③一个成功的测试是发现了至今尚未发现的错误。
软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。3.软件测试应当遵循原则如下:①用例由输入数据和预期的输出数据两部分组成,因为这样便于对照检查,做到有的放矢。②用例不仅选用合理的输入数据,还要选择不合理的输入数据。因为当以特殊方式使用程序时,会突然发现程序中有许多错误,故使用预期的不合理的输入数据进行程序测试,比用合理的输入数据收获要大,从而能更多地发现错误,提高程序可靠性。③除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事,因为如果程序做了它不应该做的事,即使程序能做它应该做的事,程序也是错误的。④应制定测试计划并严格执行,因为这样可以排除随意性。⑤长期保留测试用例,因为测试用例的设计耗费很大的工作量,而修改后的程序可能有新的错误,需要进行回归测试,故必须将测试用例作为文档保存,使测试具有可重复性,同时测试用例是将来系统维护测试与确认的依据,保存测试用例也为以后的维护提供方便。⑥对发现错误较多的程序段,应进行更深入的测试,因为发现错误较多的程序段,其质量较差,同时在修改错误过程中又容易引入新的错误。⑦程序员避免测试自己设计的程序,因为测试目的是找错。从心理学角度讲,程序员大多对自己的程序存有偏见,总认为没有错误或错误不大,另外程序员对需求规格说明的理解而引入的错误则更难发现,应该由别人或另外的机构来测试会更客观、更有效。4.①软件测试的步骤如图7-3所示。图7-3软件测试的步骤②这些测试与软件开发各阶段之间的关系如图7-2所示。因为系统测试已经超出了软件工程的范围,所以图7-2中的系统测试不包括在内。5.软件测试是一个规则的过程,包括测试设计、测试执行以及测试结果比较等。①测试设计:根据软件开发各阶段的文档资料和程序的内部结构,利用各种设计测试用例技术精心设计测试用例。②测试执行:利用这些测试用例执行程序,得到测试结果。③测试结果比较:将预期的结果与实际测试结果进行比较,如果二者不符合,对于出现的错误进行纠错,并修改相应文档。修改后的程序还要进行再次测试,直到满意为止。如果测试发现不了错误,可能由于测试配置考虑不周到,应考虑重新制定测试方案,设计测试用例。6.单元测试、集成测试和确认测试各自主要目标是:①单元测试的主要目标是检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。②集成测试的主要目标是检查与设计相关的软件体系结构的有关问题。③确认测试的主要目标是检查已实现的软件是否满足需求规格说明书中确定的各种需求。单元测试、集成测试和确认测试之间的不同如下:①测试内容不同:单元测试集中于单个模块的功能和结构检验,其测试内容主要包括模块接口、局部数据结构、重要的执行路径、错误处理和边界测试;集成测试集中于模块组合的功能和软件结构检验,其测试内容主要包括模块组装中可能出现的问题,即数据穿过接口可能丢失、一个模块可能破坏另一个模块的内容、子功能组装可能不等于主功能、全程数据结构问题、误差累积问题;确认测试集中于论证软件需求的可追溯性,主要包括测试软件功能和性能是否与软件需求一致、测试软件配置的所有程序与文档是否正确完整而且一致。②测试的方法不同:单元测试总是使用白盒测试法,为被测模块设计驱动模块和桩模块;集成测试使用渐增式测试和非渐增式测试,渐增式测试又有分为自顶向下结合法和自底向上结合法;确认测试总是使用黑盒测试法。③发现的错误不同:单元测试发现的错误主要是在编码阶段产生的错误,集成测试发现的错误主要是在设计阶段产生的错误,确认测试发现的错误主要是在需求分析阶段产生的错误。④涉及的文档不同:单元测试涉及编码和详细设计文档,集成测试涉及详细设计文档和概要设计文档,确认测试涉及软件需求规格说明书和用户手册。三者相互关系是:单元测试、集成测试和确认测试是顺序实现的。首先单元测试对各个模块进行测试,然后集成测试以单元测试为基础,将所有已测模块按照设计要求组装成一个完整的系统,对模块组合的功能和软件结构检验进行测试,最后确认测试是以集成测试为基础,测试集成的软件是否满足需求规格说明书中确定的各种需求。7.①黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。②白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。③白盒测试适应的测试有单元测试、逻辑覆盖(按逻辑覆盖程度不同,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。)、循环覆盖(限制循环次数,有单循环和嵌套循环)和基本路径测试。④黑盒测试适应的测试有:确认测试、等价类划分、边界值分析、错误推测和因果图。8.软件测试与软件调试在目的、技术和方法等方面存在很大的区别,主要表现在:①测试从一个侧面证明程序员的失败,而调试是为了证明程序员的正确。②测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的只是程序是否通过测试。调试一般以不可知的内部条件开始,除统计性调试外,结果是不可预见的。③测试是有计划的,并要进行测试设计,而调试是不受时间约束的。④测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程。⑤测试的执行是有规程的,而调试的执行往往要求程序员进行必要的推理及知觉的飞跃。⑥测试经常由独立的测试组在不了解软件设计的前提下完成,而调试必须由了解详细设计的程序员完成。⑦大多数测试的执行和设计可由工具支持,而调试时,程序员能利用的工具主要是调试器。1、程序语言有哪些共同特征?答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。2、在项目开发时选择程序设计语言通常考虑哪些因素?答:通常要考虑的因素有:项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。3、第4代语言(4GL)有哪些主要特征?答:4GL的主要特征是:(1)友好的用户界面(2)兼有过程性和非过程性双重特性(3)高效的程序代码(4)完备的数据库(5)应用程序生成器4、举例说明各种程序设计语言的特点及适用范围?答:以常见的一些编程语言为例:FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。SQL:结构化查询语言,用于对数据库进行存取管理。汇编语言和Ada语言,主要用于实时处理和编写系统软件。Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。5、什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。(2)软件开发简单,易学、易上手。(3)专业或非专业人员都能参与软件开发活动。1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 呼吸运动过程课程设计
- 福建师范大学《材料分析方法与技术》2022-2023学年第一学期期末试卷
- 成都中医药大学《药学拉丁语》2022-2023学年第一学期期末试卷
- 成都中医药大学《供应链管理》2021-2022学年第一学期期末试卷
- 2013年广州市中考物理试题(含答案)
- 假期感悟心得体会范文
- 消防安全大排查大整治工作实施方案(3篇)
- 装修合同范本(15篇)
- 商务公寓改造合同
- 医疗废物运输合同范本
- 中小学教师高级职称面试讲课答辩题目及答案(分五类共60题)
- 2024版新房屋装修贷款合同范本
- 2024-2029年电信API平台行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 2024年中考语文三轮冲刺-第四讲+中考作文结构+横线式课件
- 冠脉介入进修汇报
- 蒋诗萌小品《谁杀死了周日》台词完整版
- 铁道运输实训总结报告
- 小学生生涯规划班会课教案设计
- 人教部编版五年级上册语文第三单元测试卷(含答案解析)
- 抗球虫药1课件
- 儿童民航知识课件
评论
0/150
提交评论