收藏 分享(赏)

软件工程答案整理.doc

上传人:精品资料 文档编号:10588738 上传时间:2019-12-02 格式:DOC 页数:21 大小:83.47KB
下载 相关 举报
软件工程答案整理.doc_第1页
第1页 / 共21页
软件工程答案整理.doc_第2页
第2页 / 共21页
软件工程答案整理.doc_第3页
第3页 / 共21页
软件工程答案整理.doc_第4页
第4页 / 共21页
软件工程答案整理.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、填空1软件测试的目的是尽可能多地发现软件中存在的 错误 ,将 测试结果 作为纠错的依据。 2测试阶段的基本任务是根据软件开发各阶段的 和程序的 ,精心设计一组 ,利用这些实例执行 ,找出软件中潜在的各种 和 。3测试用例由 和预期的 两部分组成。4软件测试方法一般分为两大类: 方法和 方法。5动态测试通过 发现错误。根据 的设计方法不同,动态测试又分为 与 两类。6静态测试采用 和 的手段对程序进行检测。7人工审查程序偏重于 的检验,而软件审查除了审查 还要对各阶段 进行检验。8计算机辅助静态分析利用 工具对测试程序进行 分析。9黑盒法只在软件的 处进行测试,依据 说明书,检查程序是否满足 要

2、求。10白盒法必须考虑程序的 和 ,以检查 的细节为基础,对程序中尽可能多的逻辑路径进行 。11白盒测试是 测试,被测对象是 ,以程序的 为基础设计测试用例。12逻辑覆盖是对程序内部有 存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为 、 、 、 、 和 6 种覆盖技术。13实际的逻辑覆盖测试中,一般以 覆盖为主设计测试用例,然后再补充部分用例,以达到 覆盖测试标准。14循环覆盖是对程序内部有 存在的逻辑结构设计测试用例,它通过限制 来测试。15基本路径测试是在程序 基础上,通过分析控制构造的 复杂性,导出 集合,从而设计测试用例。16黑盒测试是 测试,用黑盒技术设计测试用例有

3、4 种方法: 、 、 和 。17等价类划分从程序的 说明,找出一个输入条件(通常是 或 ) ,然后将每个输入条件划分成两个或多个 。18边界值分析是将测试 情况作为重点目标,选取正好等于、刚刚大于或刚刚小于 的测试数据。如果输入或输出域是一个有序集合,则应选取集合的 元素和 元素作为测试用例。19在测试程序时,根据经验或直觉推测程序中可能存在的各种错误,称为 。20因果图的基本原理是通过画 图,把用自然语言描述的 转换为 ,最后为 每一列设计一个测试用例。21测试的综合策略是在测试中,联合使用各种 方法。通常先用 法设计基本的测试用例,再用 法补充一些必要的测试用例。22软件测试过程中需要 3

4、 类信息: 、 和 。23软件测试一般经过 4 个测试: 、 、 和 。24 指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误,它涉及 和 的文档。25单元测试主要测试 的 5 个基本特征: 、 、 、 和 。26在单元测试中,需要为被测模块设计 模块和 模块。 用来模拟被测模块的上级调用模块, 用来代替被测模块所调用的模块。27集成测试指在 测试基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。也称 测试或 测试。28集成测试的方法有两种: 和 。29渐增式测试有两种不同的组装模块的方法: 和 。30自顶向下渐增式测试不需

5、要编写 模块,只需要编写 模块,其步骤是从 模块开始,沿着被测程序的 的控制路径逐步向下测试,它有两种组合策略: 和 。31自底向上渐增式测试不需要编写 模块,只需要编写 模块。32确认测试指检查软件的 与 是否与 说明书中确定的指标相符合,又称 测试。33确认测试在模拟环境下运用 测试方法,由 和 参加的测试。34确认测试开始前需要制定 计划,结束后要写出 报告。其测试用例要选用 的数据。35软件配置审查的任务是检查软件的所有文档资料的 和 。36调试也称 ,是在成功的测试之后才开始进行,其目的是确定错误的 和 ,并改正错误。37调试技术包括 、 、 和 。38回溯法调试是从 出发,而归纳法

