1、考试大纲本章要求了解围绕软件开发所需要的过程、活动和任务,掌握过程之间的基本关系,基本掌握一个软件项目的过程规划和监控。识记过程分类过程之间的关系领会软件实现过程、活动和任务;软件需求分析过程、活动和任务;软件体系结构设计过程、活动和任务软件验证过程、活动和任务;软件确认过程、活动和任务软件需求分析过程、软件体系结构设计过程与RUP需求获取、需求分析和设计之间的关系瀑布模型、增量模型、演化模型、螺旋模型软件生存周期概述开发所涉及的活动 软件生存周期过程软件生存周期过程软件过程(process):活动的一个集合活动(activity):任务的一个集合任务(task):将输入转换为输出的操作过程分
2、类按过程的主体,可分为三类过程:基本过程(primary processes):指与软件生产直接相关的活动集。支持过程(supporting processes):有关各方按其目标所从事的一系列支持活动集。组织过程(institutional processes):指与软件生产组织有关的活动集。基本过程基本过程 获取过程供应过程开发过程运行过程维护过程 基本过程开发过程开发过程是软件开发者所从事的一系列活动。包括13个活动:过程的实施准备系统需求分析系统结构设计软件需求分析软件体系结构设计软件详细设计软件编码和测试软件集成软件合格测试系统集成系统合格测试软件安装软件验收支持基本过程开发过程过程
3、的实施准备目的:为开发过程准备基本的约定,即建立过程模型主要任务:依据项目的规模、重要程度以及复杂性,定义或选择软件生存周期模型并将开发过程的活动和任务映射到该软件生存周期模型。依据文档过程,建立该过程文档;并将该文档置于配置管理过程之下,并作为实施变更控制的依据。依据问题解决过程,发现软件工作产品和任务中的问题和不一致性,并建立相应的文档。按合同规定,实现相应的支持过程为执行开发过程和支持过程的活动,对开发组织所建立的标准、方法、工具和计算机程序设计语言进行选择、剪裁和应用。依据开发和验收的所有需求(包括安全),为执行过程的活动制定相应计划,例如风险管理计划、质量保证计划等,这些同样也包括标
4、准、方法、工具、措施以及责任等,必要时这些计划可以分别建立。基本过程开发过程软件需求分析目的:确定软件需求及质量特性需求。主要任务:编制软件需求规格说明书 功能和性能需求;外界与软件的接口 合格需求;安全需求;保密需求;人机界面需求;用户文档;数据定义和数据库需求;用户维护需求;用户操作和运行需求;检查软件需求 是否能够跟踪系统需求、结构;从外部上,是否与系统需求保持一致;需求内部的一致性;是否具有可测性;测试覆盖是否可达到要求;操作(设计和实现),维护的可行性等 依据联合评审过程,对软件需求进行评审基本过程开发过程软件体系结构设计该活动是针对每一个软件项(或已标识的软件配置项),主要任务为:
5、把那些对软件项的需求转变为一种体系结构。开发关于软件项的外部接口以及软件项的各个软件部件间的接口的顶层设计,并形成文档。编制数据库的顶层设计,并形成文档。编制用户文档的最初版本,并形成文档。确定软件集成的初步测试需求和进度安排,并形成文档。根据下列评价准则,评价软件项的体系结构、接口和数据库设计,评价结果应形成文档。按照联合评审,对软件体系结构进行评审。基本过程开发过程总的来说,成功实现开发过程的结果是:收集了软件开发需求并达成协定;开发了软件产品或基于软件的系统;开发了证明最终产品是基于需求的中间工作产品;在开发过程的产品之间,建立了一致性;根据系统需求,优化了系统质量因素(例如速度、开发成
6、本、易用性等);提供了证明最终产品满足需求的证据(例如测试证据);根据协定的需求,安装了最终产品。基本过程供应过程供应过程供应过程是供方为了向客户提供满足需求的软件产品或服务所从事的一系列活动和任务。目的:向客户提供一个满足已达成需求的产品或服务。该过程的启动,或通过为应答需方的招标书而开始编制投标书的决定,或通过与需方签订一项提供系统、软件产品或软件服务的合同。继之,确定为管理和保证项目所需的规程和资源,包括编制项目计划,执行计划,一直到将系统、软件产品或软件服务交付给需方为止。该过程包括的基本活动为:启动;准备投标 签订合同 规划 执行和控制 复审和评估 交付和完成基本过程供应过程总的来说
7、,成功实现该过程的结果是:对客户请求产生了一个响应;在客户与供方之间建立了一个关于开发、维护、运行、包装、交付和安装产品和/或服务的协定;供方开发了一个符合协定需求的产品和/或服务;根据协定的需求,向客户交付了该产品和/或服务;根据协定的需求,安装了该产品。支持过程支持过程按过程中活动的不同主体,将支持过程(类)分为8个过程:文档过程配置管理过程质量保证验证过程确认过程联合评审审计过程问题解决支持过程文档过程文档过程记录由某一过程或活动所产生信息的过程,包括4个活动:过程的实施准备 主要任务:开发一个计划,用于标识软件产品生存周期中要产生的文档对于所标识的每一个文档,应给出:标题或名字;目的;
8、读者;文档输入、开发、评审、修改、提交、存储、维护以及配置管理等的规程和责任。设计与开发主要任务:根据适用的文档标准,设计每一文档的格式、内容说明、图表设置以及包装等。可以使用自动化的文档工具,确保每个文档输入数据的来源和适用性。按文档标准,编辑并评审每一文档的格式、技术内容和表示风格,在分发前需经主管人员批准。制作与发行维护支持过程配置管理过程配置管理过程目的:建立并维护一个过程或一个项目的所有工作产品的完整性。包括以下6个活动:过程实现配置标识配置控制配置状态统计配置评价发布管理和交付支持过程验证过程验证过程是一个确定某项活动的软件产品是否满足在以前的活动中施加于它们的需求和条件的过程。目
9、的:证实一个过程和/或项目的每一软件工作产品和/或服务恰当地反映了已规定的需求。该过程包括的活动过程实现 确定项目是否需要进行一定的验证工作,以及验证工作是否需要一个独立组织,分析项目需求的关键性。如果一个项目需要进行验证工作,就应为验证该软件产品而建立一个验证过程。如果一个项目需要进行独立的验证工作,就要选择一个负责进行验证的合格组织,并确保该组织具有实施验证活动的独立性和权力。基于有关范围、重要程度、复杂性和关键性的分析,确定需要进行验证的生存周期活动和软件产品。根据已确定的验证任务,制定验证计划并形成文档。实现该验证计划。支持过程验证过程验证文档验证过程验证需求验证设计验证编码验证集成验
10、证总的来说,成功实施该过程的结果是:制定并实现验证策略;标识验证所有要求的软件工作产品的准则;执行所要求的验证活动;标识并记录缺陷;给出对顾客和其他相关方可用的验证活动的结果。支持过程确认过程确认过程确认过程是一个确定需求和最终的、已建成的系统或软件产品是否满足特定预期用途的过程。目的:证实对软件工作产品特定预期使用的需求已予实现。该过程可以作为开发过程中软件验收支持活动的一个部分来执行。该过程可以由来自同一组织一个人或多个人来实施,也可以由来自另一组织的人员来实施。该过程包括的活动:过程实现确认支持过程确认过程过程实现该活动包括以下项任务:确定项目是否需要进行确认工作,以及确认工作所需要的一
11、定组织上的独立性。如果项目需要进行确认工作,就应建立确认系统或软件产品的一个确认过程,并选择以下定义的确认任务,其中包括用于执行确认任务的方法、技术和工具。如果项目需要进行独立的确认工作,就应选择一个负责执行确认工作的合格组织,并确保执行者具有执行确认任务的独立性和权力。制定确认计划并形成文档。实现该确认计划。确认结果。支持过程确认过程确认该活动包括以下项任务:为了对测试结果进行分析,准备所选择的测试需求、测试用例和测试规格说明。确保这些测试需求、测试用例和测试规格说明体现了特定预期用途的特殊需求。进行前2项任务中确定的测试,一般包括:强度、边界和异常输入的测试;软件产品隔离错误影响测试以及使
12、错误影响最小化能力的测试,即:在失效时,测试该软件产品是否能得体降级;在过载、边界和异常条件下,测试该软件产品是否能向操作者提出协助请求;代表性用户使用该软件产品成功完成其预期任务的测试。确认软件产品满足它的预期用途。在目标环境选定区域中,适当对该软件产品进行测试。组织过程组织过程类指那些与软件生产组织有关的过程。包括4个过程:管理过程基础设施过程培训过程改进过程组织过程管理过程管理过程定义:管理过程包括由管理其对应过程的任何一方所执行的一般性活动和任务,管理人员负责:产品管理、项目管理和对所应用的那些过程(例如,获取、供应、开发、运行、维护或支持过程)的任务管理。主要活动包括:过程的启动和范
13、围定义 规划实施与控制评审与评估测量表决(closure)组织过程管理过程过程的启动和范围定义主要任务:通过建立那些要承担的过程的需求,启动该管理过程通过检查执行并管理这些过程所需要的资源(人、物资、技术和环境)是否可用、充分和适用,以及时间上是否可达,来建立这些过程的可行性必要的话,按各方共识,修改这些过程的需求,以达成完成准则。规划主要任务:为过程的执行制定计划。该计划应包括有关活动和任务的描述,并标识即将提供的软件产品。该计划的主要内容:既时完成任务的进度安排;工作量的估计;执行任务所需要的适当资源;任务的分配;与任务或过程自身有关的风险(量化);职责的分派;在整个过程中采用的质量控制测
14、量;与过程执行有关的费用;环境和基础设施的规约。组织过程管理过程实施与控制主要任务:启动管理计划的实施,以满足所设定的目标和准则,并对过程实施控制。监督过程的执行,提供过程进展的内部报告,并按照合同的规定向需方提供过程进展的外部报告。调查、分析和解决在过程执行期间发现的问题。问题的解决可能导致对计划的变更。对变更的影响进行确定、控制和监督。问题及其解决方案应形成文档。按协商确定的时间,报告过程进展情况,声明按计划进行,并解决进展中的疏漏情况。按照组织规程和合同的要求,这种报告包括内部报告和外部报告。组织过程管理过程评审与评估主要任务:对软件产品和计划进行评价,以确定是否满足需求。对在过程执行期
15、间完成的软件产品、活动和任务的评价结果进行评估,以确定是否达到目标和完成计划。测量主要任务:建立并维护测量承诺。确保满足所有的测量过程的资源、人员和承诺的先决条件。规划测量过程。制定一个详细的计划以启动、指导、监督并评价数据收集、分析、解释和存储活动。按计划进行测量。根据测量计划任务的输出生成信息产品和性能测量(值)。评价测量。组织过程管理过程表决主要任务:当所有软件产品、活动和任务均完成时,应按照合同中或组织规程中规定的准则,确定该过程是否完成检查所软件产品、开展的活动和任务的结果和记录是否完整。这些结果和记录均应按合同中的规定在适当的环境中予以归档组织过程基础设施过程基础设施过程基础设施过
16、程是为其他过程建立和维护所需基础设施的过程。基础设施可以包括用于开发、运行或维护的硬件、软件、工具、技术、标准和设施。包括下述活动:过程实施的准备建立基础设施维护基础设施组织过程基础设施过程过程实施的准备主要任务:为满足使用这一过程的那些过程的需求,考虑适用的规程、标准、工具和技术,定义基础设施并建立相应的文档。制定基础设施计划并形成文档。建立基础设施主要任务:制定基础设施配置计划并形成文档,其中应考虑功能、性能、安全、安全保密、可用性、空间要求、设备、费用和时间约束。为了实施有关过程,及时安装基础设施。基础设施维护主要任务:维护、监督和改进基础设施,以确保基础设施持续地满足应用本过程的过程要
17、求。其中应确定将基础设施置于配置管理之下的程度。组织过程改进过程改进过程是一个建立、评估、测量、控制和改进软件生存周期过程的过程。主要活动包括:过程建立主要任务:建立一组适合于所有软件生存周期过程的组织过程,以应用到其业务活动中。这些过程及其在特定情况下的应用应在组织的出版物中形成文档。合适时,应建立过程控制机制,以便开发、监督、控制和改进这些过程。过程评估主要任务:制定过程评估规程,将其形成文档并加以应用。应保存并维护评估记录。规划过程评审并按适当的间隔进行之,以确保评估结果具有明显的、持续的合适性和有效性。过程改进主要任务:当过程评估和评审的结果表明必要时,对其过程实施改进。收集并分析历史
18、的、技术的和评价的数据,以增进对已应用过程的强项和弱项的了解。收集、维护和使用质量成本数据,以改进组织的过程。软件过程之间的关系获取过程获取过程获取过程供应过程供应过程管理过程管理过程运行过程运行过程开发过程开发过程维护过程维护过程获取者获取者供应者供应者管理者管理者运行者运行者用用 户户开发者开发者维护者维护者开发者开发者维护者维护者组织过程:管理、改进组织过程:管理、改进.支持过程:文档、质量保证、支持过程:文档、质量保证、配置管理配置管理.合合同同使使用用合同观点合同观点管理观点管理观点运行观点运行观点开发观点开发观点支持观点支持观点剪裁过程剪裁过程定义:剪裁过程是针对某一软件产品对本标
19、准进行基本剪裁的一个过程。意图:围绕一个组织,其中该组织在一个协议中使用了这一标准影响一个项目,其中要求该项目满足一个引用该标准的协议反映一个组织的需要,其中该组织要供给产品或服务主要活动包括:标识项目环境;请求输入;选择过程、活动和任务;将剪裁决定和理由形成文档。软件生存周期模型软件生存周期模型 把一个软件生存周期模型描述为:一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。中国计算机科学与技术百科全书称软件生存周期模型为“软件开发模型”,并把它定义为:软件开发的全部过程、活动和任务的结构框架。软件生存周期模型能清晰、直观地表达软件开发全
20、过程。明确规定了软件开发要完成的主要活动和任务。常用的软件生存周期模型有:瀑布模型、增量模型、原型模型、演化模型、螺旋模型、喷泉模型、第四代技术过程模型等。软件生存周期模型瀑布模型瀑布模型项目的开发依次经过:需求、设计、编码和单元测试、集成以及维护这一基本路径。在每一阶段提交以下产品:软件需求规约、设计文档、实际代码、测试用例、最终产品等。“反向”(Rework)步骤流表示对前一个可提交产品的重复变更。由于所有开发活动的非确定性,因此是否需要重复变更,这仅在下一个阶段或更后的阶段才能认识到。返工不仅在以前阶段的某一地方需要,而且对当前正在进行的工作也是需要的。软件生存周期模型瀑布模型瀑布模型的
21、优点在决定系统怎样做之前,存在一个需求阶段,鼓励对系统“做什么”进行规约(即设计之前的规约)。在建造构件之前,存在一个设计阶段,鼓励规划系统结构(即编码之前的设计)。在每一阶段结束时进行复审,允许获取方和用户的参与。允许基线和配置早期接受控制。前一步工作产品可作为下一步被认可的、文档化的基线。软件生存周期模型瀑布模型瀑布模型的缺点客户必须能够完整、正确和清晰地表达他们的需求;开发人员一开始就必须理解其应用。在开始的两个或三个阶段中,很难评估真正的进度状态。需求的不稳定性,设计、编码和测试阶段都可能发生延期。在一个项目的早期阶段,过分地强调了基线和里程碑处的文档;可能要花费更多的时间,用于建立一
22、些用处不大的文档。当接近项目结束时,出现了大量的集成和测试工作。直到项目结束之前,都不能演示系统的能力。软件生存周期模型瀑布模型瀑布模型适用的情况在开发中,向下、渐进的路径占支配地位。即需求已被很好地理解;过程设计人员很清楚,开发组织非常熟悉为实现这一模型所需要的过程。为了避免产生过多的反复迭代工作,增加开发成本,一般在准备采用瀑布模型(也包括其他模型)时,需要考虑以下2个问题:过程设计人员必须对初始产品(通常是SRS)的不确定性进行评估组织是否具有熟练实施每个活动和任务的历史经验软件生存周期模型增量模型增量模型增量模型也叫渐增模型,指按需求分组形成一个个的增量,并对每一个增量实施瀑布式开发。
23、当使用增量模型时,第一个增量往往是核心的产品,实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估,都做为下一个增量发布的新特征和功能,直到产生最终的完善产品。软件生存周期模型增量模型该模型有一个假设,即需求可以分段,成为一系列增量产品,每一增量可以分别地开发。13259101167121384增量增量1 1 1,2,5,9 1,2,5,9 增量增量2 2 3 3,6,7,4,10,11,6,7,4,10,11 增量增量3 3 8 8,12,13,12,13 管理管理增量规约增量规约增量设计增量设计纠错性分析纠错性分析增量实现增量实现增量1增量2增量3软件生存周期模型增量
24、模型增量模型的优点作为瀑布模型的第一个变体,具有瀑布模型的所有优点。第一个可交付版本所需要的成本和时间是很少的。开发由增量表示的小系统所承担的风险是不大的。由于很快发布了第一个版本,因此可以减少用户需求的变更。允许增量投资,即在项目开始时,可以仅对一个或两个增量投资。增量模型的缺点:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性,可能会超出组织的能力。软件生存周期模型增量模型该模型的适用情况在开始开发时,需求很明确,且产品还可被适当地分解为一些独立
25、的、可交付的软件(如果一个增量并不需要交付给客户的话,那么这样的增量通常称为一个“构造”(Build)。如果增量被交付,那么它们就被认为是发布版本(Released version))在开发中,期望尽快提交其中的一些增量产品。如果采用增量投资方式,那么客户就可以对一些增量进行招标。然后,开发人员按提出的截止期限进行增量开发,这样客户就可以用多个契约来管理组织的资源和成本。附:微软“同步-稳定的产品开发模型”将项目分为若干个里程碑阶段定义稳定、灵活的体系结构,并为构件和子系统提供统一的接口开发构件,维持一个可发布的系统版本,可以准确把握项目进展情况,增强开发人员的信心和成就感,可以随时根据市场情
26、况及时作出调整软件生存周期模型演化模型演化模型(Evolutionary model)是一种有弹性的过程模式,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量。通过这些迭代,完成最终软件产品的开发。针对事先不能完整地定义需求针对用户的核心需求,开发核心系统根据用户的反馈,实施活动的迭代需求需求设计设计编码编码测试测试集成集成需求需求设计设计编码编码测试测试集成集成开开发发反反馈馈开开发发反反馈馈.核核 心心 系系 统统 开开 发发第第 二二 次次 迭迭 代代软件生存周期模型演化模型主要特征该模型显式地把增量模型扩展到需求阶段。为了第二个构造增量,使用了第一个构
27、造增量来精化需求:如果一个早期的增量已向用户发布,那么用户会以变更要求的方式提出反馈,以支持以后增量的需求开发。通过开发一个构造增量,为以前还没有认识到的问题提供了可见性,以便实际地开始这一增量的工作。与瀑布模型的关系在演化模型中,可以使用瀑布模型来管理每一个演化的增量。一旦理解了需求,就可以开始设计阶段和编码阶段。使用演化模型应注意的问题不能弱化需求分析阶段的工作,在项目开始时,考虑所有需求来源的重要性和风险,对这些来源的可用性进行评估,才能识别和界定不确定的需求,并识别第一个增量中所包含的需求。软件生存周期模型演化模型演化模型的优点与增量模型是类似在需求不能予以规约时,可以使用这一演化模型
28、用户可以通过运行系统的实践,对需求进行改进与瀑布模型相比,需要更多用户/获取方的参与。演化模型的缺点演化模型的使用仍然处于探索阶段,因此具有较大的风险,需要有力的管理。演化模型的使用很容易成为不编写需求或设计文档的借口,即使很好地理解了需求或设计。用户/获取方不易理解演化模型的自然属性,因此当结果不够理想时,可能产生抱怨。软件生存周期模型螺旋模型螺旋模型螺旋模型是在瀑布模型和演化模型基础上,加入了风险分析的一种软件开发模型。该模型将软件生存周期的活动分为四个可重复的阶段:制定计划、风险分析、实施工程和客户评估。软件生存周期模型螺旋模型其中:评估和风险分析阶段都可作出一个决策:项目是否继续螺旋循
29、环的次数指示了已消耗的资源;在规划阶段、风险分析阶段和开发阶段均进行需求规约活动 在早期螺旋循环中,为了为最终的实现给出一些指导性决策,经常使用原型构造设计和实现活动一般是在开发阶段进行该模型关注解决问题的基本步骤,即标识问题,标识一些可选方案,选择一个最佳方案,遵循动作步骤并实施后续工作。如果项目的开发风险很大或客户不能确定系统需求,这时螺旋模型就是一个好的生存周期模型。软件生存周期模型螺旋模型与其它模型的关系与演化模型一样,螺旋模型也使用瀑布模型作为一个嵌入的过程即分析、设计、编码、实现和维护的瀑布过程,是螺旋一周的组成部分。尽管螺旋模型和一些迭代模型在框架和全局体系结构方面是等同的,但所
30、关注的阶段以及它们的活动是不同的。具体地说:标识客户想要的是一个什么样的系统;确定风险和效益的可选路线;选择最优方案;开发系统;评估完成情况等;重新开始。螺旋模型扩展了增量模型的管理任务范围。而增量模型是基于以下假定:需求是最基本的、并且是唯一的风险源。而在螺旋模型中,决策和降低风险的空间是相当广泛的。软件生存周期模型喷泉模型喷泉模型喷泉模型主要用于采用面向对象技术的软件开发项目。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。演化演化维护维护确认确认实现实现设计设计分析分析过程规划与管理过程建立软件生存周期过程在一个项目生存周期中,每一个任务
31、都通过一个或多个过程的方式来完成。在生存周期中所有这些相关过程的组合,称为项目的软件生存周期过程。软件生存周期过程的管理即从需求规约到验收,对过程、过程之间的关系以及过程产品流进行定义和控制,包括过程建立、过程评估和过程改进,强调过程规划(P)、过程检测(C)、过程执行(D)、过程调整(A)。PADC管理的一般模型管理的一般模型过程规划与管理过程建立创建软件项目生存周期步骤选择软件生存周期模型细化所选择的生存周期模型为每一个活动或任务标识合适的实例数目确定活动的时序关系,并检查信息流建立过程计划的文档软件生存周期模型的选择在实际工程中,可供选择的四个主要软件生存周期模型为:瀑布模型增量模型演化
32、模型螺旋模型过程规划与管理过程建立选择步骤在每一模型的优缺点评估完成之后,过程设计师必须为指定的项目选择最合适的生存周期模型。IEEE Standard列出了选择项目生存周期模型的步骤:标识开发项目可用的SLCM。在所期望的最终系统和开发环境中,标识那些会影响SLCM选择的属性。标识为选择生存周期模型所需要的任何约束,包括外部的或是内部的。基于以往的经验和组织能力,评估第一步所选择的SLCM。选择最能满足项目属性和约束的SLCM。注意:每当作出任何一个重要决策时,就应建立相应的文档,并进行复审。过程规划与管理过程建立评估生存周期模型的准则对可能遇到的风险,模型的承受能力;开发组织访问最终用户的
33、范围;是否很好地定义了已知需求,有多少没有认识的需求;早期(部分)功能的重要性;问题内在的复杂性以及可能作为其候选解的内在复杂性;预测的需求改变频率和粒度,以及提出需求改变可能的时间;筹集资金的可能性以及优先考虑的投资;进度和预算的灵活性;在短期和长期内,满足进度和预算的紧迫程度;开发组织规范的软件过程和工具,以及它们适应该模型要求的程度;组织的管理能力、系统和模型要求之间的匹配;注:在应用中,过程设计师应依据项目需求,建立特定的准则,而且还应得到工程项目经理认同。过程规划与管理过程建立编制软件生存周期管理计划软件生存周期管理计划(SLCMP)是用于定义和管理软件开发过程的基本机制,其中这些软
34、件开发过程用于实施一个项目所需要的开发任务。IEEE标准没有明确SLCMP的格式,但以其它计划作为模型,可以得到包含以下内容的模板。过程规划与管理过程建立 软件生存周期管理计划软件生存周期管理计划1.1.概述概述1.11.1 目的、范围和目标。结合项目过程,描述文档的目的和目标。目的、范围和目标。结合项目过程,描述文档的目的和目标。1.21.2 假设和约束条件。描述任何影响和限制项目过程的假设和约束;例如,合同的过程需求。假设和约束条件。描述任何影响和限制项目过程的假设和约束;例如,合同的过程需求。1.31.3 可交付的类。描述项目正在开发的任何可交付的类和类型。目的是促进开发不同类所需的明确
35、的过可交付的类。描述项目正在开发的任何可交付的类和类型。目的是促进开发不同类所需的明确的过程或子过程。程或子过程。1.41.4 可交付产品之间的进度依赖。描述可交付产品进度之间的逻辑关系,这一关系将影响开发过程(不可交付产品之间的进度依赖。描述可交付产品进度之间的逻辑关系,这一关系将影响开发过程(不同可交付的产品)之间的关系。同可交付的产品)之间的关系。2.2.参考资料。参考资料。给出为了理解所需要的资料,或那些影响计划内容的资料。给出为了理解所需要的资料,或那些影响计划内容的资料。3.3.定义。定义。定义文档中使用的特定术语。定义文档中使用的特定术语。4.4.与其它计划的关系。与其它计划的关
36、系。描述描述SLCMPSLCMP和其它计划之间的关系,并界定计划之间的接口,以及通过判断这些计划之间不符的内容,和其它计划之间的关系,并界定计划之间的接口,以及通过判断这些计划之间不符的内容,确定使用的先后模式。确定使用的先后模式。过程规划与管理过程建立5.5.过程的全局描述。描述整个项目软件开发的途径,包括:过程的全局描述。描述整个项目软件开发的途径,包括:项目可交付的产品,包括相关的各个类;项目可交付的产品,包括相关的各个类;影响或启动项目软件开发过程的外部数据或过程;影响或启动项目软件开发过程的外部数据或过程;识别并描述对任何可以集成到项目中或成为项目一部分的内部或外部所开发的软件项;识
37、别并描述对任何可以集成到项目中或成为项目一部分的内部或外部所开发的软件项;标识为限定发布这些软件项所使用的软件过程;标识为限定发布这些软件项所使用的软件过程;一个过程流网络,表示单个过程是如何与项目可交付产品的开发相互影响和作用的;一个过程流网络,表示单个过程是如何与项目可交付产品的开发相互影响和作用的;描述每一个过程的输入和输出,充分描述开发过程之间的关系;描述每一个过程的输入和输出,充分描述开发过程之间的关系;每一个过程的简要描述,有助于充分理解项目整体的软件开发过程。每一个过程的简要描述,有助于充分理解项目整体的软件开发过程。6.6.过程描述。详细描述每一个过程,包括过程或过程的输入、输
38、出或其它数据项所遵循的标准。这一描过程描述。详细描述每一个过程,包括过程或过程的输入、输出或其它数据项所遵循的标准。这一描述应包括:述应包括:过程的输入;过程的输入;过程的输出;过程的输出;过程的目标,以及过程的详细描述,包括任意中间产品和子过程;过程的目标,以及过程的详细描述,包括任意中间产品和子过程;过程和子过程所需要的度量;过程和子过程所需要的度量;实现和维护过程所需的培训和工具;实现和维护过程所需的培训和工具;实现和维护过程所需的任意关键的组织资产;实现和维护过程所需的任意关键的组织资产;过程面临的风险。过程面临的风险。过程规划与管理过程建立7.7.过程管理。描述管理过程所使用的途径,
39、包括:过程管理。描述管理过程所使用的途径,包括:如何获得和维护实施过程所需要的、关键的组织资产、工具和其它设施;如何获得和维护实施过程所需要的、关键的组织资产、工具和其它设施;实现过程所需要的培训;实现过程所需要的培训;如何使用过程度量来管理过程;如何使用过程度量来管理过程;监控和响应过程风险的途径;监控和响应过程风险的途径;管理单一过程和一组相关过程所使用的特定方法;管理单一过程和一组相关过程所使用的特定方法;影响过程流网络的分析,重点关注过程计划的一次失败所产生的负面影响。影响过程流网络的分析,重点关注过程计划的一次失败所产生的负面影响。8.8.计划维护和管理。描述维护和管理计划所使用的途
40、径,包括对计划的改变所需要的复审和认可,包计划维护和管理。描述维护和管理计划所使用的途径,包括对计划的改变所需要的复审和认可,包括用户的认可。括用户的认可。还应给出标识修订计划要求所使用的准则。还应给出标识修订计划要求所使用的准则。过程规划与管理过程建立对于一个项目而言,一般还存在一些对支持生存周期过程具有重要作用的其它计划:软件工程管理计划(SEMP)软件配置管理计划(SCMP)软件质量保证计划(SQAP)软件验证和确认计划(SVVP)软件度量计划(SMP)其中,一些计划的实质内容可能也包含在另一些计划中,因此,在项目的最早期,所面临的重要决策是:如何分离这些计划所涵盖的主题;如何标识和和管
41、理计划之间接口;如何实现相互重叠最少的目标;如何保证整体的一致性和内聚。过程规划与管理过程监控软件生存周期过程的监控一个项目的软件生存过程监控主要包括以下工作:软件生存周期过程的监查生存周期过程改变所产生影响的评估改变的实施过程规划与管理过程监控软件生存周期过程的监控在项目实施中,必须监查软件生存周期过程的执行情况,以确保软件开发是按规划、高效进行的。以下各任务中形成的数据,有助于过程的监查:进展与进度的跟踪。这一跟踪可以揭示过程的偏离、不期望的过程范围增大、工具或资源等问题。质量数据趋势的检查。这一检查可以用于确定软件实现组是否遵循期望的生存周期过程。设计、编码和测试计划复审记录和动作的检查
42、。变更要求和测试异常报告趋势的检查。关键资源的有效使用。与项目组成员的交谈。过程规划与管理过程监控生存周期过程改变所产生影响的评估一旦监控活动的过程发现一个生存周期过程并没有按预期实施,那么软件程序管理人员和过程设计师就要对可能采取的措施进行评估,这些措施包括:什么也不做。当改变的负面影响可能超过带来的好处时。强化过程。如果只因初始培训不充分或组织制度不够严格,导致过程没有按预期实施,那么这是一个正确的举措。调整过程。如果过程需要进行少量调整,就可以修改过程,并调整员工的培训。过程替换。如果一个过程根本就存在缺陷,那么必须替换这一过程。以上措施的某一组合。过程规划与管理过程监控改变的实施对项目
43、进展中的一个过程进行一个改变,必须十分谨慎。依据进行改变的时刻,要求实施以下全部或一部分工作:围绕一个初期的主要问题,与客户进行讨论向项目有关成员宣布改变的需求规划改变规划改变的工作包括:确定过程改变的时间、需要的资源和培训;可能需要返工的项;对软件规划文档的任何改变;涉及到的合同或业务需求(必须与客户协商);标识并冻结所涉及的配置项;规划必要返工;标识不需要改变的、可以继续工作的范围。实现改变习题解释术语软件生存周期过程软件生存周期是软件产品或系统的一系列相关活动的全周期。从形成概念开始,历经开发、交付使用、在使用中不断修订和演化,直到最后被淘汰,让位于新的软件产品。软件生存周期模型是一个包
44、括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。过程管理过程管理划归为“组织上项目使能过程组”,并称为生存周期模型管理过程,包括过程建立、过程评估和过程改进,强调过程规划(P)、过程检测(C)、过程执行(D)、过程调整(A)。习题简答题简述软件开发中的过程类,以及它们的基本作用和它们之间的基本关系答:软件开发中的过程类分为3类基本过程:那些软件生产直接相关的活动集,分5个过程:获取过程、供应过程、开发过程、运行过程和维护过程支持过程:有关各方面按他们的目标所从事的一系列相关支持活动集,有助于提高系统或软件产品的质量,分为:文档过程、配置管理过程
45、、质量保证过程、验证过程、确认过程、联合评审过程、审计过程和问题解决过程等组织过程:与软件生产组织有关的活动集,分管理过程、基础设施过程、培训过程、改进过程习题简答题在ISO/IEC12207-2008中如何描述一个过程?举例说明为获取方获取一个软件产品或服务,为供应方开发、运行、维护、提供和销毁一个软件产品,建立了一种软件生存周期框架,包含过程、活动和任务,并通过过程分类、过程描述,给出它们之间的内在关系。为软件生存周期过程的定义、控制和改进提供了一个过程,即生存周期模型管理过程。简述瀑布模型以及可适应的情况答:瀑布模型将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流
46、水,最终得到产品。适应情况:需求已被很好的理解,并且开发组织非常熟悉为实现这一模型所需求的过程。简述演化模型以及可适应的情况答:表达了一种弹性的过程模式,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量,通过这些迭代,最终完成软件产品的开发。主要针对事先不能完整定义需求的软件开发习题简答题简述增量模型的优缺点优点第一个可交付版本所需要的成本和时间是较少的,从而可减少开发由增量表示的小系统承担的风险由于很快发布第一个版本,因此可以减少用户需求的变更允许增量投资,即在项目开始时可以仅对一个或两个增量投资缺点如果没有对用户的变更要求进行规划,那么产生的初始增量可能会
47、造成后来增量的不稳定如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布由于进度和配置的复杂性,可能会增大管理成本,超出组织的能力习题简答题简述螺旋模型以及它与其它模型之间的主要区别答:螺旋模型是瀑布模型与演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。螺旋模型关注解决问题的基本步骤,即标识问题,标识一些可选方案,选择一个最佳方案,遵循动作步骤并实施后续工作,突出特征,在开发的迭代中实际上只有一个迭代过程真正开发了可交付的软件。与演化模型和增量模型相比,同样使用了瀑布模型作为一个嵌入的过程,即分析、设计、编码、实现和维护的过程,并且在框架和全局体系结构方面是等同的。但是,螺旋模型所关注的阶段以及它们的活动是不同的,如增加一些管理活动和支持活动。尽管增量模型也有一些管理活动,但它基于以下假定:需求是最基本的、并且是唯一的风险源,因而在螺旋模型中增大了决策和风险的空间,螺旋模型扩大了增量模型的管理范围。谢谢!