资源描述
软件工程第一章 绪论1、解释术语软件: 一般是指计算机系统中的程序及其文档。软件工程 : 是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进 度实现满足用户要求的软件的工程,或以此为研究对象的学科。软件危机: 随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会 发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为“软 件危机”。2、简答题简述软件开发的本质软件开发的本质:不同抽象层术语之间的“映射” ,以及不同抽象层处理逻辑之 间的“映射”。简述实施软件开发的基本途径 软件开发的基本途径是问题建模。常用的建模手段有:结构化方法、面向对象 方法以及诸多面向数据结构方法等。简述何谓模型以及软件开发中所涉及的模型 所谓模型,简单的说,是待建系统的任意抽象,是特定意图下所确定的角度和 抽象层次上对物理系统的描述。在软件开发中,软件系统模型大体上可分为两 类:概念模型和软件模型。简述软件开发所涉及的两大类技术 一是过程方向,即求解软件的开发逻辑;二是过程途径,即求解软件的开发手 段。第二章软件需求与软件需求规约1、解释以下术语:软件需求: 是产品/ 系统设计、实现以及验证的基本信息源之一,是任何软件工 程项目的基础。功能需求: 规约了系统或系统构件必须执行的功能,是整个需求的主体。 非功能需求: 分为性能需求、外部接口需求、设计约束和质量属性需求。性能 需求规约了一个系统或系统构件在性能方面必须具有的一些特征;外部接口需 求规约了系统或系统构件必须与之交互的用户、硬件、软件或数据库元素;设 计约束限制了软件系统或软件系统构件的设计方案的范围;质量属性规约了软 件产品所具有的一个性质必须达到其质量方面一个所期望的水平。需求规约: 是一个软件项 /产品/ 系统所有需求陈述的正式文档,它表达了一个 软件产品 / 系统的概念模型。2、简答题简述需求与需求规约的基本性质需求具有如下5个基本性质:必要的,该需求是用户所要求的;无歧义的, 该需求只能用一种方式解释;可测的,该需求是可进行测试的;可跟踪的, 该需求可从一个幵发阶段跟踪到另一个阶段;可测量的该需求是可测量的。 需求规约满足以下 4个基本性质:重要性和稳定性程度:按需求的重要性和 稳定性,对需求进行分级;可修改的:在不过多地影响其他需求的前提下, 可以容易地修改一个单一需求;完整的:没有被遗漏的需求;一致的:不存在互斥的需求。简述软件需求的分类 软件需求可以分为两大类:一类是功能需求,一类是非功能需求,而非功能需 求又可分为性能需求、外部接口需求、设计约束和质量属性需求。 有哪几种常用的初始需求发现技术初始需求发现技术常包括以下几个:自悟交谈观察小组会提炼 简述需求规约的 3 种基本形式非形式化的需求规约:即以一种自然语言来表达需求规约,如同使用一种自 然语言写了一篇文章;半形式化的需求规约:即以半形式化符号体系来表达 需求规约;形式化的需求规约:即以一种基于良构数学概念的符号体系来编 制需求规约,一般往往伴有解释性注释的支持。简述软件需求规约的内容和作用需求规约是一个软件项 / 产品/ 系统所有需求陈述的正式文档,它表达了一个软 件产品 /系统的概念模型。需求规约的作用:需求规约是软件幵发组织和用户之间一份事实上的技术合 同书,是产品功能及其环境的体现;对于项目的其余大多数工作,需求规约 是一个管理控制点;对于产品/系统的设计,需求规约是一个正式的、受控的 起始点;需求规约是创建产品验收测试计划和用户指南的基础。 简述需求规约在项目开发中的基本作用需求规约是软件幵发组织和用户之间一份事实上的技术合同书,是产品功能 及其环境的体现。对于项目的其余大多数工作,需求规约是一个管理控制点对于产品/系统的设计,需求规约是一个正式的、受控的起始点。需求规约 是创建产品验收测试计划和用户指南的基础,即基于需求规约一般还会产生另 外两个文档初始测试计划和用户系统操作描述。简述需求规约和项目需求的不同需求规约是软件开发组织和用户之间一份事实上的技术合同书,即关注产品需 求,回答“交付给客户的产品 /系统是什么”;而项目需求是客户和开发者之间 有关技术合同 - 产品 /系统需求的理解,应记录在工作陈述中或其他某一项目文 档中,即关注项目工作与管理,回答“开发组要做的是什么” 。第三章 结构化方法1、解释以下术语:需求分析: 分析是针对一个问题,系统化地使用信息对该问题的一个估算。就 软件需求分析而言,其目标是给出“系统必须做什么”的一个估算,即需求规 格说明以一种系统化的形式,准确地表达用户的需求,其中应不存在二义 性和不一致性等问题。软件设计: 是在需求分析的基础上,定义满足需求所需要的结构,即针对给定 的问题,给出该问题的软件解决方案,确定“做什么”的问题。数据流图: 是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、 数据存储、加工、数据源和数据潭。交换型数据流图: 具有较明显的输入部分和变换部分之间的界面、变换部分和 输出部分之间界面的数据流图。事务型数据流图:数据到达一个加工T,该加工T根据输入数据的值,在其后的 若干动作序列中选出一个来执行的数据流图。模块: 执行一个特殊任务的一个过程以及相关的数据结构。2、简答题 何谓模块耦合?简述模块耦合的类型。 模块耦合是指不同模块之间相互依赖程度的度量。按从强到弱的顺序给出几种 常见的模块间耦合类型:内容耦合:当一个模块直接修改或操作另一个模块 的数据,或一个模块不通过正常入口转入到另一个模块的耦合;公共耦合: 两个或两个以上的模块共同引用一个全局数据项的耦合;控制耦合:是一个 模块通过接口向另一个模块传递一个控制信号,接收信号的模块根据信号值进 行适当的动作的耦合;标记耦合:若一个模块 A通过接口向两个模块 B和C 传递一个公共参数,那么称模块 B和C之间存在一个标记耦合;数据耦合: 模块之间通过参数来传递数据的耦合。何谓模块内聚?简述模块内聚的类型。 模块内聚是指一个模块内部各成分之间相互关联程度的度量。按从低到高的常 见内聚类型:偶然内聚:一个模块的各成分之间基本不存在任何关系的内聚;逻辑内聚:几个逻辑上相关的功能被放在同一模块中的内聚;时间内聚: 一个模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素关 联在一起的内聚;过程内聚:一个模块内部的处理成分是相关的,而且这些 处理必须以特定的次序执行的内聚;通信内聚:一个模块的所有成分都操作 同一数据集或生成同一个数据集的内聚;顺序内聚:一个模块的各个成分和 同一功能密切相关,而且一个成分的输出作为另一个成分的输入的内聚;功 能内聚:模块的所有成分对于完成单一的功能都是基本的内聚。何谓模块的控制域和模块的作用域? 模块的控制域是指这个模块本身以及所有直接或间接从属于它的模块的集合。模块的作用域是指受该模块内一个判定所影响的所有模块的集合。为了表达系统功能模型,结构化分析方法给出了哪些基本概念?它们是如何表 示的?其基本作用是什么?使用中应注意哪些问题?数据流:是数据的流动。数据流是一类术语,用于表达在分析中所要使用的、用于表达“客体”的信息。在使用中一般要给出标识,该标识是一个名词或名 词短语,并且往往直接使用实际问题空间中的概念。加工:是数据的变换单元,即它接受输入的数据,对其进行处理并产生输出。加工也是一类术语,用于表达在分析中所使用的、用于表达“处理”的信息。 在使用中,一般也给出标识,该标识一般 采用动宾结构,并且往往直接使用实 际问题空间中的概念,以便表达该加工的一定语义。以结构化分析方法建立的系统功能模型由哪些部分组成?每一部分的基本作用 是什么? 由“数据流”、“加工”、“数据存储”、“数据源”、和“数据潭”等术语组成 解释结构符“ +”、“| ”、“ ”的含义,并举例说明。“+”:顺序;例如: “学生成绩”是由“姓名” “性别”“科目”和“成绩”构成 的,记为学生成绩 =姓名+性别 +学号 +科目+成绩;“| ”:选择;例如: “性别”是“男”或是“女” ,记为 性别=男|女;“ ”:重复;例如: “学生成绩表”是由多个“学生成绩”构成的,记为学生成绩表 =学生成绩 。简述结构化方法总体设计的任务及目标。总体设计阶段的基本任务是把系统的功能需求分配到一个特定的软件体系结构 中。简述结构化方法详细设计的任务及目标。详细设计的目标是讲总体设计阶段所产生的系统高层结构映射为以这些术语所 表达的底层结构,也是系统的最终结构。简述变换设计与事务设计之间的区别。变换分析设计适用于具有明显变换特征的数据流图,事务分析设计适用于具有 明显事务特征的数据流图。简述启发式规则的基本原理。改进软件结构,提高模块独立性力求模块规模适中力求深度、宽度、扇 出、扇入适中尽力使模块的作用域在其控制域之内尽力降低模块接口的复 杂度力求模块功能可以预测。举例说明变换设计的步骤。设计准备一一复审并精化系统模型确定输入、变换、输出这三部分之间的 边界“第一级分解”系统模块结构图顶层和第一层的设计“第二级分 解”自顶向下,逐步求精。举例说明事务设计的步骤。设计准备复审并精化系统模型确定事务处理中心“第一级分解” 系统模块结构图顶层和第一层的设计“第二级分解” 自顶向下,逐步 求精。第四章 面向对象方法 UML1、解释以下术语类及其属性和操作: 类是一组具有相同属性、操作、关系和语义的对象的描述 类的属性是类的一个命名特性,该特性是有该类的所有对象所共享、用于表达 对象状态的数据。类的操作时对一个类中所有对象要做的事情的抽象。接口: 是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务。 关联及其链: 关联是类目之间的一种结构关系,是对一组具有相同结构、相同 链的描述。链是对象之间具有特定语义关系的抽象,实现之后的链通常称为对 象之间的连接。泛化: 是一般性类目(称为超类或父类)和它的较为特殊性类目(称为子类) 之间的一种关系,有时称为“ is-a-kind-of ”关系。聚合: 通过“一个类(类目)是另一类(类目)的一部分”这一性质,对关联集进行分类,凡满足这一性质的关联,都称为一个聚合。依赖: 是一种使用关系,用于描述一个类目使用另一类目的信息和服务。 2、简要回答以下问题:为了表达客观事物,UML给出了哪些基本术语? 类与对象接口协作用况主动类构件制品节点为了表达客观事物之间的关系,UML给出了哪些基本术语?这些术语之间是什么 关系?关联:结构关系;泛化:继承关系细化:精化关系;依赖:依赖关系。关联、泛化和细化都是一类特定的依赖。什么是对象的构成与表示?类是一组具有相同属性、操作、关系和语义的对象的描述,对象是类的一个实 例。什么是类图的构成成分? 类图是可视化地表达系统静态结构模型的工具,通常包括类、接口、关联、泛 化和依赖关系等。什么是状态图的构成成分? 状态图是显示一个状态机的图,其中强调了从一个状态到另一状态的控制流。 通常一个状态图中包含状态、转移及其相关的事件和动作、消息等。什么是顺序图的构成成分? 顺序图是一种交互图,即由一组对象以及按时序组织的对象之间的关系组成, 其中还包含这些对象之间所发送的消息。顺序图通常包含参与交互的对象、基 本的交互方式(同步和异步)以及消息等。在什么情况下需要建立状态图?状态图用于创建有系统 (或系统成分) 的行为生存周期模型, 表达有关系统 (系 统成分)的一种状态结构,给出有关系统(系统成分)在生存期间有哪些阶段、 每一个阶段可从事的活动以及对外所呈现的特性等方面的信息。在一个类的描述中,同时引入“操作”和“方法”的目的是什么? 表达模型包之间的关系。为什么使用包?为了控制信息组织的复杂性,UML提供了组织信息的一种通用机制包, 支持 形成一些可管理的部分。第五章 面向对象方法 RUP1、简答题RUP的定义及主要特点RUR是基于UML的一种过程框架,为软件幵发,即为进行不同抽象层之间“映射” 安排其开发活动的次序,指定任务和需求开发的制品,提供了指导;并未对项目中的制品和活动进行监控与度量,提供了相应的准则。RUP勺突出特点是,它是一种以用况为驱动的、以体系结构为中心的迭代开发、增量式开发。演化模型与“ RUPm量、迭代幵发”之间的关系。RUP迭代、增量式幵发是演化模型的一个变体,即规定了“大的”迭代数目一一 4个阶段,并规定了每次迭代的目标。初始阶段的基本目标是:获得与特定用况和平台无关的系统体系结构轮廓,以 此建立产品功能范围;编制初始的业务实例,从业务角度指出该项目的价值, 减少项目主要的错误风险。精华阶段的基本目标是:通过捕获并描述系统的大部分需求,建立系统体系结 构基线的第一个版本,主要包括用况模型和分析模型,减少次要的错误风险; 到该阶段未,就能够估算成本、进度,并能详细地规划构造阶段。构造阶段的基本目标是:通过演化,形成最终的系统体系结构基线,开发完整 的系统,确保产品可以开始向客户交付,即具有初始操作能力。移交阶段的基本目标是:确保有一个实在的产品发布给用户群。期间培训用户 如何使用该软件。RUP和UML之间的关系。RUP和UML是一对“姐妹”,它们构成了一种特定的软件幵发法学。其中, UML 作为一种可视化建模语言,给出了表达事物和事物之间关系的基本术语,给出 了多种模型的表达工具;而 RUP利用这些术语定义了需求获取层、系统分析层、 设计层、实现层,并给出了实现各层模型之间映射的基本活动以及相关的指导 什么是特征?举例说明如何描述它 特征是一个新的项及其简要描述,例如:“按不同科目计算平均成绩” :“计算平均成绩:按所学的不同科目计算每一个 学生的期末考试平均成绩,给出各分数段的人数分布情况。 ” 需求获取层及相关概念。需求获取层目标:使用 UML 中的用况、参与者以及依赖等术语来抽象客观实际 问题,形成系统的需求获取模型;基本术语:用况、参与者、用于表达用况参 与者之间关系的关联、用于表达用况之间的包含和扩展、用于表达参与者之间 关系的泛化,术语确定了系统用况模型的各种形态。需求获取模型的基本组成。使用 UML 中的用况、参与者以及依赖等术语来抽象客观实际问题,形成系统的 需求获取模型。建造一个系统需求获取模型的活动和任务,以及各活动的输入和输出。 发现描述参与者和用况:输入:业务模型或领域模型,补充需求,特征表;输出:用况模型概述,术语表。赋予用况优先级:输入:用况模型 概述,补充需求,术语表;输出:体系结构描述 用况模型视角。精华用况:输入: 用况模型概述,补充需求,术语表;输出:用况 精化。构造人机接口原 型:输入:用况 精华 ,用况模型 概述 ,补充需求,术语表;输出:人机接 口原理。用况模型结构化:输入:用况 精华,用况模型概述,补充需求, 术语表;输出:用况模型 精化 。如何描述系统的参与者和用况? 描述参与者:首先,对发现的每一系统参与者都要进行命名;其次,对参与者 进行描述,主要给出它的角色以及它对环境的要求 描述用况:当确定了系统的一个用况时,就应对其进行描述。该描述一般应首 先给出该用况的名字;然后给出该用况的概要说明。需求分析层及相关概念。 在系统用况模型的基础上,创建系统分析模型以及在该分析模型视角下的体系 结构描述,所创建系统分析模型是系统的一种概念模型,解决系统用况模型中 存在的二义性和不一致性问题,并以一种系统化的形式准确地表达用户的需求。 需求分析模型的基本组成。分析类:是类的一种衍型,很少有操作和特征标记,而用责任来定义其行为, 并且其属性和关系也是概念性的,分为:边界类、实体类、控制类。用况细化:是一个协作。针对一个用况,其行为可用多个分析类之间的相互作 用来细化,并记为用况细化 分析 。分析包:是一种控制信息组织复杂性的机制,提供了分析制品的一种组织手段, 形成了一些可管理的部分。建造一个系统需求分析模型的活动和任务,以及各活动的输入和输出。 体系结构分析:输入:用况模型、补充需求、业务模型或领域模型、体系结 构描述用况模型 ;输出:分析包 概述 、分析类 概述 、体系结构描述 分析 细化用况:输入:用况模型、补充需求、业务模型或领域模型、体系结构描述分析;输出:用况细化分析、分析类概述。对类分析:输入:用况 细化分析、分析类概述;输出:分析类完成。对包进行分析:输入: 系统体系结构描述 分析 、分析包 概述 ;输出:分析类 完成 。 需求分析模型对以后开发工作的影响。对设计中子系统的影响。分析包一般将影响设计子系统的结构 对设计类的影响。分析包可以作为类设计时的规格说明。 对用况细化 设计的影响。用况细分 分析 对用况细化 设计 有两方面影响, 一个是它们有助于为用况创建更精确的规格说明,另一个是当对用况进行设计 时,用况细化 分析可作为其输入。需求获取模型与需求分析模型之间的比较。语言描述不同:客户语言与幵发语言;视图:系统外与系统内;结构: 使用用况以结构化,外出外部视角系统结构与使用涎型类结构化,给出内部视 角系统结构;作用:标识“系统应该做什么,不应该做什么”与可以做出幵 发者理解系统如何勾画、如何设计和如何实现基础;问题:可能存在冗余、 不一致和冲突等问题与解决了上述问题;捕获系统功能,包含体系结构方面 具有意义的功能与给出细化系统功能,包括在体系结构方面具有意义的功能; 定义一些进一步需要在分析模型中予以分析与给出每一个用况细化。 设计层及相关概念。设计目标:定义满足系统 / 产品分析模型所规约需求的软件结构;基本术语:设 计类、用况细化 设计 、设计子系统和接口、以及用于表达子系统之间关系依 赖、用于表达设计类之间关系的关联等,这些术语确定了系统设计模型的各种 形态。设计模型的基本组成。 设计子系统、设计类、用况细化 设计 、接口、以及用于表达子系统之间关系 依赖、用于表达设计类之间关系的关联等,这些术语确定了系统设计模型的各 种形态。建造一个系统设计模型的活动和任务,以及各活动的输入和输出体系结构设计:输入:用况模型、补充需求、分析模型、体系结构描述分析模型角度;输出:子系统概述、接口 概述、设计类概述、部署模型概 述、体系结构描述设计。设计用况:输入:用况模型、补充需求、分析模 型、部署模型;输出:用况设计-实现、设计类概述、子系统概述、接口 概述;对类设计:输入:用况设计-实现、设计类概述、接口 概述、 分析类完成;输出:设计类完成设计子系统:体系结构描述设计、子 系统概述、接口 概述;输出:子系统完成、接口 完成。需求分析模型与设计模型之间的比较。分析模型设计模型概念模型,是对系统的抽象,而不涉及软件模型,是对系统的抽象,而不涉及实现细节实现细节可应用于不同的设计特定于个实现使用了 3个衍型类:控制类、实体类和使用了多个衍型类,依赖于实现语言边界类几乎不是形式化的是比较形式化的幵发的费用少(相对于设计是 1: 5)幵发的费用高(相对于设计是 5: 1)结构层次少结构层次多动态的,但很少关注定序方面动态的,但更多关注定序方面概括地给出了系统设计,包括系统的体表明了系统设计,包括设计视角下的系系结构统体系结构整个软件生产周期中不能予以修改、增 整个软件生存周期中应该予以维护加等为构建系统包括创建设计模型, 定义一 构建系统时,尽可能保留分析模型所定个结构,是一个基本输入义的结构第六章软件测试1基本概念软件测试:按照特定规程发现软件错误的过程。在 IEEE提出的软件工程标准术 语中,对软件测试的定义是:使用人工或自动手段,运行或测定某个系统的过 程,其目的是检验它是否满足规定的需求,或清除了解预期结果与实际结果之 间的差异。测试用例:为了发现程序中的故障而专门设计的一组数据或脚本。测试覆盖率:疋里扌田述一个或一组测试的效率。2、简答题软件测试与调试之间的区别。测试从一个侧面证明程序员的“失败”。调试是为了证明程序员的正确。测 试以已知条件幵始,使用预先定义的程序且有预知的结果,不可预见的仅是程 序是否通过测试。调试一般是以不可知的内部条件幵始,除统计性调试外,结 构是不可预见的。测试是有计划的,并要进行测试设计。调试是不受时间约 束的。测试室一个发现错误、改正错误、重新测试的过程。调试是一个推理 过程。测试的执行是有规程的。调试的执行往往要求程序员进行必要的推理。测试经常是由独立的测试组在不了解软件设计的条件下完成的。调试必须由了解详细设计的程序员完成。大多数测试的执行和设计可由工具支持。调试 时,程序员能利用的工具主要是调试器。简述语句覆盖、分支覆盖、条件组合覆盖、路径覆盖的含义及它们之间的关系。 路径覆盖:执行所有可能穿过程序控制流程的路径。 语句覆盖:至少执行程序中所有语句一次。 分支覆盖:至少将程序中的每一个分支执行一次。条件组合覆盖:使每个判定中的所有可能的条件取值组合至少执行一次。 关系:语句覆盖冬分支覆盖冬条件组合覆盖冬路径覆盖 简述单元测试、集成测试、有效性测试的含义及它们之间的区别。 单元测试:主要检验软件设计的最小单元模块。该测试以详细设计文档为 指导,测试模块内的重要控制路径。集成测试:是软件组装的一个系统化技术,其目标是发现与接口有关的错误, 将经过单元测试的模块构成一个满足设计要求的软件结构。 有效性测试:发现软件实现的功能与需求规格说明书不一致的错误。区别:单元测试集中于单个模块的功能和结构检验;集成测试集中于模块组合 的功能和软件结构检验;有效性测试验证软件需求的可追溯性。 简述路径测试技术、事务流测试技术的主要依据。路径测试技术依据的是程序的逻辑结构;事务流测试技术依据软件行为的描述。 针对程序流程图中出现的各种循环,如何选取测试路径? 单循环:V1最小循环次数为0,最大次数为N,且无“跳跃”值。2非零最小循环次数,且无“跳跃”值。3具有跳跃值的单循环。 嵌套循环: 1从最深层的循环开始,设定所有外层循环取它的最小值。2 测试最小值减 1 、最小值、最小值加 1 、典型值、最大值减 1 、最大值、最大值加 1 。与此同时,测试“跳跃值”边界设计内循环在典型值处,按 测试外层循环,直到覆盖所有循环。 级联循环:如果级联循环中每个循环的控制变量有关,则可视为嵌套循环。如果级联循环中每个循环的控制变量无关,则可视化单循环。 简述程序流程图与事务流程图之间的主要区别。基本模型元素所表达的语义不同一个事务不等同于路径测试中一条路径, 可能在中间某处就完成了某一用户工作,终结了一个事务事务流程图中的分 支和节点可能是一个复杂的过程。简述白盒测试技术的要点。白盒测试技术依据程序的逻辑结构,以控制流程图作为被测对象建模工具,其 中涉及过程块、分支、节点、链以及路径,并针对测试民,给出了4 种覆盖策略:语名覆盖、分支覆盖、条件组合覆盖和路径覆盖,它们之间具有偏序关系, 并且可根据项目需求给出其他覆盖策略。该技术的基本要点是:采用控制流程 图来表达被测程序模型,揭示程序中的控制结构;通过合理地选择一组穿过程 序的路径,以达到某种测试度量。简述事务流程图测试技术的要点。事务流测试技术是一种功能测试技术,目前提出了很多功能测试技术,如定义 域测试技术、等价类测试技术以及基于因果图的测试技术等,统称为黑盒子测 试技术。黑盒测试将被测软件看成黑盒子,只通过外部的输入和输出来发现软 件中的错误,因此黑盒测试是一种基于软件规约的测试。事务流测试技术是基 于软件规约的,对错误的假定是软件通过了与预想不同的事务路径;采用事务 流程图作为模型表达式,支持创建被测软件的模型第七章 软件生存周期过程与管理1、基本概念软件生存周期过程: 是软件产品或系统的一系列相关活动的全周期。从形成概 念开始,历经开发、交付使用、在使用中不断修订和演化,知道最后被淘汰, 让位于新的软件产品。软件生存周期模型: 是一个包括软件产品开发、运行和维护中有关过程、活动 和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。过程管理: 过程规则与管理是软件项目管理的一项重要工作。没有过程规划就 淡不上过程管理乃至项目管理,没有过程管理就不可能存在有效的软件工程。2、简答题 简述软件开发中的过程类,以及它们的基本作用和它们之间的基本关系。 基本过程:是指那些软件生产直接相关的活动集,分 5 个过程:获取过程、供 应过程、开发过程、运行过程和维护过程。支持过程:是指有关各方面按他们的目标所从事的一系列相关支持活动集,有 助于提高系统或软件产品的质量,分为:文档过程、配置管理过程、质量保证 过程、验证过程、确认过程、联合评审过程、审计过程和问题解决过程等。组织过程:是指那些与软件生产组织有关的活动集,分管理过程、基础设施过 程、培训过程、改进过程。在 ISO/IEC 12207-2008 中如何描述一个过程?举例说明。为获取方获取一个软件产品或服务,为提供方幵发、运行、维护、提供和销 毁一个软件产品,建立了一种软件生存周期框架,包含过程、活动和任务,并通过过程分类、过程描述种良好的定义技术,给出了它们之间的内在关系。为软件生存周期过程的定义、控制和改进提供了一个过程,即生存周期 模型管理过程。什么是验证和确认?简述它们的作用和区别。验证:证实一个过程或项目的每一个软件工作产品 / 服务是否正确地反映所规约 的需求。确认:证实所期望的软件工作产品是否满足其需求。 验证是通过提供的客观证据,证实规约的需求是否得以满足;确认是通过提供 的客观证据,证实有关特定期望的使用或应用的需求是否得以满足。 简述瀑布模型以及可适应的情况。瀑布模型将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,形如瀑布流水,最终得到产品;适应情况:需求已被很好的理解,并且开 发组织非常熟悉为实现这一模型所需求的过程。简述演化模型以及可适应的情况。 演化模型表达了一种弹性的过程模式,由一些小的开发步组成,每一步历经需 求分析、设计、实现和验证,产生软件产品的一个增量,通过这些迭代,最终 完成软件产品的开发;适应情况:主要针对事先不能完整定义需求的软件开发。 简述增量模型的优缺点。优点:第一个可交付版本所需要的成本和时间是较少的,从而可减少幵发由 增量表示的小系统承担的风险;由于很快发布第一个版本,因此可以减少用 户需求的变更;允许增量投资,即在项目幵始时可以仅对一个或两个增量投 资。缺点:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造 成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些 增量就可能需要重新幵发,重新发布;由于进度和配置的复杂性,可能会增 大管理成本,超出组织的能力。简述螺旋模型以及它与其他模型之间的主要区别。螺旋模型是瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立 的一种软件幵发模型。与其他模型之间的主要区别:螺旋模型关注解决问题的基本步骤,即标识问 题,标识一些可选方案,选择一个最佳方案,遵循动作步骤并实施后续工作, 突出特征,在幵发的迭代中实际上只有一个迭代过程真正幵发了可交付的软件; 与演化模型和增量模型相比与深化模型和增量模型相比,同样使用了瀑布模 型作为一个嵌入的过程,即分析、设计、编码、实现和维护的过程,并且在框 架和全局体系结构方面是等同的。但是,螺旋模型所关注的阶段以及它们的活 动是不同的,如增加一些管理活动和支持活动。尽管增量模型也有一些管理活 动,但它基于以下假定:需求是最基本的、并且是唯一的风险源,因而在螺旋 模型中增大了决策和风险的空间,螺旋模型扩大了增量模型的管理范围;如 果项目的幵发风险很大或客户不能确定系统需求,在更广泛的意义上来讲,还 包括一个系统或系统类型的要求,这时螺旋模型就是一个好的生存周期模型。 如何创建一个软件项目的生存周期过程?选择软件生存周期模型;细化所选择的生存周期模型;为每一个活动或 任务标识合适的实例数目;确定活动的时序关系,并检查信息流;建立过 程计划的文档。如何监控一个软件项目的生存周期过程?软件生存周期过程的监控;生存周期过程改变所产生影响的评估;改变 的实施。简述软件生存周期过程、软件生存周期模型、软件项目过程管理之间的基本关 系。过程改善:是指人为设计的一个活动程序,其目的是改进组织的过程性能和成熟度,并改进这一程序的结果。专用目标:每一个过程域中都有一个或多个“专用目标”,每一个过程域中都有一个或多个“专用目标”,用于描述满足该过程域必须呈现的一些独有特征。共用目标:每一个过程域中都有一个或多个“共用目标”,用于描述实现制度化 的该过程必须呈现的特征。专用实践:每一个过程域中都有一个或多个“专用实践”,这些专用实践被认为 对于达到该过程域的专用目标是重要的活动,即期望以专用实践所描述的活动, 会导致达到一个过程域的专用目标。共用实践:每一个过程域中都有一个或多个“共用实践”,这些共用实践被认为 对于达到该过程域相关的共用目标是重要活动。能力等级:是指在单一过程域中已达到的过程改善。成熟度等级:是指达到预先定义的一组过程域所有目标的一种过程改善等级。2、简答题CMM提出所基于的基本思想。该模型基于过程途径思想,通过过程把软件质量的3个支撑点一一受训的人员、规程和方法、工具和设备进行集成,以幵发所期望的系统/产品。为此,CMM紧紧围绕幵发、维护和运行,把经过证明的“最佳实践“放在一个结构中。该结 构有乃至于指导组织确定其过程的发送优先次序;有乃至于指导这些改善的实施,以提高其过程能力和成熟度,并且还支持其它领域(如获取和服务)能力 成熟度模型幵发。什么是过程制度化?在 CMM中过程制度化分为几个等级?简要回答每一个等级 的主要特征。所谓的过程制度化,是指过程被渗透在执行工作的方式中,执行的工作有一定 的承诺,并且在组织范围内是一致的。过程制度化分为:已执行过程、已管理 过程、已定义过程、已定量管理过程、持续优化过程。简述CMM模型的模型部件及部件间的关系O简述CMM模型支持的两种过程意路径。简介性注目关过程另一个称:一个称为能力等用关过程域。f11,该路径可使组织针对单一过共域不断改善该过程域;不断改善一组相用熟度等级,该路径可使组织通过关注一组过简述专用实践作产用实践乙间的关系,这些专用实践被答:专用实践:每一个过程域中都有一个或多个“专用实践” 认为对于达到该过程域的专用目标是重要活动,即期望以专用实践所描述的活 动,会导致达到一个过程域的专用目标 共用实践:每一个过程域中都有一个或多个“共用实践” ,这些共用实践被认为 对于达到该过程域相关的共用目标是重要活动,例如,对共有目标“该过程予 以制度化,使之成为一个已管理过程“而言,一个共用实践是”为该过程的执 行、工作产品的开发以及该过程的服务,提供充足的资源“。 之所以称为“共用实践“,是因为同一实践可应用于多个过程。 简述每一成熟度等级所包含的过程域。在成熟度等级,把开发、维扩、运行中的过程分为 4 个组。成熟度等级 2 级包含 7 个过程域:配置管理、测量与分析、项目监控、项目 规划、过程和产品质量保证、需求管理、提供方协议管理。成熟度等级 3 级包含 11 个过程域:决策分析与解决、集成项目管理、组织过 程定义、缓缓过程关注、组织培训、产品集成、需求开发、风险管理、技术解 决方案、验证、确定。 成熟度等级 4 级包含 2 个过程域:组织过程性能和定量项目管理。 成熟度等级 5 级包含 2 个过程域:原因分析与解决和组织创新和部署。 简述项目规划过程域的专用目标与专用实践答:专用目标1: SG1建立估算,4个专用实践:SP1.1估算项目规模;SP1.2建 立工作产品和任务属性的估算; SP1 .3定义项目生存周期; SP1 .4确定工作量和 成本的估算。专用目标 2: SG2 开发项目计划, 7个专用实践: SP2.1 建立预算和进度; SP2.2 标识项目风险; SP2.3 规划数据管理; SP2.4 规划项目资源; SP2.5 规划需要的 知识和技能;SP2.6规划利益攸关方参与;SP2.7建立项目计划。 专用目标3:SG3获得对该计划的承诺,3个专用实践:SP3.1评审该项目的计划;SP3.2调和工作和资源等级,使之一致;SP3.3获得计划承诺。简述需求开发过程域的专用目标与专用实践答:专用目标 1: SG 1开发客户需求, 2 个专用实践: SP1.1 引出要求; SP1.2 开发客户需求。专用目标2: SG2幵发产品需求,3个专用实践:SP2.1建立产品和产品构 件的需求; SP2.2 分配产品构件需求; SP2.3 标识接口需求。专用目标3:SG3分析并验证需求,5个专用实践:SP3.1建立操作概念和场 景; SP3.2 建立所需功能的定义; SP3.3 分析需求; SP3.4 分析需求,达到权衡; SP3.5 确认需求。简述共用目标 2 及其相关的共用实践。共用目标2:GG2ffi过程制度化为一个已管理过程, 包含10个共用实践:GP2.1 建立组织策略;GP2.2规划该过程;GP2.3提供资源;GP2.4指定责任;GP2.5培训人员;GP2.6管理配置;GP2.7标识相关利益方的参与;GP2.8 监控该过程;GP2.9客观地评估过程的符合性;GP2.10以高层管理的视觉 评审状态
展开阅读全文