6、调试是从 入手。39被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为测试。40用等价类划分法设计一个测试用例时,使其覆盖 尚未被覆盖的合理等价类。41用等价类划分法设计一个测试用例时,使其覆盖 不合理等价类。42在单元测试时,需要为被测模块设计 。43在集成测试时有两种测试方法,它们是 。44软件测试是为了 而执行程序的过程。45运行被测程序的方法称为 测试。46动态测试中,主要测试软件功能的方法称为 法。47选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为 。48要覆盖含循环结构的所有路径是不可能的,一般通过限制 来测试。49用等价类划

7、分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等在和 。50凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是 。51集成测试中的具体方法是 。52确认测试阶段的两项工作是 。53在单元测试中,测试一个模块时,需要设计 。54软件配置管理,简称 SCM,它用于整个软件工程过程。其主要目标是: 、 、 。55 SCM 是一组管理整个软件生存期各阶段中 的活动。56基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个 。2. 文档资料 内部结构 测试用例 程序 错误 缺陷 3. 输入数据 输出数据 4. 动态测

8、试 静态测试 5. 运行程序 测试用例 黑盒测试 白盒测试 6. 人工检测 计算机辅助静态分析 7. 编码质量 编码 软件产品 8. 静态分析 特性 9. 接口 需求规格 功能 10. 内部结构 处理过程 处理过程 测试 11. 结构 源程序 内部逻辑 12. 判定 语句覆盖 判定覆盖 条件覆盖 判定/ 条件覆盖 条件组合覆盖 路径覆盖 13. 条件组合 路径 14. 循环 循环次数 15. 控制流程图 环路 基本路径 16. 功能 等价类划分 边界值分析 错误推测 因果图 17. 功能 一句话 一个短语 等价类 18. 边界 边界值 第一个 最后一个 19. 错误推测法 20. 因果 功能说

9、明 判定表 判定表 21. 测试 黑盒 白盒 22. 软件配置 测试配置 测试工具 23. 单元测试 集成测试 确认测试 系统测试 24. 单元测试 编码 详细设计 25. 模块 模块接口 局部数据结构 重要的执行路径 错误处理 边界条件 26. 驱动 桩 驱动模块 桩模块 27. 单元 组装 联合 28. 非渐增式测试 渐增式测试 29. 自顶向下结合 自底向上结合 30. 驱动 桩 顶层 软件结构图 深度优先策略 宽度优先策略 31. 桩 驱动 32. 功能 性能 需求规格 有效性 33. 黑盒 专门测试人员 用户 34. 测试 测试分析 实际运用 35. 完整性 正确性 36. 纠错 原

10、因 位置37. 简单调试 归纳法调试 演绎法调试 回溯法调试 38. 程序产生错误的地方 测试结果发现的线索39静态 40尽可能多的 41一个 42驱动模块与桩模块 43渐增式和非渐增式 44发现错误 45动态测试 46黑盒法 47判定覆盖 48循环次数 49两个不合理的等价类 50错误推测法 51渐增式和非渐增式测试方法 52进行确认测试和软件配置审查 53驱动模块和桩模块 54标识变更 控制变更 确保变更正确地实现 报告有关变更 55变更 56检查点1程序设计语言的特性主要有心理特性、工程特性和 技术特性 三个方面。2程序语言的工程特性主要表现为可移植性、 开发工具的可利用性 、软件的可重

11、用性和可维护性。3为了提高程序的易读性,同时为减少错误,提高软件开发效率,编码时应注意养成良好的 程序设计风格 。4程序加注释对理解程序提供了明确指导,根据作用不同注释分 序言性注释 和 功能性注释 。5软件需求分析之后,软件的设计、编码、测试与语言的特性有很大的关系,这个特性主要是语言的 技术 特性。6语句构造的原则是 简单直接 ,不能为了追求效率而使代码复杂化。7 FORTRAN 语言上世界上第一个被正式推广应用的计算机语言,它不仅面向科学计算,数据处理能力也极强。8 汇编语言 是面向机器的,可以完成高级语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。9为了使数据定义更容易理解

