热门搜索:

  • /?31
  • 下载费用:1 金币 ?

软件工程基础知识.doc

关?键?词:
软件工程 基础知识
资源描述:

软考服务站搜集整理----软件工程基础知识 ?- 1 - ?2.4 软 件工程基础知 识 ?2.4.1 主要知 识点 ?软件工程是计算机软件的一个重要分支,主要应掌握软件工程的基本原理以及软件设计与测 试方法。 ?2.4.1.1 软件生存周期各阶段的任务 ?软件生存周期指出由软件定义、软件开发和软件维护等阶段组成的全过程。 ?(1)软件定义阶段 ?软件定义阶段主要解决软件要“做什么“的问题,也就是要确定软件的处理对象、软件与外界 的接口、软件的功能、软件的性能、软件的界面以及有关的约束和限制。软件定义阶段通常 可分成系统分析、软件项目计划和需求分析等阶段。系统分阶析的任务是确定待开发软件的 总 体要求和适用范围,以及与之有关的硬件和支撑软件的要求,该阶段所生产的文档可合并 在软件项目计划阶段的文档(项目计划书)中。软件项目计划的任务是确定待开发软件的目 标,对其进行可行性分析,并对资源分配、进度安排等做出合理的计划,该阶段所产生的文 档有可行性分析报告和项目计划书。需求分析的任务是确定待开发软件的功能、性能、数据 和界面等要求,从而确定系统的逻辑模型。该阶段产生的文档是需求规格说明书。 ? (2)软件开发阶段 ?软件开发阶段主要解决软件“怎么做“的问题,包括数据结构和软件结构的设计、算法设计、 编写程序和测试, 最后得到可交付使用的软件。软件开发阶段通常可分成软件设计、编码、 软件测试等阶段。 软件设计通常还可分成概要设计和详细设计。 概要设计的任务是模块分解, 确定软件结构、模块的功能和模块的接口,以全国数据结构的设计。详细设计的任务是设计 每个模块的实现细节和局部数据结构。设计阶段产生的文档有设计说明书,它也可分为概要 设计说明书和详细设计说明书。编码的任务是用某种程序语言为每个模块编写程序,产生的 文档有程序清单。软件测试的任务是发现软件中的错误,并加以纠正,产生的文档有软件测 试计划和软件测试报告。 ?(3)软件维护 ?软件维 护任务就是为使软件适应外界环境的变化,进一步实现软件功能的扩充和质量的改善 而修改软件。该阶段产生的文档有维护计划和维护报告。 ?2.4.1.2 软件开发模型 ?用不同的方式 将软件生存周期中所有开发活动组织起来,形成不同的软件开发模型。常见的 软件开发模型有瀑布模型、螺旋模型和喷泉模型等。瀑布模型给出了软件生存周期各阶段的 固定顺序,上一阶段完成后才能进入到下一阶段。各阶段结束后,都要进行严格的评审。 软考服务站搜集整理----软件工程基础知识 ?- 2 - ?2.4.1.3 结构化分析和设计方法 ?(1)结构化分析(SA)方法 ?结构化分析 (SA) 方法 是一种面向 数据流的需求分析方法 , 它适用于分析大型数据处理系统。 结构化分析方法的基本思想是自顶向下逐层分解,把一个问题分解成若干个小问题,每个小 问题再分解成若干个更小的问题,经过多次逐层分解,每个最低层的问题都是足够简单、容 易解决的,这个过程就是分解的过程。SA 方法的分析 结果由数据流图DFD、 数据词典和加工 逻辑说明几个部分组成。 ?(2)结构化设计(SD)方法 ?结构化设计(SD)方法是一各面向 数据流的软件设计方法,它可以与 SA 方法 衔接,SD 方法 采用 结构图 (SC) 来描述程序的结构。 结构图的基本成分由模块、 调用和输入/输出数据组成。 在需求分析阶 段, 用SA 方法 产生了数据流图。 面向数据流的设计能方便地将 DFD 转换成程序 结构图,DFD 中从系统的输入数据到系统的输出数据流的一连串连续变换将形成一条信息流。 DFD 的信息流大体可分 为两种类型,一种是变换流,另一种是事务流。 ?SD 方法的 设计步骤有: ①复查并精化数据流图; ②确定 DFD 的信息流类型; ③根据信息流类 型分别将变换流或事务流转换成程序结构图; ④根据软件设计的原则对程序结构图作为改进。 ?(3)结构化程序设计(SP ) ?结构化程序设计(SP)采用自 顶向下逐步求精的设计方法和单入口单出口的控制结构。自顶 向下逐步求 精的设计方法符合抽象和分解的原则, 人们解决复杂问题时常用的方法。SA 方 法和 SD 方法也采用了自 顶向下逐步求精的方法, 在详细设计时也同样如此。 在设计一个模块 的实现算法时,先考虑整体后考虑局部,先抽象后具体,通地逐步细化,最后得到详细的实 现算法。单入口单出口的控制结构,使程序的静态和动态结构执行过程一致,使程序具有良 好的结构。 ?2.4.1.4 面向数据结构的设计方法 ?这类方法以数据结构作为设计基础, 根据输入/输出数据结构导出程序的结构。Jackson 方法 是一种典型的面向 数据结构的设计方法。尽管程序中实际使用中的数 据结构有许多种,但这 些数据结构中数据元素间的逻辑关系只有顺序、选择和重复 3 类。Jackson 方法的设计步骤 为: ?(1)分析并确定 输入和输出数据的逻辑结构,并用 Jackson 图表示; ?(2)找出 输入数据结构与输出数据结构间有对应关系的数据单元; ? (3)从描述数据结构的Jackson 图导出描述程序结构的 Jackson 图。 软考服务站搜集整理----软件工程基础知识 ?- 3 - ?2.4.1.5 软件设计的原则 ?(1)抽象的原 则 ?软件工程中从软件定义到软件开发要发经历多个阶段,在这个过程中每前进一步都可看作是 对软件设计的抽象层次的一次细化。抽象的最低层次就是实现该软件的 源程序代码。在进行 曲模块化设计时也可以有多个抽象层次,最高抽象层次的模块用概括的方式叙述题的解法, 较低抽象层次的模块是对较高抽象层次模块问题解法描述的细化。过程抽象和数据抽象是常 用的两种主要抽象手段。 ?(2)模块化的原则 ?模 块化是指将一个待开发的软件分解或成若干个小的简单的部分模块,每个模块可独立地开 发、测试,最后组装成完整的软件。 ?(3)信息 隐蔽的原则 ?信息 隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的 设计模块中,定义每一人模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高 软件的 可修改性、可测试性和可移植性都有重要的作用。 ?(4)模块独立的原则 ?模 块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系比较简 单。衡量模块独立程度标准有两个:耦合和内聚,耦合是指模块之间联系的紧密程度,耦合 度越高, 则模块的独立性越差。 内聚是指模块内部各元素之间联系的紧密程度, 内聚度越低, 模块的独立性越差。模块独立要求每个模块都是高内聚低耦合的。 ?2.4.16 编码 ?编码阶段的任务就是根据详细的设计说明书编写程序。要编写高质量的程序,应注意选择合 适的程序设计语言,明确源程序的质量要求 ,养成良好的程序设计格。 ?2.4.1.7 软件测试 ?软件测试的工作量约占软件开发总工作量的 40%以上, 其目的是 尽可能多地发现软件产品 (主 要是指程序)中的错误和缺陷。 ?测试的关键是测试用例的设计,设计方法可分成两类:白盒测试和黑盒测试。白盒测试把程 序看成是装在一只透明的盒子里,测试者完全了解程序的结构和处理过程。白盒测试根据程 序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作。黑 盒测试把程序看成是装在一只不透明的盒子里,测试者完全不了解(或不考虑)程序的结构软考服务站搜集整理----软件工程基础知识 ?- 4 - ?和处理过程。黑盒测试根据规 格说明书规定的功能来设计测试用例,检查程序的功能是否符 合规格说明的要求。 ?软件测试的主要步骤有单元测试、集成测试和确认测试。单元测试也称模块测试,通常单元 测试可放在编码阶段,主要用来发现编码和详细设计中产生的错误,一般采用白盒测试。集 成测试也租组装测试,它是对由各模块组装而成的模块进行测试,主要检查模块间的接口和 通信。集成测试主要用来发现设计阶段产生的错误,通常采用黑盒测试。确认测试的任务是 检查软件的功能、性能和其他特征是否与用户的需求一致,它是以需求规格说明书作为依据 的测试,通常采用黑盒测度。 ? 大多 数软 件生产者使用一种 Alpha 测试和Beta 测试的过程,来揭露仅由最终用户才能发现 的错误。 Alpha 测试是在开发者的现场由客户来实施的, 被测试的软件是在开发者从用户的 角度进行常规设置的环境下运行的。Beta 测试是在一个或多个客户的现场由该软件的最终用 户实施的。与 Alpaha 测试不同的是,进行 Beta 测试时开发者通常是不在场的。 ?2.4.1. 8 面向对象方法的基本概念 ?面向 对象(OO)方法成为软件开发的一种主要方法。它有几个基本概念。 ?(1)对象 ?在 计算机系统中,对象是指一组属性以及这组属性上的专用操作的封 装体。属性可以是一些 数据,也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态,用户只能 看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装目的是使对象的使用者 和生产者分离,使对象的定义和实现分开。一个对象通常可由对象名、属性和操作这 3 个部 分组成。 ?(2)类 ?类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实 例(Instance )。在分析和 设计时,我们通常把注意力集中在类上,而不是具体的对象上。 通常把一个类和这个类的所有对象称为类及对象或对象类。 ? (3) 继承 ?继承是在某个类的层次关联中不同的类共享属性和操作的一种机制。一个父类可以有多个子 类,这些子类都是父类的特例。父类描述了这些子类的公共属性的操作,子类中还可以定义 它自己的属性和操作。一个子类只有唯一的一个父类,这种继承称为单一继承。一个了类有 多个父类,可以从多个父类中继承特性,这种继承称为重多继承。 ?(4)消息 软考服务站搜集整理----软件工程基础知识 ?- 5 - ?消息的 对象间通信的手段、一个对象通过向另一对象发送消息来请求其服务。一个消息通常 包括接收对象名、调用的操作名和适当的参数(如有必要)。消息只告诉接收对象需要完成 什么操作,但并不能指示接收者息样 完成操作。消息完全同接收者解释,接收者独立决定采 用什么方法来完成所需的操作。 ?(5)多态性和动态绑定 ?多 态性是指同一个操作作用不同的对象可以有不同的解释,产生不同的执行结果。 ?与多 态性密切相关的一个概念就是动态绑定。传统的程序设计语言把过程调用与目标代码的 连接放在程序运行前进行, 称为静态绑定。 而动态绑定则是把这种连接推迟支动行时才进行。 在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作 与实现的方法连接,即动态绑定。 ?2.4.1.9 面向对象的分析与设计方法 ?(1)Peter Coad 和Edward Yourdon 的OOA 和OOD 方法 ?OOA (面向 对象的分析) 模型由 5 个层次 (主题层、 对象类层、 结构层、 属性层和服务层) 和 5 个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。在这种方法中 定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓 的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。 ?OOA 在定 义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。 ?OOA 在定 义服务的同时要识别消息连接。当一个对象需要向另一对 象发送消息时,它们之间 就存在消息连接。 ?OOA 中的5 个层次和5 个活动继续贯穿在 OOD (画向对象的设计) 过 程中。OOD 模型由4 个部 分组成。它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管 理部分 。 ?(2)Booch 的 OOD 方法 ?Booch 认为软件开发是一个螺旋上升的过程。在螺旋上升的每个周期中,有 4 个步骤:标识 类和对象、确定它们的含义、标识它们之间的关系、说明每一个类的界面和实现。 ?(3)OMT 方法 ?对象建模技术 OMT 定义了 3 种模型,它们是对象模型、动态模型和功能模型,OMT 用这3 种 模型 来描述系统。OMT 方法有 4 个步骤: 分析、 系统设计、 对象设计和实现。OMT 方法的每一 个步骤都使用这 3 种模型,每一 个步骤对这3 种模型不 断地进行细化和扩充。 软考服务站搜集整理----软件工程基础知识 ?- 6 - ?对象模型描述系统包括对象的静态结构、对象之间的关系、对象的属性和对象的操作。OMT 的 对象模型中除了对象、类和继承外,还有链、关联、泛化、聚合和模块等概念。 ?动态模型用来描述与值的变换有关的系统特征--功能、映射、 约束和函数依赖。功能模型用 数据流图来表示。 ?OMT 主要步 骤: ?①分析是 OMT 方法的第一步,其目的是建立可理解 现实世界模型。 ?②在系统设计阶段将 确定整个系统的体系结构,以形成求解问题和建立解答的高层次策略。 ?③对象设计。在分析的基础上,对象设计阶段将建立基于分析模型的设计模型,并考虑实现 的细节。设计人员会根据系统设计期间建立的策略把实现细节加入到设计模型中。 ?④实现阶段将对象设计阶段开发的对象类及基关系转换成特定的程序设计语言、数据库或硬 件实现。 ?2.4.1.10 软件质量保证 ?软件质量保证是指为保证软件系统或软件产品最大限度地满足用户要求而进行的有计划、有 组织的活动,其目的是生产高质量的软件。有多种软件质量模型来描述软件质量特性,着名 的有 ISO/IEC 9126 软件质量模型和 Mc Call 软件质量模型。 ?软件质量保证环节包括的主要工作有:应用技术方法、进行正规的技术评审、测试软件、标 准的实施、控制变动、度量、记录保存和报告。 ?2.4.l.11 软件开发工具与环境 ?用 来辅助软件开发、运行、维护、管理和支持等过程中的活动的软件称为软件工具,通常也 称为 CASE 工具。 软件工具大都包含了检测机制, 能及时发现一些错误, 对提高软件的 质量 起着重要的作用。 ?软件开发环境则把一组相关的工具集成在环境中,环境机制提供数据集成、控制集成和界面 集成等机制。数据集成机 制为工具提供统一的数据接日;控制集成机制实现工具间的通信和 协同工作;界面集成机制使这些工具具有统一的界面风格,从而为软件开发、维护、管理等 过程中的各项活动提供连续的、一致的全方位支持。 ?2.4.2 试题解析 ?对高级程序员级考试来说, 软件工程的重要性非常突出, 从历年试题统计 (见表 2-6) 来看, 在各大知识点中平均所占的比重最大,平均每年有 2 道题,这也说明对高级程序员的软件分 析与设计能力的要求比较高。总的来说,软件设计方法、软件测试方法、软件模块划分、软软考服务站搜集整理----软件工程基础知识 ?- 7 - ?件质量要求等是反复考查的重点内容。软件管理、软件工具、软件开 发环境等从未考过的内 容也应引起重视。 试题 1 (2000 年试题5) ?从供选择的答案中, 选出应填人下面叙述中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?在 软件开发 过程中常用图作为描述工具。如 DFD 就是面向 A 分析方法的描述工具。在一套 分 层DFD 中, 如果某一张图中有 N 个加工 (Process), 则这张图允许有 B 张子图。 在一张 DFD 图中, 任意两个加工之 间 C。在 画分层 DFD 时 , 应注意保持 D 之间 的平衡。DFD 中从系统的 输入流到系统的输出流的一连串连续交换形成一种信息流,这种信息流可分为 E 两类。 ?供 选择的答案 ?A: ①数据结构 ②数据流 ③对象 ④构件(ComPonent ) ?B: ①0 ②1 ③1-N ④0-N ?C: ①有且仅有一条数据流 软考服务站搜集整理----软件工程基础知识 ?- 8 - ?②至少有一条数据流 ?③ 可以有0 条或多条名宇互不相同的数据流 ?④可以有 0 或多条数据流,但允许其中有若干条名宇相同的数据流 ?D: ①父图与其子图②同一父图的所有子图 ?③不同父图的所有子图④同一子图的所有直接父图 ? E: ①控制流和变换流②变换流和事务流 ?③事务流和事件流④事件流和控制流 ?【解析】 ?本 题考查数据流图(DFD)的基本知 识。 ?在 软件需求分析阶段, 用 SA 方法产生了数据流图。 数据流图是结构化分析方法的一种分析结 果,用来描述数据流从输入到输出的变换过程。数据流图的基本成份有数据流、加工。文件 和源/宿。 ?一 个软件系统, 其数据流图往往有 多层。 如果父图有 N 个加工, 则该父图可以有 0~N 张子图, 但是每张子图只能孙对应于一张父图。 ?在 画数据流图时,应注意父图与子图的平衡,即父图中某加工的输入输出数据流必须与 ?其子 图的输入输出流在数量和名字上相同。 ?DFD 的信息流大体可分 为两种类型,一种是变换流,另一种是事务流。 ?[答案]A:②B:④C:③D:①E:② ?试题 2 (2000 年试题6) ?从供选择的答案中, 选出应填入下面叙述中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?软件的易维护性是指理解、改正、改进软件的难易程度。通常影响软件易维护性的因 素有易 理解性、 易修改性和 A 。在 软件的开发过程中往往采取各种措施来提高软件的易维护性。 如 采用 B 有助于提高 软件的易理解性;C 有助于提高 软件的易修改性。 ?在 软件质量特性中,D 是指在 规定的一段时间和条件下,与软件维持其性能水平的能力有关 的一组属性;E 是指防止对程序及数据的非授权访问的能力。 ?供 选择的答案 软考服务站搜集整理----软件工程基础知识 ?- 9 - ?A: ①易使用性②易恢复性③易替换性④易测试性 ?B: ①增强健壮性②信息隐蔽原则 ?③良好的编程风格④高效的算法 ?C: ①高效的算法②信息隐蔽原则③增强健壮性④身份认证 ?D: ①正确性②准确性③可靠性④易使用性 ?E: ①安全性②适应性③灵活性④容错性 ?【解析】 ?本 题考软件质量要求和软件质量特性。 ?对于源程序的质量要求,最基本的就是正确性和可靠性,除此之外,更要注重程序的易使用 性、易维护性和易移植性。易使用性就是要对用户友好,便于用户使用,做到少培训甚至零 培训;易维护性包括易理解性、易测试性和易修改性;移植性则指程序从某一环境移植到另 一环境的能力。信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封 装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原 则对提高软件的可修改性、可 测试性和可移植性都有重要的作用。 ?一般使用 ISOflEC 9126 软件质量模型来描述软件质量特性,它有 3 个层次组成:第 1 层是 质量特性;第 2 层是质量于特性;第 3 层是度量指标。题中提到的可靠性位于第 1 层,安全 性位于第 2 层。 ?[答案]A: ④ B:③ C:② D:③ E:① ?试题 3(1999 年试题 5) ?从供选择的答案中, 选出应填入下面叙述中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?软件设计中划分模块的一个准则是 A 。两个模块之间的耦合方式中,B 耦合的耦合度最高, C 耦合的耦合度最低。 一 个 模块内部的内聚种类中 D 内聚的内聚度最高,E 内聚的内聚度最 低。 ?供 选择的答案 ?A: ①低内聚低耦②低内聚高耦合③高内聚低耦合④高内聚高耦合 ?B: ①数据②非直接③控制④内容 ?C: ①数据②非直接③控制④内容 软考服务站搜集整理----软件工程基础知识 ?- 10 - ?D: ①偶然②逻辑③功能④过程 ?E: ①偶然②逻辑③功能④过程 ?【解析 ] ?软件设计中划分模块的一个准则是追求更高的内聚度和更低的耦合度。耦合度是对一个软件 结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接日的复杂程度、进入访问一 个模块的点以及通过接口的数据。在软件设计中应该追求尽可能松散的耦合系统,在这 样的 系统中可以研究、测试或修改、维护任何一个模块,而不需要对系统的其他模块有很多了解 或影响其他模块的实现。此外,当某处发生错误时,低耦合度系统的错误传播的范围相应小 些。因此,模块间的耦合程度直接影响系统的可理解性、可测试性、可靠性和可维护性。 ?如果 两个模块中的每一个都能够独立地工作而不需要另一个模块的存在,那么他们之间就没 有耦合关系;如果两个模块彼此通过参数交换数据,而交换的信息仅仅是数据,那么这种耦 合称为数据耦合;如果传递的信息中也有控制信息,则这种耦合称为控制耦合。 ?当两个或多个模块通过公共数据环境相互 作用时,它们之间的耦合称为公共耦合;如果两个 模块之间有下列情况之一, 则称两个模块之间 的耦合关系为公共耦合。 (1)一 个模块访问 另 一个模块的内部数据;(2 )一个模块没有通过正常人口而转到另一个模块内部;(3)两个 模块有一部分程序代码重叠;(4)一个模块有多个入口。 ?数据耦合的耦合程度最低,控制耦合次之,适当分解模块可以用数据耦合代替控制耦合。公 共耦合的复杂程度随耦合模块的个数和耦合模块对公共数据环境的操作而变化。内容耦合是 程度最高的耦合,在程序中应该坚决避免内容耦合。 ?内聚标志着一个模块内各个元素彼此结合的紧密 程度,它是信息隐蔽和局部化概念的自然扩 展。简单地说,理想的内聚模块只做一件事情。 ?如果一 个模块完成一组任务,这些任务彼此间即使有关系,也是松散的关系,就叫做偶然内 聚;如果一个模块完成的任务在逻辑上属于相同或相似的操作,则称为逻辑内聚;如果一个 模块包含的任务必须在同一段时间内执行,就叫做时间内聚。 ?如果一 个模块内的处理元素是相关的。而且必须以特定次序执行,则称为过程内聚;如果模 块中所有的元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚。 ?如果一 个模块内的处理元素和同一个功能密切相关,而 B 这些外排必须顺序执行.则称为顺 序内聚;如果模块内所在处理元素属于一个整体,完成一个单一的功能,则称为功能内 聚。 ?内聚程度从低到高的排列是:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚。顺序 内聚、功能内聚。 ?【答案】A:③B:④C:②D:③E:① 软考服务站搜集整理----软件工程基础知识 ?- 11 - ?试题 4 (1999 年试题6) ?从供选择的答案中, 选出应填入下面叙述中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?OMT 是一种 对象建模技术,它定义了 3 种模型,它 们分别是 A 模型、B 模型和 C 模型。其 中, A 模型描述了系 统中对象的静态结构, 以及对象 之间的联系,B 模型描述系 统中与时间 和操作顺序有关的系统特征, 表示瞬时的行为上的系统的 “控制” 特征, 通常可用 D 来表示, C 模型描述了与值的 变换有关的系统特征,通常可用 E 来表示。 ?供 选择的答案 ?A: ①对象②功能③ER④静态 ?B: ①控制②时序③动态④实时 ?C: ①对象②功能③变换④计算 ?D: ①类图②状态图③对象图④数据流图 ?E: ①类图②状态图③对象图④数据流图 ?【解析】 ?OMT (对象建模技术) 是一种围绕真实世界的概念来组织模型的软件开发方法。OMT 从问题陈 述开始,理解问题陈述中的客观世界,将其本质抽象成模 型表示,建立系统的 3 种模型,即 对象模型、动态模型和功能模型。 ?对象模型描述了系统中对象的静态结构以及对象间的联系,用对象模型图来表示。对象模型 图是 ER 图的一种拓广形式。 动态模型描述了与时间和操作次序有关的系统属性, 动态模型由 多张状态图组成。各个类的状态图通过共享事件组成系统的动态模型。功能模型描述系统内 数据值的变化,它由数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内 部存储而到外部输出的。OMT 的3 种模型相辅相成,组成系统的一个完整的正交视图。 ?OMT 方法体 现了面向对象的系统开发方法的基本特点 ,强调对系统结构的理解,而不是系统 功能的分解。在 OMT 方法中, 对象模型最重要,动态模型次之,最后是功能模型。 ?使用面向 对象的基本思想构造的系统模型与客观系统的结构十分类似,可以使用该模型与用 户通信。 ?在分析 阶段产生系统模型后,系统设计的任务主要是细化模型。分析和设计可使用统一表示 方法,省略了类似结构方法中从数据流图到模块调用层次的转换过程,而且这种模型用面向 对象的程序设计语言来实现也显得十分自然。 软考服务站搜集整理----软件工程基础知识 ?- 12 - ?相 对于传统的软件工程方模学,OMT 的开发重心转移到了分析阶段,使得分析的结果比一般 的软件开发方法更为可靠,减少 了因分析不透彻引起的问题。OMT 支持系统的无缝开发。在 整个开发过程中使用统一的软件概念即对象,所有其他概念都是围绕对象组成的,在分析阶 段开发的对象模型也适用于设计和实现阶段。这样,软件开发的阶段性就不那么明显了。由 于各阶段是一致吻合的,很容易实现各阶段的反复,而且每一次反复都是对系统的进一步深 化。 ?但 OMT 方法 还存在以下几个方面的不足:(1)对问题陈述论述得不足;(2)3 种模型的一 致性 难以检测和维护,而且对系统约束的描述能力也不足:(3)建模过程描述得不很清晰, 建模的结果即各种图形表示也不能体现建模的过程 ,从而增加了分析人员掌握该方法的 ? 难度;(4)OMT 方法使用的 图形在分析大系统时显得条理不够清晰。 ?[答案]A:①B:③C:②D:②E:④ ?试题 5(1998 年试题1) ?从供选择的答案中, 选出应填入下面叙述中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?设计高质量的软件是软件设计追求的一个重要目标。可移植性、可维护性、可靠性、效率、 可理解性和可使用性等都是评价软件质量的重要方面。 ?可移植性反映出把一 个原先在某种硬件或软件环境下正常运行的软件移植到另一个硬件或软 件环境下, 使该软件也能正确地运行的难易 程度。 为了提高软件的可移植性, 应注意 提高软 件的 A 。 ?可 维护性通常包括 B 。 通常 认为, 软件维护工作包括改正性维护、C 维护和 D 维护。 其中 C ?维护则是为了扩充软件的功能或提高原有软件的性能而进行的维护活动。E 是指当系统万一 遇到未预料的情况时,能够按照预定的方式做合适的处理。 ?供 选择的答案 ?A: ①使用方便性②简洁性③可靠性④设备不依赖性 ?B: ①可用性和可理解性②可修改性、数据独立性和数据一致性 ?③可测试性和稳定性④可理解性、可修改性和可测试性 ?C、D:①功能性②扩展性③合理性④完善性 ?⑤合法性③适应 性 ?E: ①可用性②正确性③稳定性④健壮性 ?【解析 ] 软考服务站搜集整理----软件工程基础知识 ?- 13 - ?软件的可移植性是指把程序从一种硬件配置或软件系统环境转移到另一种配置和环境时,需 要的工作量的多少。提高软件可移植性的关键在于提高软件的设备无关性,即设备不依赖展 性。 ?软件的可维护性通常包括叮理解性、可修改性和可测试性。按照每次维护的具体目标,软件 维护工作可分为 3 类:改正性维护、完善性维护和适应性维护。 ?改正性 维护的目的在于纠正开发期间未能发现的错误。由于软件测试的不彻底性,任何大型 软件在交付使用后都会发现一些潜藏的错误,对它们进行的诊断和改正就称为改正性维 护, 改正性维护约占总维护的 20%。 ?完善性 维护指的是任何软件,无论是应用软件还是系统软件,在使用期间都要不断改善,加 强产品的功能和性能,以满足用户日益增长的需求,提高自己产品的市场竞争力。刚投入使 用的是第 1 版,以后就可能不 断升级为第2 版、第 3 版等,在整个维护工作量中,完善性维 护所占比重最大,约占 50 ~60%。 ?适 应性维护是指软件为适应运行环境的变化而进行的一种维护,如硬件或支撑软件(如操作 系统升级)改变引起的变化,将软件移植到其他的运行平台上等,这类维护大约占总维量的 25 %。 ?软件的健壮性是指在硬件发生故 障、输入的数据无效或操作错误等意外环境下,即系统遇到 未预料的情况时,系统能够做出适当响应的程度。 ?[答案】A:④B:④C:④D:③E:④ ?试题 6 (1997 年试题6) ?从供选择的答案中, 选出应填入下面叙述中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?在 设计测试用例时,A 是用得最多的一种黑盒 测试方法。在黑盒测试方法中,等价类划分方 法设计测试用例的步骤是: ?1.根据 输入条件把数目极多的输入数据划分成若干个有效等价类和若干个无效等价类; ? 2. 设计一个测试用例,使其覆盖 B 尚未被覆盖的有效等价类, 重复这一步,直至所有的有 效等价类均被覆盖。 ?3. 设计一个测试用例,使其覆盖 C 尚未被覆盖的无效等价类,重复这一步,直至所有的无 效等价类均被覆盖。 ?因果 图方法是根据 D 之间的因果关系来设计测试用例的。 软考服务站搜集整理----软件工程基础知识 ?- 14 - ?在 实际应用中, 一旦纠正了程序中的错误后, 还应选择部分或全部原先已测试过的测试用例, 对修改后的程序重新测试,这种测试称为 E 。 ?供 选择的答案 ?A: ①等价类划分②边值分析③因果图④判定表 ?B、C:①1 个②7 个左右③一半④尽可能少的 ?⑤尽可能多的③全部 ?D: ①输入与输出②设计与实现③条件与结果④主程序与子程序 ?E: ①验收测试②强度测试③系统测试④回归测试 ?[解析] ?等价 类划分是典型的黑盒测试方法,其方法是把程序的输入域划分成若干部分,然后从每个 部分中选取少数代表性数据当作测试用例。列举所有可能的测试数据进行测试工作量太大, 通常选取一部分测试数据进行测试,因此如何选取数据就成为关键的一步。用这种方法设计 测试用例需要经过划分等价类、选取测试用例两个步骤。 ?划分等价 类时,首先把数目极多的输入分成若干个等价类。所谓等价类就是某个输入域的集 合,对于一个等价共中的输入值来说,它们揭示程序中错误的作用是等效的。如果我们的测 试用 例全部从一个等价类中选取,测试工作将不能保证软件质量。 ?根据列出的等价 类表,应该按照以下步骤确定测试用例: ?(1)为每个等价类规定一个唯一的编号; ?(2)设计一个等价类,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后 ?使得所有有效等价 类都被测试用例所覆盖; ?(3)设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价 ?类都被覆盖。 ?应当注意到, (3)中 规定一次只能覆盖一个无效等价类, 因为一个 测试用例中如果含有多个 错误,有可能在测试中只发现其中的一个,另一些被忽视。 ?因果 图法是根据 输入与输出之间的因果关系来设计测试用例的,要检查输入条件的各种组合 情况,在设计测试用例时,需分析规格说明中哪些是原因,哪些是结果,并指出原因和结果 之间、原因和原因之间的对应关系。因果图法最终生成的是判定表;功能图方法利用功能图 形式化地表示程序的功能说明,并机械地生成功能图的测试用例;回归测试是在纠正了程序 中的错误后, 选择部分或全部原先己测试过的测试用例, 对修改后的程序重新测试, 以 验证软考服务站搜集整理----软件工程基础知识 ?- 15 - ?对软件修改后有没有引出新的错误;强度测试是检查在系统运行环境发生故障的情况下,系 统可以运行到何种程度的测试;系统测试是将通过 确认测试的软件作为整个基于计算机系统 的一个元素,与计算机硬件、外设、支持软件、数据以及人员等其他系统元素结合在一起, 在实际运行环境对计算机系统进行一系列的组装测试和确认测试;验收测试是在系统进行有 效性测试及软件配置审查后,以用户为主进行的测试。 ?【答案 ]A:②B:⑤C:①D:①E:④ ?试题 7 (1996 年试题 2) ?从供选择的答案中, 选出应填入下面叙述中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?在 软件工程的设计阶段中,有 3 种常用的设计方法:结构化设计(SD)方法、Jackson 方法 和 Parnas 方法。SD 方法侧重于 A ;Jackson 方法 则是 B ;Pmas 方法的主要思想 C 。从 70 年代中期到90 年代早期,D 是最为常用的设计方法。E 法只提供了重要的 设计准则,没 有规定出具体的工作步骤。 ?供 选择的答案 ?A~C: ?①使用对象、类和继。②由数据结构导出模块结构。 ?③模块要相对独立,且功能单一,使块间联系弱,块内联系强。 ?④将可能引起变化的因素隐藏在某有关模块内部,使这些因素变化时的影响范围受到限制。 ?⑤用数据流图表示系统的分解,且用数据词典和小说明分别表示数据和加工的含义。 ?⑥自顶向下、逐步 细化,采用顺序、选择和循环 3 种基本结构,以及限制 gotO 语句的使用, 设计出可靠的和易维护的软件。 ?D: ①SD②Jackson③Parnas ④面向对象 ?E: ①SD②Jackson③Parnas ④以上皆非。 ?【解析】 ?结构化设计(SD)方法、Jackson 方法和 Parnas 方法是 软件工程设计阶段常用的设计方法。 ?结构化设计 (SD) 采用自 项向下逐步求精、 模块化的设计方法, 单入日、 单出日的控制结构, 利用程序结构图表达模块之间的关系。可见结构化设计方法是以模块化设计为中心,在开始软考服务站搜集整理----软件工程基础知识 ?- 16 - ?设计时就把待开发系统划分为若干个相互 独立的模块,每一个模块的工作明确清晰,模块之 间的耦合量低,可减少修改或重新设计时的工作量。结构化设计方法的关键是要恰到好处地 划分模块,采用试探方法处理好模块内部以及模块之间的联系,从而达到逐步疏清条理的目 的。所以问题 A 选择③。结构化设计方法是 70 年代中期到 90 年代早期最常用的 设计方法, 问题 D 选择①。 ?Jackson 方法是一种面向数据结构的设计方法, 设计目标是得出对程序处理过程的描述, 其 设计过程是从描绘数据结构的 Jackson 图推导出描绘程序结构的 Jackson 图,该方法适用于 比较简单的数据处理系统,所以问 题B 选择②。 ?Parnas 方法 强调在概要设计时应预先估计在未来生存周期中可能发生的情况, 并采取相应措 施来提高系统的可维护性和可靠性。信息隐藏是提高软件可维护性的重要措施,在分解模块 时,就应采取措施,将一些将来可能发生变化的因素隐含在某模块内,使将来因修改造成的 影响尽可能地局限在一个或少数几个模块中,这种方法只提供了重要的设计准则,而没有规 定具体的工作步骤,所以问题 C 选择④,问题E 选择③。 ?[答案] A :③ B:② C: ④ D:① E:③ ?试题 8 (1996 年试题 7) ?从供选择的答案中, 选出应填入下面叙述 中{ }内的最确切的解答, 把相应编号写在答卷的对 应栏内。 ?软件测试的目的是 A 。 通常 B 是在代码编写阶段可进行的测试, 它是整个测试 工作的基 础。 ?逻辑覆盖标准主要用于 C 。它主要包括条件覆盖、条件组合(多重条件)覆盖。判定覆盖、 条件及判定覆盖、 语旬覆盖和路径覆盖等几种, 其中除路径覆盖外最弱的覆盖标准是 D ,最 强的覆盖标准是 E 。 ?供 选择的答案 ?A: ①表明软件的正确性②评价软件质量 ?③尽可能发现软件中错误④判定软件是否合格 ?B: ①系统测试②安装测试③验收测试④单元测试 ?C: ①黑盒测试方法②白盒测试方法 ③灰盒测试方法④软件验证方法 ?D、E:①条件覆盖②条件组合覆盖③判定覆盖 ?④条件及判定覆盖⑤语句覆盖 ?【解析】 软考服务站搜集整理----软件工程基础知识 ?- 17 - ?软件测试在软件生存周期中占有重要地位,这不仅是因为测试阶段占用的时间、花费人力和 成本占软件开发比重的 40 %以上,而且还因为它是保证软件质量的关键步骤。 ?由于人的主 观

? 汽车智库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:软件工程基础知识.doc
链接地址:http://www.autoekb.com/p-1529.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2008-2018 mywenku网站版权所有
经营许可证编号:京ICP备12026657号-3?

收起
展开