软件工程答案整理.doc
. .填空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,它用于整个软件工程过程。其主要目标是:、。55SCM是一组管理整个软件生存期各阶段中的活动。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个知识领域软件工程过程 ( Software Engineering Process)软件工程工具和法 ( Software Engineering Tools and Methods )软件需求(Software Requirement)l 软件设计 (Software Design )软件构造 (Software Construction)软件测试 (Software Testing)软件维护 (Software Maintenance)软件配置管理 (Software Configuration management)软件工程管理 ( Software Engineering management )软件质量 ( Software Quality)5 软件工程的目标是什么,软件工程的三要素都是什么?软件工程的目标:软件工程必须以有组织的质量保证为根底,进展全面质量管理,不断地过程改进使软件工程法走向成熟。软件工程的三要素包括:过程、法和工具过程为及时合理地开发出满足用户需求的计算机软件而进展一系列有组织的活动。过程定义了技术法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理。法为软件开发提供“如做的技术,它涵盖了工程方案、需求分析、系统设计、程序实现、测试与维护等一系列的开发活动如来做。开发法经历了从面向构造、面向对象、面向组件到面向效劳的开展工程。工具为过程和法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件工程 (CASE ,puter Aided Software Engineering)。6 软件工程的七条根本原理美国著名的软件工程专家巴利玻姆(Barry Boehm)提出了软件工程的七条根本原理: 1用分阶段的生命期方案格管理; 2坚持进展阶段评审; 3实行格的产品控制; 4采纳现代程序设计技术; 5结果应能清楚地审查; 6开发小组的人员应少而精; 7成认不断改进软件工程实践的必要性。7 简述软件过程的定义,软件过程又可以分为那几个类型?软件过程(Software Procedure)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件过程可概括为根本过程、支持过程和组织过程等三种类型。其中,根本过程包括:获取过程、供应过程、开发过程、运作过程和维护过程。支持过程包括:文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程和问题解决过程等过程。组织过程包括:管理过程、根底设施过程、改进过程和培训过程。8 里程碑( Mile Stone )思想阶段工作的目标进展总结、评审、调整和部署下一个里程碑。目的:合理分配,细化管理“粒度,降低工程风险。9 基线思想基线是指一个(或一组)配置项在工程生命期的不同时间点的一种状态,各阶段有各阶段的基线:需求基线、设计基线、测试基线等。基线一旦建立后变化需要受控制。10 简述软件生存期的概念,说明软件生存期划分为那几个主要时期?每个时期有包括哪些主要阶段?软件生存期是指软件产品从定义到开发、使用和维护,直到最终被弃用的时期,称为生存期。生存期的可划分为方案时期、开发时期和运行时期等三个主要时期。其中方案时期包括问题定义和可行性研究两个阶段。开发时期包括需求分析、总体设计、详细设计和实现等四个阶段。运行时期的又称为运行和维护阶段。11 简述教材中介绍了那些软件开发模型?这些模型各有什么特点?教材中重点介绍了瀑布、原型、增量、螺旋四个传统模型和RUP、XP两个现代模型。其中,瀑布模型格按照生存期开发软件,每个阶段必须完成规定的、完整、准确的合格文档,前一阶段的输出文档就是后一阶段的输入文档。其主要特点包括:活动间具有顺序性和依赖性;推迟实现的观点;质量保证的观点;快速原型模型法是开发人员在一个根本的需求的根底上快速开发出一个软件原型,然后由用户使用和评价原型、开发人员根据用户意见再修改原型,然后再使用评价再修改、直至将原型进化为最终产品。快速原型模型的特点包括:做出系统原型,及早向用户展示系统要实现的界面及功能,增强用户的合作信心;直观化的表达,容易交流,消除理解上的歧义;修改集中在前期的原型确认上,较大程度减少后期实施中的返工。入手快,加快开发进度;增量模型是一种演化模型,先完成一个系统子集的开发,再按同样的开发步骤增加子集,如此递增下去直至满足全部系统需求。每个增量可按快速原型法进展。增量模型的特点包括:无须等待获取完整需求就可入手,尽快见到成果,增强双信心;分步开发,降低复杂性和难度,减少技术风险,并可并行开发;边开发边投入,可及早发现问题,减少投资风险;各个子集是逐渐并入已有的系统中,参加子集不能破坏已构造好的局部,这需要软件具备开放式的体系构造;适用于需求不完整的软件开发,指的是需求逐渐摸清、逐步完善,并非随意改变,需求改变过大会导致整体性失控。后面要介绍的XP极限编程属于该模型。螺旋模型(Spiral model)是一种融合了瀑布模型、快速原型模型和增量模型的演进模型,并引入风险分析机制。适合大型复杂的系统开发。螺旋模型特点包括:多种模型结合的一种演进模型,融合了瀑布模型、快速原型和增量模型的所有特点,融进了循环往复、迭代演进的思想;增加风险分析,一旦风险成立,原案应终止、修订,力求风险可控客户始终参与每个阶段的开发,每个阶段的成果需客户确认,防止错误的积累。统一过程RUP (Rational Unified Process)是由Rational 公司在推出统一建模语言UML后,推出的一个软件开发框架RUP,称为软件统一开发过程。12 统一过程RUP定义了那几个主要阶段?l 初始阶段(Inception):主要完成商业需求,确定工程边界。里程碑是生命期目标(Lifecycle Objective),评价工程根本的生存能力。l 细化阶段(Elaboration):主要完成领域问题分析和软件设计。获取用户需求功能和非功能需求,建立需求模型;进一步确立体系构造和设计软件构造等工作。里程碑是生命期构造(Lifecycle Architecture)。l 构造阶段(Construction):主要完成系统实现、测试,里程碑是初始功能(Initial Operational),产品版本常被称为“beta版。l 交付阶段(Transition):重点是确保软件对最终用户是可用的。里程碑:产品发布(Product Release)13 统一过程RUP工作流 6个核心过程工作流(Core Process Workflows)l 商业建模(Business Modeling):弄清工程边界和约束,做出方案。l 需求(Requirements):描述系统应做什么,开发人员和用户达成需求基线。l 分析和设计(Analysis & Design):将需求转化成计算机可以实现的模型。l 实现(Implementation):用程序设计语言将设计模型组织成可执行的文件、数据。l 测试(Test):是发现软件中的错误,在实验环境下验证所有的需否被正确的实现。l 部署(Deployment):将软件分发给最终用户,安装在真实的环境下,由用户操作运行。 3个核心支持工作流(Core Supporting Workflows)是对核心过程工作流的配套支持和管理,保障核心过程工作流顺畅、高效运行。l 配置和变更管理:工作文档的管理,在版本更新、需求变更中做到各类文档及时、同步跟踪,保证各文档容完整、一致。l 工程管理(Project Management):资源配置、评估监控、风险控制、方案调整等管理工作,目的效益最大化。l 环境(Environment):软件开发环境,包括人员、设备、过程和工具,以及各种规、指导手册和保障措施。14 简述rup模型中基线与里程碑的概念,二者之间的关系。基线,是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的根底,也可以理解成为一个阶段的起点并已经制定了相应的工作标准,并且只有经过授权后才能变更这个标准。里程碑,是方案中确定的阶段性工作完成目标,要求提交阶段交付物,作为阶段评估的标准。基线和里程牌的关系:基线是为了建立参照点,是阶段的起点;里程牌是建立阶段性目标,是阶段终点,最后的里程牌可能是一次迭代的终结。15 简述软件方案的目标和主要工作.软件方案的目标:研究工程的可行性,研究合理地运用软件工程开发所需的资源、经费,掌握开发进度,控制工程开发过程按此方案进展。主要工作包括:确定工程实施围、定义递交的工作成果、评估实施过程中主要的风险、制定工程实施的时间方案、本钱和预算方案、人力资源方案等。16软件方案的活动有哪些?这些活动的容是什么?软件方案主要活动包括:问题定义,可行性研究,工程方案。这些活动的容是:问题定义:确定工程实施围,答复工程“做什么?的问题。可行性研究:工程的必要性和可能性。制定工程方案:编制工程开发方案。17 简述问题定义的目的和主要任务。问题定义的目的:弄清要计算机解决的根本问题所在(要解决的问题是什么?),确定新系统的作用域,以及工程所需的资源、工期和经费。问题定义的主要任务:编写工程报告提交审查,作为可行性分析的依据。18 简述可行性分析的目的、任务和容。可行性分析的目的:确定工程的必要性和可能性。可行性分析的任务包括:可行性分析;写可行性研究报告;编制开发方案。可行性分析的容包括:技术、经济和社会三个面的可行性:19简述需求分析的目的、必要性和参与角色需求分析的目的是:弄清用户对系统的细节要求,完整、准确、清晰、具体地答复目标系统“做什么。准确地理解用户提出的软件功能、性能及其环境的要求。需求分析的必要性:用户与开发者的知识领域不同,产生歧义;软件开发失败50%是需求不合理,早期错误易放大。参与角色:开发包括分析师、设计师和架构师。用户包括领域专家、用户和部门负责人。20 需求开发的任务有哪些?需求开发的任务包括需求获取:收集用户对目标软件系统在功能、性能、行为、设计约束等面的期望。需求分析:通过符号和文字说明描述系统模型,使用户和开发者间建立共同语言根底,消除理解上的歧义的过程。需求说明:既编写需求文档,也称编写需求规格说明书。需求说明书是需求分析阶段的最终成果,也是需求分析阶段复审的依据;是用户领域专家、软件分析师、软件设计师共同交流的途径和媒介;是交付给用户文档的一部份;需求验证:即需求评审。根据需求说明书,分析师、设计师、客户会审文档,对需求的正确性、一致性、完整性、无二义行进展评审、确认。21 需求的层次软件需求包括三个不同的层次:业务需求、用户需求、功能需求,也包括非功能需求。1业务需求(business requirement)业务需反映企业/组织对软件系统的高层次目标要求,即软件系统的建立目标。业务需求通常是“问题定义或“可行性研究阶段获取的容;在需求规格说明书中反映在工程背景、系统目标或任务概述的描述中。获取的主要对象是客户的高管、专家、部门负责人。2用户需求(user requirement) 用户需求:用来描述用户使用产品必须要完成的任务;使用业务领域的术语描述,采用开发者与用户都能理解的语言和图形表达。用户需经过调查、归纳后双认同的结果。获取的主要对象是部门负责人、软件的操作者或称终端用户。3. 功能需求(functional requirement)功能需求定义了开发人员必须实现的软件功能,结果在需求规格说明书中;功能需求用软件行业术语表达:通常是需求建模的结果即目标系统的逻辑模型,如构造化的功能模型、数据模型、行为模型,面向对象的类模型等。4. 非功能需求特性是指一些非功能需求,是满足业务需求的性能要求。如界面的交互性、数据的平安性、数据的事务性、用户的并发性、响应的快速性、操作的实时性、错误与异常的恢复性、软件的容错性等等。工程的失败或拖延一般不是在功能上,而恰恰倒是在性能要求上,因为这些性能与软件的体系构造有关,与构成系统的网路与硬件环境等底层技术有关,往往超越一般开发人员的技术能力。22 需求获取的一般法需求获取法以采访、观察、座谈、对先前的系统版本的测试等。必要时采用快速原型法。先集中在使用者对系统的观点上,以收集用户原始资料,数据、工作式、工作流程、使用要求等为工作起点,深入到部门、车间、班组,做好原始纪录;然后根据对问题及环境的理解与开发经历,改正用户需求的模糊、歧义和不一致性要求,排除用户的不合理要求,挖掘用户尚未提出但具有价值的潜在需求,使用户需求逐步准确化、一致化和完全化;需求获取非一次完成:需要往复进展、逐步深化。需求获取的容:写进“需求规格说明书,确认。23需求获取的策略循序渐进的策略;确定优先级:先进展重点的需求调研,有助于识别出重大的风险,并为制定迭代方案提供指导;不要陷入技术:需求未明确,应回避对技术问题讨论。挖掘用户需求: “诱导式就是挖掘用户需求。客户并非IT专业人士,需求的概念是模糊的、笼统的,而且尺度难以把握,预测潜在需求。区分不必要的需求:客户对有些需求提不出来,自然也会提出一些不必要的需求。24 简述概要设计和详细设计的容。软件设计包括概要设计和详细设计。概要设计又分为体系构造设计和领域问题构造设计。体系构造设计:是支撑和管理软件运行的环境设计。由于现代的软件是处在操作系统、网络、各种效劳器共同搭建的环境下运行,并且具有并发、平安、事务等多面的管理,是软件设计优先考虑的问题。领域问题构造设计:满足需求的软件功能设计,核心所在。将领域问题的分析模型细化成软件构造模型,也就是划分软件的模块构造及确定模块之间的关系。详细设计又分为如下三个局部:l 对模块部的过程和数据构造进展设计。也就是对模块进展算法分析和程序设计。l 人机交互界面的具体设计,还有与其它外部系统接口设计。l 完成对数据库的物理设计概要设计是根据需求确定软件和数据的总体框架;详细设计是进一步精化成软件的算法和数据构造。25 25 简述衡量软件模块独立性的度量标准有哪些?模块独立性是指模块能够完成独立的功能;模块符合信息隐藏和信息局部化原那么;模块间关连和依赖程度尽量小。衡量软件模块独立性的度量标准的指标有取决于模块的部特征的指标聚度和取决于模块的外部特征的指标耦合度。聚度:一个模块部各个元素间(语句和程序段)彼此的严密程度的度量。耦合度:指软件构造中各模块间相互联系严密程度的一种度量。26 简述聚度的七个等级?聚度表示一个模块部各成分之间彼此结合的严密程度。聚度按其上下程度可分为七级,高聚度模块独立性强,设计尽可能提高模块聚度。 偶然性聚:是指一个模块各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。 逻辑性聚:模块完成的诸任务逻辑上相关。该类聚的缺点是执行中要从模块外引入用作判断的开关量,从而增加了块间偶合(控制偶合)。 时间性聚:如果一个模块包含的诸任务必须在同一时间段执行,那么称之为时间性聚 过程性聚:模块的过程性聚度是指模块成份彼此相关,并且必须按特定的次序在本模块执行; 通讯性聚:是指模块中各组成成分都将对某个数据构造的同一区域进展操作,以到达通信的目的。 顺序性聚:一个模块的各处理成分均与同一功能相关,且这些处理必须顺序执行,通常,一个处理成分的输出是另一个处理成分的输入。 功能性聚:模块所有成分形成一个整体,完成单个功能,那么称功能聚,功能聚是最高程度的聚形式。27耦合度的七个等级耦合度是模块独立性最显著特征。耦合度按其上下程度可分为七级,松耦合是软件设计一直追求的目标。 非直接耦合: 模块不依赖另一个模块能独立工作,这是最松的耦合。 数据耦合: 两模块间通过参数交换数据信息,那么称这两模块为数据耦合。 特征耦合:模块之间除传递关键数据外还附加公共数据。 控制耦合: 如果两模块间通过参数交换信息,此时假设传递的信息中含有控制信息,那么为控制耦合。 外部耦合: 当假设干模块均与同一个外部环境关联,它们之间便存在外部耦合。 公共耦合: 当假设干模块通过全局的数据环境相互作用时,它们之间存在公共耦合。 容耦合:当一个模块使用另一个模块部的数据或控制信息;一个模块直接转移到另一个模块部等,模块间的耦合就是容耦合。28 简述模块的作用域与控制域的概念及其相关设计原那么。模块的作用域:从功能面考虑,受模块一个判定影响的所有模块的集合;模块的控制域:从构造面考虑,包括它自己及其所有下属模块的集合。相关设计原那么是:模块的作用域应在控制域之。29详细设计的表达式有哪些?1.伪代码(Pseudocode):是一种算法描述语言,也称PDL语言(Program Design Language)。伪代码介于自然语言与编程语言之间,用伪代码描述的算法可以容易用任一种编程语言实现。伪代码表达算法必须构造清晰、代码简单、可读性好。2.程序流程图:用图形符号表达算法,直观表达循环、分支等复杂构造,是喜闻乐见的表现形式。3.盒图(N-S) (Nassi和Shneiderman):也是一种图形符号表达式,同样可以表达各种流向控制,但比程序流程图紧凑、功能域明确。4.PAD图(PAD-Problem Analysis Diagram)28:同样是用图形符号表达算法,但它具有构造化的表达式,因此构造十分清晰,很容易翻译成程序代码。PAD支持自顶向下,逐步求精法的使用。判定表与判定树:对于规那么较多,判定条件较复杂的情况,宜采用这两种法表达。5.判定表与判定树:对于规那么较多,判定条件较复杂的情况,宜采用这两种法表达。30 简述面向数据流的构造化分析SA法中,有哪些建模法?功能建模:数据流图DFD(Data Flow Diagram)+ 数据字典DD(Data Dictionary);数据建模:实体关系图ERD(Entity Relation Diagram);行为建模:状态转换图STD(State Transform Diagram);加工说明PESPEC(Process SPECification)和判定表等辅助工具。31 简述数据流图DFD的图形符号有哪些?数据流:表示数据流的名称和数据的流向(从加工出发或流向加工);外部实体:系统外与系统交互的人或实体;数据加工:数据处理;数据存储:数据进展持久保存的环节;32简述数据字典的作用、容和组成元素有哪些?数据流图描述了数据加工,但没有描述数据的容。数据流图必须与描述并组织数据条目的数据字典DD(Data Dictionary)配套使用。数据字典描述的对象:描述数据流图中出现的所有数据和加工。这里的数据描述是概念性的,属数据构造的抽象描述;加工采用加工小说明进展概念性的描述。数据字典的组成元素包括:数据流条目、数据存储条目、数据项条目;加工条目(也称为小说明);33 简述面向对象的根本概念有哪些?1对象与面向对象对象Object:即表示客观世界中的某个具体的事物。面向对象Object Oriented:是人类的活动,是人类认知、观察客观事物的法论。2面向对象的抽象与分类3类的封装与对象的整体性4关联性与交互性客观事物都不是孤立存在的,万物之间相互依存、相互交流。关联性表达客观事物的社会性、共存性、组织性,是静态的构造描述。消息机制是对象的交互性,表示对象生存环境的依赖性。5继承性对事物的分类本身就表达继承性。软件开发利用继承性可对Object更好地分类,软件构造更谨,代码的复用性更强。6多态性对象在不同的条件下,同样的行为会表现不同的效果,这就是Object的多态(polymorphism)。面向对象编程语言提供抽象类、接口、重载等技术支持多态的实现。34面向对象的五大特性有哪些?面向对象的特性有抽象性、封装性、继承性、多态性和消息机制等五大特性。35 简述面向对象开发过程的容有哪些?需求获取:开发者以OO的观点(OOV)来观察客观世界的目标即获取需求,然后用自然语言写到需求规格说明(OOS)中,也就是对客观世界的最高层抽象。面向对象分析OOA (Object Oriented Analysis)与面向对象设计OOD(Object Oriented Design)。面向对象编程Object Oriented Program(OOP)与面向对象测试Object Oriented Testing (OOT)是代码实现过程,它依赖于编程语言和工具。软件维护Object Oriented Software Maintenance(OOSM)。36 与传统的软件开发法相比较,面向对象开发的主要优点有哪些?1自然性即客观性2操作数据对象而非数据实体3阶段衔接平滑4构造性好、复用性强5提高扩展性和维护性37 简述UML中定义了那些图形符号?并简述起作用。用例图(Use Case) 描述系统参与者与领域问题的功能类图(Class) 描述系统的逻辑构造,类、接口及它们的协作关系包图(Package )描述类的复用组织分组对象图(Object) 描述类的实例在某时刻的关系构件图(ponent) 描述系统按构件组成上的关系配置图(Deployment) 描述系统运行环境的配置情况时序图(Sequence) 描述某些对象共同合作完成某项功能而按时间顺序进展的消息传递协作图(Collaboration) 描述某些对象共同合作完成某项功能的依赖关系活动图(Activity) 描述某个用例按事件流转所经历的的活动,即业务流程状态图(State chart) 描述某个业务流程按事件流转所经历的状态,即状态机38 简述用例图中有哪些模型元素?并简述其含义?参与者:指存在于系统外部并与该系统发生交互的人或其他系统,代表系统的使用者或使用环境。用例(Use Case) ,用例用于表示系统提供的效劳,它定义了系统是如与参与者交互,描述了参与者与系统之间的交互过程。角色与用例间的关系关联,它表示参与者与系统中的哪些用例交互。用例之间的关系:包含<<include>>和扩大<<extend>>关系以及泛化关系。参与者之间的泛化关系。39 简述类图中有哪些模型元素?并简述其含义?提示:一切可以出现在类图中的元素。类:类名、属性、法可见性、作用域特殊类:接口类之间的关系的定义、表示和属性:关联、依赖、聚合、组合、泛化、实现。各种类关系之间的关系。40 简述包图中有哪些模型元素?并简述其含义?提示:一切可以出现在包图中的元素。包和包之间的关系。41简述活动图中有哪些构成元素?并简述这些元素的含义?42 简述OOA模型的构造OOA的核心任务是搞清用户需求,最终要建立起OOA模型。UML的OOA模型由“用例模型和“概念模型两大局部组成。用例模型,是将用自然语言描述的领域问题,转换成UML语言表达的模型,主要面向用户,反映用户需求。完整的用例模型由用例图和业务场景描述两个局部组成,用例图表示功能的划分;业务场景描述那么对每个用例的事件流进展描述;概念模型类模型/构造模型/静态模型。将用例模型映射成类模型:从用例模型中找出类,面向设计人员。主要工作是:根据用例图进展类的划分与封装;描述类间的静态关系与构造;用交互图表达类对象间的消息传递。43 对象间的可访问性属性可见性:B是A的一个属性关联、聚合;参数可见性:B的对象是A的一个法的参数;局部声明可见性:B的对象是在A的一个法中声明的一个局部变量;全局可见性:B的对象在某种程度上全局可见;44对象持久化对象持久化常用技术实体类的实例称为数据对象,对象持久化主要用于数据对象的持久化,简称数据持久化。一个数据对象的持久化就是保存到实体表中的一条记录,对实体对象的访问就是操作属性的值。对象持久化常用技术对象的序列化指将对象的相关信息对象序列号、属性名、属性值等转换为字节流,然后再把字节流写入数据流。可以把对象这些信息存储在本地的文件里,也可以把它通过网络传输到远程。通过对象反序列化,得到原对象完全一样的副本。对象持久化到数据库中数据库可以是对象数据库或关系数据库。用XMLeXtensible Markup Language存储。45 “实体模型到“关系模型的OR映射(1)一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。(2)对象关系(一对一、一对多、多对多)的映射可能有多种情况,但一般映射为一个表或多个表,在表间定义相应的主键PKPrimary key和外键 FKForeign key 建立实体间的关系。(3) 单一继承的泛化关系可以对超类、子类分别映射表,也可以不定义父类表而让子类表拥有父类属性;反之,也可以不定义子类表而让父类表拥有全部子类属性。(4) 对多重继承的超类和子类分别映射表,对屡次多重继承的泛化关系也映射一个表。(5) 对映射后的库表进展冗余控制调整,使其到达合理的