12、和维护,一个语句说明多个变量时,各变量名按字典 排列。10 编码 是将详细设计得到的处理过程的描述转换为基于某种计算机语言的程序。1软件原来没有帮助信息,使用不方便,现在要增加帮助信息。这种维护性活动称之为 完善性维护 。2调试也称 纠错 ,是在成功的测试之后才开始进行,其目的是确定错误的原因 和 位置 ,并改正错误。3调试技术包括 简单调试 、 归纳法调试 、 演绎法调试 和 回溯法调试 。4回溯法调试是从 程序产生错误的地方 出发,而归纳法调试是从 测试结果发现的线索 入手。简答题1 简述 1983 年 IEEE 为软件下的定义。5822926计算机程序、方法、规则、相关的文档资料以及在计

13、算机上运行程序时所必需的数据。2 简述软件危机的表现有哪些?以及解决软件危机的途径有哪些? 软件危机的主要表现包括:(1) 软件开发进度难以预测,开发成本难以控制,导致超预算、超时;(2) 产品功能难以满足用户需求;(3) 软件产品质量无法保证;(4) 软件缺少适当的文档资料,维护困难; (5) 软件成本超过硬件成本;(6) 软件开发生产率的提高速度跟不上计算机应用普及深入的趋势;解决软件危机的途径有:1 管理措施:项目管理、配置管理、过程管理、质量控制 2 技术措施:开发过程、开发技术与方法和开发工具 3 软件工程的定义1993 年 IEEE 给出的定义:软件工程是: 系统的、规范的、可度量

14、的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。 ”软件工程是围绕软件开发的一门交叉学科: 软件工程=计算机科学+工程学+管理学4 软件工程的 10 个知识领域软件工程过程 ( Software Engineering Process)软件工程工具和方法 ( Software Engineering Tools and Methods )软件需求(Software Requirement)l 软件设计 (Software Design )软件构造 (Software Construction)软件测试 (Software Testing)软件维护 (Softw

15、are Maintenance)软件配置管理 (Software Configuration management)软件工程管理 ( Software Engineering management )软件质量 ( Software Quality)5 软件工程的目标是什么,软件工程的三要素都是什么?软件工程的目标:软件工程必须以有组织的质量保证为基础,进行全面质量管理,不断地过程改进使软件工程方法走向成熟。软件工程的三要素包括:过程、方法和工具过程为及时合理地开发出满足用户需求的计算机软件而进行一系列有组织的活动。过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、

16、里程碑的建立、质量的保证和变更的管理。方法为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的开发活动如何来做。开发方法经历了从面向结构、面向对象、面向组件到面向服务的发展工程。 工具为过程和方法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件工程 (CASE ,Computer Aided Software Engineering)。6 软件工程的七条基本原理美国著名的软件工程专家巴利玻姆(Barry Boehm) 提出了软件工程的七条基本原理:1用分阶段的生命周期计划严格管理;2坚持进行阶段

17、评审; 3实行严格的产品控制;4采纳现代程序设计技术; 5结果应能清楚地审查; 6开发小组的人员应少而精;7承认不断改进软件工程实践的必要性。7 简述软件过程的定义,软件过程又可以分为那几个类型?软件过程(Software Procedure)是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件过程可概括为基本过程、支持过程和组织过程等三种类型。其中,基本过程包括:获取过程、供应过程、开发过程、运作过程和维护过程。支持过程包括:文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程和问题解决过程等过程。 组织过程包括:管理过程、基础设施过程、改进过程

18、和培训过程。 8 里程碑( Mile Stone )思想阶段工作的目标进行总结、评审、调整和部署下一个里程碑。目的:合理分配,细化管理“粒度” ,降低项目风险。9 基线思想基线是指一个(或一组)配置项在项目生命周期的不同时间点的一种状态,各阶段有各阶段的基线:需求基线、设计基线、测试基线等。基线一旦建立后变化需要受控制。10 简述软件生存周期的概念,说明软件生存周期划分为那几个主要时期?每个时期有包括哪些主要阶段?软件生存周期是指软件产品从定义到开发、使用和维护,直到最终被弃用的时期,称为生存周期。生存周期的可划分为计划时期、开发时期和运行时期等三个主要时期。其中计划时期包括问题定义和可行性研

