• 软件生命周期过程


    基本概念

    软件生命周期

    • 软件产品或系统的一系列活动的全周期。从形成概念开始,历经开发、交付使用、在使用中不断修订和演化,直到最后被淘汰。

    软件生命周期过程(软件过程)

    • 软件生存周期中的一系列相关过程
    • 为了表述软件开发需要做“什么(映射)”,引入了以下三个概念
      • 过程是活动的集合
      • 活动是任务的集合
      • 任务是把输入转换成输出的操作

    过程分类

    按承担软件开发工作的主体,将软件生存周期过程分为三类:

    1. 基本过程
      是指哪些域软件生产直接相关的活动集
    2. 支持过程
      是有关各方按其目标所从事的一系列支持活动集
    3. 组织过程
      是指那些与软件生产组织有关的活动集

    基本过程

    按过程中活动的不同主体,将基本过程分为5个过程:获取过程、供应过程、开发过程、运行过程、维护过程。

    (1)获取过程

    获取过程是获取者(需方)所从事的活动和任务,其目的是获得满足客户所表达的那些要求的产品和/或服务。该过程以定义客户要求开始,以接受客户所要求的产品和/或服务结束。

    (2)供应过程

    供应过程是供方为了向客户提供满足需求的软件产品或服务所从事的一系列活动和任务,其目的是向客户提供一个满足已达成需求的产品或服务。

    其目的是向客户提供一个满足已达成需求的产品或服务。

    该过程的启动,或通过为应答需方的招标书而开始编制投标书的决定,或通过与需方签订一项提供系统、软件产品或软件服务的合同。继之,确定为管理和保证项目所需的规程和资源,包括编制项目计划,执行计划,一直到将系统、软件产品或软件服务交付给需方为止。

    该过程包括的基本活动为:启动—>准备投标—>签订合同—>规划—>执行和控制—>复审和评估—>交付和完成。
    每个活动又包含一组特定的任务。

    (3)开发过程

    开发过程是软件开发者所从事的一系列活动和任务,其目的是将一组需求转换为一个软件产品或系统。

    包括13个活动:过程的实施准备、系统需求分析、系统结构设计、软件需求分析、软件体系结构设计、软件详细设计、软件编码和测试、软件集成、软件合格测试、系统集成、系统合格测试、软件安装、软件验收支持

    例如其中的活动:过程的实施准备。主要任务是规划软件工程过程

    • 依据项目的规模、重要程度以及复杂性,定义或选择软件生存周期模型.并将开发过程的活动和任务映射到该软件生存周期模型
    • 依据文档过程,建立该过程文档;并将该文档置于配置管理过程之下,并作为实施变更控制的依据
    • 依据问题解决过程,发现软件工作产品和任务中的问题和不一致性并建立相应的文档
    • 按合同规定,实现相应的支持过程
    • 为执行开发过程和支持过程的活动,对开发组织所建立的标准、方法、工具和计算机程序设计语言进行选择、剪裁和应用
    • 依据开发和验收的所有需求(包括安全),为执行过程的活动制定相应计划,例如风险管理计划、质量保证计划等,这些同样也包括标准、方法、工具、措施以及责任等.必要时这些计划可以分别建立.
    (4)运行过程

    运作过程是系统操作者所从事的一系列活动和任务。其目标是在软件产品预期的环境中运行该产品,并为该软件产品的维护提供支持。

    (5)维护过程

    维护过程是维护者所从事的一系列的活动和任务。其目的是:对交付后的系统或软件产品,或为了纠正其错误,改进其性能或其它属性,而对其进行修改;或因环境变更,而对其进行调整。

    支持过程

    按过程中活动的不同主体,将支持过程(类)分为8个过程:文档过程、配置管理过程、质量保证、验证过程、确认过程、联合评审、审计过程、问题解决等。

    (1)文档过程

    为记录生存周期过程所产生的信息而定义的活动。

    (2)配置管理过程

    应用管理上的和技术上的规程来支持整个软件生存周期的过程。

    (3)质量保证过程

    为客观地保证软件产品和过程符合规定的需求以及已建立的计划而定义的活动。

    (4)验证过程

    根据软件项目需求,按不同深度(为需方、供方或某独立方)验证软件产品而定义的活动。

    该过程包括两个活动:过程实现、验证。

    过程实现包括以下6项任务:

    • 确定项目是否需要进行一定的验证工作,以及验证工作是否需要一个独立组织。分析项目需求的关键性。关键性的计量可按以下各项进行:
      • 在系统需求或软件需求中,可能引起死亡、人身伤害、任务失败、财经损失或灾难性的设备损坏等未被发现的错误之潜在性;
      • 所用软件技术的成熟度,以及应用这种技术的风险;
      • 可用的经费和资源
    • 如果一个项目需要进行验证工作,就应为验证该软件产品而建立一个验证过程。
    • 如果一个项目需要进行独立的验证工作,就要选择一个负责进行验证的合格组织,并确保该组织具有实施验证活动的独立性和权力。
    • 基于以上有关范围、重要程度、复杂性和关键性的分析,确定需要进行验证的生存周期活动和软件产品。为这些生存周期活动和软件产品,选择以下定义的验证活动和任务,以及执行这些任务所需要的方法、技术和工具。
    • 根据已确定的验证任务,制定验证计划并形成文档。该计划应描述:要验证的生存周期活动和软件产品、每个生存周期活动和软件产品所需的验证任务,以及有关资源、职责和进度安排。该计划还应描述向需方和其他有关组织提交验证报告 的规程。
    • 实现该验证计划。其中,由验证工作发现的问题和不 符合项应作为问题解决过程的 输入 ;应 对所有问题和不 符合项 给出解 决方案;应为需方和其他有关组织给出可用的验证活动的结果。

    验证包括以下7项任务:

    • 合同验证。其中应考虑下面列出的准则:
      • 供方具有满足需求的能力;
      • 需求一 致并覆盖了用户的需要;
      • 规定了可处理需求变更和处理问题蔓延的规程;
      • 规定了各方之间进行接口和合作的规程及其范围,包括所有权、许可权、 版权和保 密性;
      • 规定了符合需求的验收准则和规程。
    • 过程验证。其中应考虑下面列出的准则:
      • 项目规划的需求是足够的、及时的;
      • 为项目所选择的过程是可行的、已实现的,是按计划执行的,并且符合合同的;
      • 用于项目过程的标准、规程和环境是满意的;
      • 根据合同要求,为项目配备了经过培训的人员。
    • 需求验证。其中应考虑下面列出的准则:
      • 系统需求是一致的、可行的且是可测试的;
      • 根据设计准则,系统需求被适当地分配给了硬件项、软件项和手工操作;
      • 软件需求是一致的、可行的且是可测试的,并准确地体现了系统需求;
      • 通过适当严格的方法表明,有关安全保密性和关键性的软件需求是正确的。
    • 设计验证。其中应考虑下面列出的准则:
      • 设计是正确的、与需求一致并可追踪到需求;
      • 设计实现了适当的事件序列、输入、输出、接口、逻辑流,实现了按时和规模预算的分配以及错误定义、问题隔离及恢复;
      • 可以依据需求导出所选择的设计
      • 通过适当严格的方法表明,设计正确地实现了安全保密性以及其他关键性的需求。
    • 编码验证。其中应考虑下面列出的准则:
      • 编码可追踪到设计和需求,是可测试的和正确的,并且符合需求和编码标准;
      • 编码实现了适当的事件顺序、一致的接口、正确的数据和控制流、完备性、恰当的按时间和规模预算的分配、错误定义、问题隔离和恢复
      • 可以由设计或需求导出所选择的编码
      • 通过适当严格的方法表明,编码正确地实现了安全保密和其他关键性的需求。
    • 集成验证。其中应考虑下面列出的准则:
      • 每个软件项的软件构件和软件单元 已被 完整 的且正确的集成到该软件项中;
      • 系统的硬件项、软件项和手工操作已被完整 的且正确的集成到该系统中;
      • 已根据集成计划执行了相应的集成任务。
    • 文档验证。其中应考虑下面列出的准则:
      • 文档是充分的、完备的和一致的;
      • 文档制订是及时的;
      • 文档的配置管理遵循了规定的规程。
    (5)确认过程

    确认过程是一个确定需求和最终的、已建成的系统或软件产品是否满足特定预期用途的过程。

    (6)联合评审过程

    为评价一项活动的状态和产品而定义的活动。

    (7)审计过程

    确定遵照需求、计划合同的程度。

    (8)问题解决过程

    为分析和解决问题而定义的活动。

    组织过程

    为7个过程:管理过程、基础设施过程、改进过程、人力资源过程、资产管理过程、复用程序管理过程、领域软件工程过程

    (1)管理过程

    管理过程是管理人员从事的、对其它过程进行管理的活动和任务。

    主要活动包括:过程的启动和范围定义、规划、实施与控制、评审与评估、测量、表决

    过程的启动和范围定义的主要任务:

    • 建立那些要承担过程的需求,以此启动该管理过程
    • 建立这些过程的可行性,主要检查执行并管理这些过程所需要的资源(人、物资、技术和环境)是否可用、充分和适用,以及时间上是否可达
    • 必要的话,按各方共识,修改这些过程的需求,以达成准则

    规划的主要任务:

    为过程的执行制定计划。该计划应包括有关活动和任务的描述,并标识即将提供的软件产品。该计划的主要内容:

    • 既时完成任务的进度安排;
    • 工作量的估计;
    • 执行任务所需要的适当资源;
    • 任务的分配;
    • 职责的分 派;
    • 与任务或过程自身有关的风险(量化);
    • 在整个过程中采用的质量控制测量;
    • 与过程执行有关的费用;
    • 环境和基础设施的规约

    实施与控制的主要任务:

    • 启动管理计划的实施,以满足所设定的目标和准则,并对过程实施控制。
    • 监督过程的执行,提供过程进展的内部报告,并按照合同的规定向需方提供过程进展的外部报告 。
    • 调查、分析和解决在过程执行期间发现的问题。问题的解决可能导致对计划的变更。对变 更的影响 进行确定、控制和监督 。问题及其解决方案应形成文档。
    • 按协商确定的时间,报告过程进展情况,声明按计划进行,并解决进展中的疏漏情况 。按照组织规程和合同的要求,这种报告包括内部报告和外部报告。

    评审与评估的主要任务:

    • 对软件产品和计划进行评价,以确定是否满足需求。
    • 对在过程执行期间完成的软件产品、活动和任务的评价结果进行评估,以确定是否达到目标和完成计划。

    测量的主要任务:

    • 建立并维护测量承诺 。确保满足所有的测量过程的资源、人员和承诺的先决条件。该任务的结果是:给出了 从管理 到支持测量过程的承诺 ,提供了在该标准已为测量过程 标识并分配职责方面的人员能力,提供了可用于策划和实施测量过程的资源。
    • 规划测量过程。制定一个详细的计划以启动、 指导、监督并评价数 据收集、分析、解释和存储活动。该任务执行的结果是:提供了一些规划信息 ,包括已定义的那些组织 单元所需要的信息以及已 获取并利用的所要求的支持技术。
    • 按计划进行测量。根据测量计划任务的输出生成 信息产品和性能测量( 值)。该任务执行的结果能保证:收集到数据、以适合于后续检索和分析的方式存储数据、生成信息产品并通告组织单元 、收集到性能测量( 值)。
    • 评价测量。 评价度量和测量活动,并此次评价中所学到 的经验存储在“测量经验库”中。根据“测量经验库”存储的、来自于本次评价的经验和特定准则来评价测量活动和测量中的任务结果。

    表决的主要任务:

    • 当所有软件产品、活动和任务均完成时,应按 照合同中或组织规程中规定的准则,确定该过程是否完成
    • 检查 所软件产品、开展的活动和任务的结果和记录 是否完整.这些结果和记录均应按合同中的规定在适当的环境中予以归档
    (2)基础设施过程

    为其他过程建立和维护所需基础设施的过程。

    (3)改进过程

    改进过程是管理人员从事的一组活动和任务,其目的是:建立、评价、测量、控制和改进软件生存周期过程。

    (4)人力资源过程

    是为组织和项目提供具有技能和知识人员的过程。

    (5)资产管理过程

    为组织的资产管理者而定义的活动。

    (6)复用程序管理过程

    为组织的软件复用而定义的活动。

    (7)领域软件工程过程

    为领域模型、领域软件体系结构的确定及该领域资产的开发和维护而定义的活动。

  • 相关阅读:
    Science子刊 | 将CAR-T细胞疗法与造血干细胞移植相结合 或许 能治疗所有血液癌症...
    轻量封装WebGPU渲染系统示例<37>- 多个局部点光源应用于非金属材质形成的效果(源码)
    第十三届蓝桥杯大赛软件赛决赛(Java 大学A组)
    大神之路-起始篇 | 第1章.计算机科学导论之【基础绪论】学习笔记
    存储过程与触发器的练习题
    由 BLAZE-PERSISTENCE 提供支持的分页
    数据库防火墙技术展望【终章】
    基于FPGA的简易计时闹钟ISE Verilog
    前端工程化精讲第一课 项目基石:前端脚手架工具探秘
    java学习--day24(单例模式&序列化&Lambda表达式)
  • 原文地址:https://blog.csdn.net/weixin_58808338/article/details/133762352