19、究两个阶段。开发时期包括需求分析、总体设计、详细设计和实现等四个阶段。运行时期的又称为运行和维护阶段。11 简述教材中介绍了那些软件开发模型?这些模型各有什么特点?教材中重点介绍了瀑布、原型、增量、螺旋四个传统模型和 RUP、XP 两个现代模型。其中,瀑布模型严格按照生存周期开发软件,每个阶段必须完成规定的、完整、准确的合格文档,前一阶段的输出文档就是后一阶段的输入文档。其主要特点包括:活动间具有顺序性和依赖性;推迟实现的观点;质量保证的观点;快速原型模型法是开发人员在一个基本的需求的基础上快速开发出一个软件原型,然后由用户使用和评价原型、开发人员根据用户意见再修改原型,然后再使用评价再修改、

20、直至将原型进化为最终产品。快速原型模型的特点包括: 做出系统原型,及早向用户展示系统要实现的界面及功能,增强用户的合作信心; 直观化的表达,容易交流,消除理解上的歧义; 修改集中在前期的原型确认上,较大程度减少后期实施中的返工。 入手快,加快开发进度;增量模型是一种演化模型,先完成一个系统子集的开发,再按同样的开发步骤增加子集,如此递增下去直至满足全部系统需求。每个增量可按快速原型法进行。增量模型的特点包括: 无须等待获取完整需求就可入手,尽快见到成果,增强双方信心; 分步开发,降低复杂性和难度,减少技术风险,并可并行开发; 边开发边投入,可及早发现问题,减少投资风险; 各个子集是逐渐并入已有

21、的系统中,加入子集不能破坏已构造好的部分,这需要软件具备开放式的体系结构; 适用于需求不完整的软件开发,指的是需求逐渐摸清、逐步完善,并非随意改变,需求改变过大会导致整体性失控。后面要介绍的 XP(极限编程)属于该模型。螺旋模型(Spiral model)是一种融合了瀑布模型、快速原型模型和增量模型的演进模型,并引入风险分析机制。适合大型复杂的系统开发。螺旋模型特点 包括:多种模型结合的一种演进模型,融合了瀑布模型、快速原型和增量模型的所有特点,融进了循环往复、迭代演进的思想; 增加风险分析,一旦风险成立,原方案应终止、修订,力求风险可控 客户始终参与每个阶段的开发,每个阶段的成果需客户确认,

22、避免错误的积累。 统一过程 RUP (Rational Unified Process)是由 Rational 公司在推出统一建模语言 UML 后,推出的一个软件开发框架 RUP,称为软件统一开发过程。12 统一过程 RUP 定义了那几个主要阶段? 初始阶段(Inception):主要完成商业需求,确定项目边界。里程碑是生命周期目标(Lifecycle Objective),评价项目基本的生存能力。 细化阶段(Elaboration):主要完成领域问题分析和软件设计。获取用户需求(功能和非功能需求) ,建立需求模型;进一步确立体系结构和设计软件结构等工作。里程碑是生命周期结构(Lifecycl

23、e Architecture)。 构造阶段(Construction):主要完成系统实现、测试,里程碑是初始功能(Initial Operational),产品版本常被称为“beta”版。 交付阶段(Transition):重点是确保软件对最终用户是可用的。里程碑:产品发布(Product Release)13 统一过程 RUP 工作流6 个核心过程工作流(Core Process Workflows) 商业建模(Business Modeling):弄清项目边界和约束,做出计划。 需求(Requirements):描述系统应做什么,开发人员和用户达成需求基线。 分析和设计(Analysis

24、功能需求用软件行业术语表达:通常是需求建模的结果即目标系统的逻辑模型,如结构化的功能模型、数据模型、行为模型,面向对象的类模型等。4. 非功能需求 特性是指一些非功能需求,是满足业务需求的性能要求。如界面的交互性、数据的安全性、数据的事务性、用户的并发性、响应的快速性、操作的实时性、错误与异常的恢复性、软件的容错性等等。 项目的失败或拖延一般不是在功能上,而恰恰倒是在性能要求上,因为这些性能与软件的体系结构有关,与构成系统的网路与硬件环境等底层技术有关,往往超越一般开发人员的技术能力。22 需求获取的一般方法 需求获取方法以采访、观察、座谈、对先前的系统版本的测试等。必要时采用快速原型法。 先

25、集中在使用者对系统的观点上,以收集用户原始资料,数据、工作方式、工作流程、使用要求等为工作起点,深入到部门、车间、班组,做好原始纪录; 然后根据对问题及环境的理解与开发经验,改正用户需求的模糊、歧义和不一致性要求,排除用户的不合理要求,挖掘用户尚未提出但具有价值的潜在需求,使用户需求逐步精确化、一致化和完全化; 需求获取非一次完成:需要往复进行、逐步深化。 需求获取的内容:写进“需求规格说明书” ,确认。23 需求获取的策略 循序渐进的策略; 确定优先级:先进行重点的需求调研,有助于识别出重大的风险,并为制定迭代计划提供指导; 不要陷入技术:需求未明确,应回避对技术问题讨论。 挖掘用户需求:

26、“诱导式”就是挖掘用户需求。客户并非 IT 专业人士,需求的概念是模糊的、笼统的,而且尺度难以把握,预测潜在需求。 区分不必要的需求:客户对有些需求提不出来,自然也会提出一些不必要的需求。24 简述概要设计和详细设计的内容。软件设计包括概要设计和详细设计。概要设计又分为体系结构设计和领域问题结构设计。体系结构设计:是支撑和管理软件运行的环境设计。由于现代的软件是处在操作系统、网络、各种服务器共同搭建的环境下运行,并且具有并发、安全、事务等多方面的管理,是软件设计优先考虑的问题。领域问题结构设计:满足需求的软件功能设计,核心所在。将领域问题的分析模型细化成软件结构模型,也就是划分软件的模块结构及

27、确定模块之间的关系。详细设计又分为如下三个部分: 对模块内部的过程和数据结构进行设计。也就是对模块内进行算法分析和程序设计。 人机交互界面的具体设计,还有与其它外部系统接口设计。 完成对数据库的物理设计概要设计是根据需求确定软件和数据的总体框架;详细设计是进一步精化成软件的算法和数据结构。25 25 简述衡量软件模块独立性的度量标准有哪些?模块独立性是指模块能够完成独立的功能;模块符合信息隐藏和信息局部化原则;模块间关连和依赖程度尽量小。衡量软件模块独立性的度量标准的指标有取决于模块的内部特征的指标内聚度和取决于模块的外部特征的指标耦合度。内聚度:一个模块内部各个元素间(语句和程序段)彼此的紧

28、密程度的度量。耦合度:指软件结构中各模块间相互联系紧密程度的一种度量。26 简述内聚度的七个等级?内聚度表示一个模块内部各成分之间彼此结合的紧密程度。内聚度按其高低程度可分为七级,高内聚度模块独立性强,设计尽可能提高模块内聚度。 偶然性内聚:是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。 逻辑性内聚:模块内完成的诸任务逻辑上相关。该类内聚的缺点是执行中要从模块外引入用 作判断的开关量,从而 增加了块间偶合(控制偶合)。 时间性内聚:如果一个模块包含的诸任务必须在同一时间段内执行,则称之为时间性内聚 过程性内聚:模块的过程性内聚度是指模块内成份彼此相关,并且必

29、须按特定的次序在本模块内执行; 通讯性内聚:是指模块中各组成成分都将对某个数据结构的同一区域进行操作,以达到通信的目的。 顺序性内聚:一个模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行,通常,一个处理成分的输出是另一个处理成分的输入。 功能性内聚:模块内所有成分形成一个整体,完成单个功能,则称功能内聚,功能内聚是最高程度的内聚形式。27 耦合度的七个等级耦合度是模块独立性最显著特征。耦合度按其高低程度可分为七级,松耦合是软件设计一直追求的目标。 非直接耦合: 模块不依赖另一个模块能独立工作,这是最松的耦合。 数据耦合: 两模块间通过参数交换数据信息,则称这两模块为数据耦合。 特征耦

30、合: 模块之间除传递关键数据外还附加公共数据。 控制耦合: 如果两模块间通过参数交换信息,此时若传递的信息中含有控制信息,则为控制耦合。 外部耦合: 当若干模块均与同一个外部环境关联,它们之间便存在外部耦合。 公共耦合: 当若干模块通过全局的数据环境相互作用时,它们之间存在公共耦合。 内容耦合:当一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一个模块内部等,模块间的耦合就是内容耦合。28 简述模块的作用域与控制域的概念及其相关设计原则。 模块的作用域:从功能方面考虑,受模块内一个判定影响的所有模块的集合;模块的控制域:从结构方面考虑,包括它自己及其所有下属模块的集合。相关设计

31、原则是:模块的作用域应在控制域之内。29 详细设计的表达方式有哪些?1.伪代码(Pseudocode):是一种算法描述语言,也称 PDL 语言(Program Design Language)。伪代码介于自然语言与编程语言之间,用伪代码描述的算法可以容易用任何一种编程语言实现。伪代码表达算法必须结构清晰、代码简单、可读性好。2.程序流程图:用图形符号表达算法,直观表达循环、分支等复杂结构,是喜闻乐见的表现形式。3.盒图(N-S) (Nassi 和 Shneiderman):也是一种图形符号表达方式,同样可以表达各种流向控制,但比程序流程图紧凑、功能域明确。4.PAD 图(PAD-Problem

32、 Analysis Diagram)28:同样是用图形符号表达算法,但它具有结构化的表达方式,因此结构十分清晰,很容易翻译成程序代码。PAD 支持自顶向下,逐步求精方法的使用。判定表与判定树:对于规则较多,判定条件较复杂的情况,宜采用这两种方法表达。 5.判定表与判定树:对于规则较多,判定条件较复杂的情况,宜采用这两种方法表达。 30 简述面向数据流的结构化分析 SA 方法中,有哪些建模方法?功能建模:数据流图 DFD(Data Flow Diagram)+ 数据字典 DD(Data Dictionary);数据建模:实体关系图 ERD(Entity Relation Diagram);行为建

33、模:状态转换图 STD(State Transform Diagram);加工说明 PESPEC(Process SPECification)和判定表等辅助工具。31 简述数据流图(DFD)的图形符号有哪些?数据流:表示数据流的名称和数据的流向(从加工出发或流向加工);外部实体:系统外与系统交互的人或实体;数据加工:数据处理;数据存储:数据进行持久保存的环节;32 简述数据字典的作用、内容和组成元素有哪些?数据流图描述了数据加工,但没有描述数据的内容。数据流图必须与描述并组织数据条目的数据字典DD(Data Dictionary)配套使用。数据字典描述的对象:描述数据流图中出现的所有数据和加工

34、。这里的数据描述是概念性的,属数据结构的抽象描述;加工采用加工小说明进行概念性的描述。数据字典的组成元素包括:数据流条目、 数据存储条目、数据项条目;加工条目(也称为小说明);33 简述面向对象的基本概念有哪些?1对象与面向对象对象(Object):即表示客观世界中的某个具体的事物。面向对象(Object Oriented):是人类的活动,是人类认知、观察客观事物的方法论。2面向对象的抽象与分类3类的封装与对象的整体性 4关联性与交互性客观事物都不是孤立存在的,万物之间相互依存、相互交流。关联性表达客观事物的社会性、共存性、组织性,是静态的结构描述。消息机制是对象的交互性,表示对象生存环境的依

35、赖性。5继承性对事物的分类本身就体现继承性。软件开发利用继承性可对 Object 更好地分类,软件结构更严谨,代码的复用性更强。6多态性 对象在不同的条件下,同样的行为会表现不同的效果,这就是 Object 的多态(polymorphism)。面向对象编程语言提供抽象类、接口、重载等技术支持多态的实现。34 面向对象的五大特性有哪些?面向对象的特性有抽象性、封装性、继承性、多态性和消息机制等五大特性。35 简述面向对象开发过程的内容有哪些? 需求获取:开发者以 OO 的观点(OOV)来观察客观世界的目标即获取需求,然后用自然语言写到需求规格说明(OOS)中,也就是对客观世界的最高层抽象。 面向

36、对象分析 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 简

37、述 UML 中定义了那些图形符号?并简述起作用。用例图(Use Case) 描述系统参与者与领域问题的功能 类图(Class) 描述系统的逻辑结构,类、接口及它们的协作关系 包图(Package ) 描述类的复用组织分组 对象图(Object) 描述类的实例在某时刻的关系 构件图(Component) 描述系统按构件组成上的关系 配置图(Deployment) 描述系统运行环境的配置情况 时序图(Sequence) 描述某些对象共同合作完成某项功能而按时间顺序进行的消息传递 协作图(Collaboration) 描述某些对象共同合作完成某项功能的依赖关系 活动图(Activity) 描述某个用

38、例按事件流转所经历的的活动,即业务流程 38 简述用例图中有哪些模型元素?并简述其含义?参与者:指存在于系统外部并与该系统发生交互的人或其他系统,代表系统的使用者或使用环境。用例(Use Case) ,用例用于表示系统提供的服务,它定义了系统是如何与参与者交互,描述了参与者与系统之间的交互过程。角色与用例间的关系关联 ,它表示参与者与系统中的哪些用例交互。用例之间的关系:包含和扩充关系以及泛化关系。参与者之间的泛化关系。39 简述类图中有哪些模型元素?并简述其含义?提示:一切可以出现在类图中的元素。类:类名、属性、方法(可见性、作用域)特殊类:接口类之间的关系的定义、表示和属性:关联、依赖、聚

39、合、组合、泛化、实现。各种类关系之间的关系。40 简述包图中有哪些模型元素?并简述其含义?提示:一切可以出现在包图中的元素。包和包之间的关系。41 简述活动图中有哪些构成元素?并简述这些元素的含义?42 简述 OOA 模型的结构OOA 的核心任务是搞清用户需求,最终要建立起 OOA 模型。UML 的 OOA 模型由“用例模型”和“概念模型”两大部分组成。用例模型,是将用自然语言描述的领域问题,转换成 UML 语言表达的模型,主要面向用户,反映用户需求。完整的用例模型由用例图和业务场景描述两个部分组成,用例图表示功能的划分;业务场景描述则对每个用例的事件流进行描述;概念模型(类模型/结构模型/静

40、态模型) 。将用例模型映射成类模型:从用例模型中找出类,面向设计人员。主要工作是:根据用例图进行类的划分与封装;描述类间的静态关系与结构;用交互图表达类对象间的消息传递。43 对象间的可访问性 属性可见性:B 是 A 的一个属性(关联、聚合) ; 参数可见性:B 的对象是 A 的一个方法的参数; 局部声明可见性:B 的对象是在 A 的一个方法中声明的一个局部变量; 全局可见性:B 的对象在某种程度上全局可见;44 对象持久化 对象持久化常用技术实体类的实例称为数据对象,对象持久化主要用于数据对象的持久化,简称数据持久化。 一个数据对象的持久化就是保存到实体表中的一条记录,对实体对象的访问就是操

41、作属性的值。对象持久化常用技术 对象的序列化指将对象的相关信息(对象序列号、属性名、属性值等)转换为字节流,然后再把字节流写入数据流。可以把对象这些信息存储在本地的文件里,也可以把它通过网络传输到远程。通过对象反序列化,得到原对状态图(State chart) 描述某个业务流程按事件流转所经历的状态,即状态机 象完全相同的副本。 对象持久化到数据库中数据库可以是对象数据库或关系数据库。 用 XML(eXtensible Markup Language)存储。45 “实体模型”到“关系模型”的 OR 映射(1) 一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。

42、(2) 对象关系(一对一、一对多、多对多)的映射可能有多种情况,但一般映射为一个表或多个表,在表间定义相应的主键 PK(Primary key)和外键 FK(Foreign key ) 建立实体间的关系。(3) 单一继承的泛化关系可以对超类、子类分别映射表,也可以不定义父类表而让子类表拥有父类属性;反之,也可以不定义子类表而让父类表拥有全部子类属性。(4) 对多重继承的超类和子类分别映射表,对多次多重继承的泛化关系也映射一个表。(5) 对映射后的库表进行冗余控制调整,使其达到合理的关系范式。46 软件测试的定义软件测试是为了发现错误而运行程序的过程;软件测试的目的是发现程序中的错误,是为了证明

43、程序有错, 而不是证明程序无错;测试对象不仅是程序,还应该包括开发过程中产生的所有产品,包括文档,其目的是为了尽早地、尽可能多的发现并排除软件中潜在的错误。47 软件测试的基本原则 Who 来测试?测试工作应该由独立的、专业的软件测试机构来完成,设计人员和程序员要参与测试;对测试结果一定要有一个确认的过程,一般由角色 A 测试出来的错误,一定要有一个角色 B 来确认,严重的错误可以召开评审会进行讨论和分析; 测试 What?程序员交付的模块、系统和文档; 测试 Extent?设计测试用例,充分覆盖所有条件或所有语句即可; When 测试?尽早和不断的测试,即将这种“测试”贯穿于软件开发的各个阶

44、段,坚持各个阶段的技术评审,以便尽早地发现和预防错误; How 测试?设计测试用例时不仅要考虑到合法的输入,还要考虑到不合法的输入以及各种边界条件;对发现错误较多的程序模块,应进行重点测试。48 软件缺陷 ,软件缺陷的属性:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的属性:缺陷标识、缺陷类型、缺陷严重、程度缺陷、优先级、缺陷状态、缺陷起源、缺陷来源、缺陷根源等。 49 简述测试用例的概念 测试用例(Test Case) 是关于具体测试步骤的文档,以判断被测软件的工作是否正常。内容包括:测试目标、测试

45、环境、输入数据、测试步骤、预期结果等。从表现形式上看,测试用例可以是纯文本的文档,也可以是用程序设计语言编写的一段代码。50 简述基本测试方法的分类情况测试方法分类 内容走查静态测试评审语句覆盖 语句覆盖是最简单、最弱覆盖。它只覆盖可执行语句至少执行一次。判定覆盖 判定覆盖又叫分支覆盖,是对每个判定式取真、假各一次,使每个判定的每个分支都至少执行一次,同时满足语句覆盖。条件覆盖 条件覆盖是把程序中每个判断的每个条件为真和假各取值一次。条件覆盖深入到判定中的每个条件,但不一定满足判定覆盖的要求。判定/条件覆盖判定/条件覆盖能同时满足判定、条件两种覆盖标准的取值。就是使得判定中每个条件的所有可能取

46、值至少执行一次,同时每个判定本身所有取值至少执行一次。逻辑覆盖法条件组合覆盖条件组合覆盖是按每个判断的所有条件取值进行组合。这是 5 种覆盖中最强的覆盖。它不但可覆盖所有条件,还可覆盖所有判断的可取分支。白盒测试基本路径覆盖法 基本路径测试步骤: 导出程序流程图的拓扑结构-流图 (控制流程图); 计算流图 G 的环路复杂性 V(G); 确定只包含独立路径的基本路径集; 设计测试用例;等价类划分法 对测试数据进行区间划分,从这些区间中选取典型值作为用例代表,认为测试等价类中的一个代表值的结果就等于对该类其它值的测试。边界值分析法 边界值分析法就是对输入或输出的边界值进行测试的一种方法。错误推测法

47、动态测试黑盒测试因果图法51 简述软件测试过程的主要内容。1需求与设计评审2单元测试 (Unit Testing) 3集成测试4. 功能测试5. 系统测试6. 验收测试 7. 与 测试52 简述单元测试 (Unit Testing)的主要内容。单元测试又称模块测试,是针对软件设计的最小单位程序模块(函数、类等)进行正确性检验的测试工作。单元测试采用黑盒+白盒混合方式,采用黑盒测试为主为先,白盒测试为辅为后的策略。1) 用黑盒进行模块接口测试2)用黑盒进行模块边界条件的测试3)用白盒进行模块局部数据结构和算法的测试4)用白盒进行模块中独立路径的测试5)模块中各条错误处理路径的测试 53 简述集成

48、测试的主要内容集成测试也叫组装测试或联合测试。集成测试是在单元测试基础上,再将单元按照概要设计规格说明的要求组装成更大的模块、子系统或系统。1)非渐增式集成测试非渐增式集成测试又叫一次性集成测试,就是把所有经过单元测试的模块按照设计规格说明书一次性组装成系统,然后进行统一的测试。2)渐增式集成测试渐增式集成测试即把下一个要测试的模块同已经测试好的模块结合起来进行测试,测完后,再把下一个应该测试的模块结合进来测试。54. 简述验收测试的概念 验收测试是软件交付之前的最后一个测试操作,验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。55. 与 测试这两种测试是针对商用软件的系统测试。商用软件与合同定制式软件不同,它面向的使用群体数量大、不确定,没用针对性的验收用户

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报