DO-178C各生命周期过程的目标、活动和输出

文摘   2024-10-20 20:04   天津  
DO-178C详解链接:DO-178C详解:机载软件开发、验证与适航标准指南
DO-178C等标准下载:适航规章、标准,书籍资料下载汇总(更新中)
机载软件审查详解:《机载系统和设备合格审定中的软件审查方法》
审查中常见问题详解;DO-178机载软件审查中的常见问题

DO-178C中的软件生命周期过程如下图所示:

下面逐一描述各个过程的目标,活动和输出。

计划过程

目标1: 定义软件生命周期过程

  • 描述: 明确软件生命周期中各个过程及其活动。

  • 活动:

    • 4.2.a: 定义软件生命周期的活动。

    • 4.2.c: 选择适用的软件生命周期模型。

    • 4.2.d: 确定生命周期活动之间的依赖关系。

    • 4.2.g: 定义反馈机制。

    • 4.2.i: 确定过渡标准。

    • 4.3.c: 协调与其他过程的关系。

  • 输出:

    • PSAC(合格审定计划)

    • SDP(软件开发计划)

    • SVP(软件验证计划)

    • SCM计划(软件配置管理计划)

    • SQA计划(软件质量保证计划)

目标2: 定义软件生命周期的关系

  • 描述: 确定软件生命周期中各过程之间的相互关系。

  • 活动:

    • 4.2.i: 细化生命周期活动之间的相互关系。

    • 4.3.b: 确定过程间的输入与输出。

  • 输出:

    • PSAC(合格审定计划)

    • SDP(软件开发计划)

    • SVP(软件验证计划)

    • SCM计划(软件配置管理计划)

    • SQA计划(软件质量保证计划)

目标3: 选择和定义软件生命周期环境

  • 描述: 确定支持软件生命周期的环境。

  • 活动:

    • 4.4.1: 定义软件开发环境。

    • 4.4.2.a: 定义软件验证环境。

    • 4.4.2.b: 定义配置管理环境。

    • 4.4.2.c: 定义质量保证环境。

    • 4.4.3: 确定工具和方法。

  • 输出:

    • PSAC(合格审定计划)

    • SDP(软件开发计划)

    • SVP(软件验证计划)

    • SCM计划(软件配置管理计划)

    • SQA计划(软件质量保证计划)

目标4: 处理额外的考虑事项

  • 描述: 处理计划过程中需要额外考虑的事项。

  • 活动:

    • 4.2.f: 确定其他必需的支持过程。

    • 4.2.h: 考虑交付和维护阶段的要求。

    • 4.2.j: 评估风险管理需求。

    • 4.2.k: 确定培训和支持需求。

  • 输出:

    • PSAC(合格审定计划)

    • SDP(软件开发计划)

    • SVP(软件验证计划)

    • SCM计划(软件配置管理计划)

    • SQA计划(软件质量保证计划)

目标5: 定义软件开发标准

  • 描述: 确定适用于项目的软件开发标准。

  • 活动:

    • 4.2.b: 定义软件需求标准。

    • 4.2.g: 定义软件设计标准。

    • 4.5: 定义编码标准。

  • 输出:

    • 软件需求标准

    • 软件设计标准

    • 软件编码标准

目标6: 确保软件计划的合规性

  • 描述: 确保软件计划符合所有适用的要求和标准。

  • 活动:

    • 4.3.a: 确保计划满足DO-178C标准的要求。

    • 4.6: 监控计划执行情况,确保符合要求。

  • 输出:

    • 软件验证结果

目标7: 协调软件开发与修订计划

  • 描述: 协调开发计划与后续计划的修订。

  • 活动:

    • 4.2.g: 调整和更新计划以应对项目变更。

    • 4.6: 跟踪计划实施的效果,必要时进行修订。

  • 输出:

    • 软件验证结果

开发过程

目标1: 开发高层需求

  • 描述: 开发符合系统需求的高级别软件需求。

  • 活动:

    • 5.1.2.a: 确定并分析系统需求。

    • 5.1.2.b: 将系统需求转换为软件需求。

    • 5.1.2.c: 确保需求的准确性和一致性。

    • 5.1.2.d: 确保每个需求都是可验证的。

    • 5.1.2.e: 评估需求与标准的符合性。

    • 5.1.2.f: 跟踪系统需求。

    • 5.1.2.g: 确保需求文档的完整性。

    • 5.5.a: 完成需求文档的审核。

  • 输出:

    • 软件需求数据(Software Requirements Data)

    • 跟踪数据(Trace Data)

目标2: 派生的高层需求

  • 描述: 定义并提供给系统过程的派生高层需求,包括系统安全评估过程。

  • 活动:

    • 5.1.2.h: 确定和记录派生的高层需求。

    • 5.1.2.i: 确保派生需求与系统安全分析一致。

  • 输出:

    • 软件需求数据(Software Requirements Data)

目标3: 开发软件架构

  • 描述: 开发符合高层需求的软件架构。

  • 活动:

    • 5.2.2.a: 定义软件架构。

    • 5.2.2.b: 确保架构设计满足高层需求。

    • 5.2.2.c: 记录软件架构的设计说明。

  • 输出:

    • 软件设计说明(Design Description)

目标4: 开发低层需求

  • 描述: 开发低级别软件需求。

  • 活动:

    • 5.2.2.g: 将高层需求细化为低层需求。

    • 5.2.3.a: 确保低层需求的准确性和一致性。

    • 5.2.3.b: 确保低层需求的可验证性。

  • 输出:

    • 软件设计说明(Design Description)

    • 跟踪数据(Trace Data)

目标5: 派生的低层需求

  • 描述: 定义并提供给系统过程的派生低层需求,包括系统安全评估过程。

  • 活动:

    • 5.2.2.b: 确定和记录派生的低层需求。

    • 5.2.2.c: 确保派生需求与系统安全分析一致。

  • 输出:

    • 软件设计说明(Design Description)

目标6: 源代码的开发

  • 描述: 开发符合软件架构和设计说明的源代码。

  • 活动:

    • 5.3.2.a: 编写源代码。

    • 5.3.2.b: 确保源代码符合编码标准。

    • 5.3.2.c: 进行代码审查以确保质量。

  • 输出:

    • 源代码(Source Code)

    • 跟踪数据(Trace Data)

目标7: 可执行代码和参数数据项文件的开发

  • 描述: 生成可执行的目标代码和参数数据项文件。

  • 活动:

    • 5.4.2.a: 确保目标代码符合低层需求。

    • 5.4.2.b: 记录目标代码生成过程。

  • 输出:

    • 可执行目标码(Executable Object Code)

    • 参数数据项文件(Parameter Data Item File)

软件需求过程

目标1: 高层需求符合系统需求

  • 描述: 确保高层需求与系统需求的一致性。

  • 活动:

    • 6.3.1.a: 检查高层需求是否符合系统需求。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标2: 高层需求准确且一致

  • 描述: 确保每个高层需求准确、清晰,并且不相互矛盾。

  • 活动:

    • 6.3.1.b: 检查高层需求的准确性和一致性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标3: 高层需求与目标计算机兼容

  • 描述: 确保高层需求与目标计算机的功能兼容。

  • 活动:

    • 6.3.1.c: 验证高层需求与目标计算机的兼容性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标4: 高层需求可验证

  • 描述: 确保每个高层需求都可以进行验证。

  • 活动:

    • 6.3.1.d: 确认高层需求的可验证性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标5: 高层需求符合标准

  • 描述: 确保在软件需求过程中遵循相关标准。

  • 活动:

    • 6.3.1.e: 检查高层需求是否符合制定的标准。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标6: 高层需求可追溯至系统需求

  • 描述: 确保高层需求与系统需求之间具有可追溯性。

  • 活动:

    • 6.3.1.f: 确认高层需求与系统需求的追溯关系。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标7: 算法准确

  • 描述: 确保软件中使用的算法是正确的。

  • 活动:

    • 6.3.1.g: 验证算法的准确性。

  • 输出:

    • 软件验证结果(Software Verification Results)

软件设计过程

目标1: 低层需求符合高层需求

  • 描述: 确保低层需求与高层需求的一致性。

  • 活动:

    • 6.3.2.a: 检查低层需求是否符合高层需求。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标2: 低层需求准确且一致

  • 描述: 确保每个低层需求准确、清晰,并且不相互矛盾。

  • 活动:

    • 6.3.2.b: 检查低层需求的准确性和一致性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标3: 低层需求与目标计算机兼容

  • 描述: 确保低层需求与目标计算机的功能兼容。

  • 活动:

    • 6.3.2.c: 验证低层需求与目标计算机的兼容性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标4: 低层需求可验证

  • 描述: 确保每个低层需求都可以进行验证。

  • 活动:

    • 6.3.2.d: 确认低层需求的可验证性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标5: 低层需求符合标准

  • 描述: 确保在软件设计过程中遵循相关标准。

  • 活动:

    • 6.3.2.e: 检查低层需求是否符合制定的标准。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标6: 低层需求可追溯至高层需求

  • 描述: 确保低层需求与高层需求之间具有可追溯性。

  • 活动:

    • 6.3.2.f: 确认低层需求与高层需求的追溯关系。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标7: 算法准确

  • 描述: 确保软件中使用的算法是正确的。

  • 活动:

    • 6.3.2.g: 验证算法的准确性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标8: 软件架构与高层需求兼容

  • 描述: 确保软件架构符合高层需求。

  • 活动:

    • 6.3.3.a: 验证软件架构是否兼容高层需求。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标9: 软件架构一致性

  • 描述: 确保软件架构内部一致。

  • 活动:

    • 6.3.3.b: 验证软件架构的一致性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标10: 软件架构与目标计算机兼容

  • 描述: 确保软件架构与目标计算机的兼容性。

  • 活动:

    • 6.3.3.c: 验证软件架构与目标计算机的兼容性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标11: 软件架构可验证

  • 描述: 确保软件架构可以被验证。

  • 活动:

    • 6.3.3.d: 验证软件架构的可验证性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标12: 软件架构符合标准

  • 描述: 确保软件架构遵循制定的标准。

  • 活动:

    • 6.3.3.e: 检查软件架构是否符合标准。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标13: 软件分区完整性确认

  • 描述: 确保软件分区的完整性。

  • 活动:

    • 6.3.3.f: 确认软件分区的完整性。

  • 输出:

    • 软件验证结果(Software Verification Results)

软件编码与集成过程

目标1: 源代码符合低层需求

  • 描述: 确保源代码满足低层需求。

  • 活动:

    • 6.3.4.a: 验证源代码是否符合低层需求。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标2: 源代码符合软件架构

  • 描述: 确保源代码与设计软件架构的一致性。

  • 活动:

    • 6.3.4.b: 验证源代码是否符合软件架构。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标3: 源代码可验证

  • 描述: 确保源代码能够进行验证。

  • 活动:

    • 6.3.4.c: 确认源代码的可验证性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标4: 源代码符合标准

  • 描述: 确保源代码遵循相关编程标准。

  • 活动:

    • 6.3.4.d: 检查源代码是否符合标准。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标5: 源代码可追溯至低层需求

  • 描述: 确保源代码与低层需求之间具备可追溯性。

  • 活动:

    • 6.3.4.e: 验证源代码与低层需求的追溯关系。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标6: 源代码准确且一致

  • 描述: 确保源代码的准确性和一致性。

  • 活动:

    • 6.3.4.f: 验证源代码的准确性和一致性。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标7: 软件集成过程的输出完整且正确

  • 描述: 确保软件集成过程的输出完整且符合要求。

  • 活动:

    • 6.3.5.a: 确认软件集成过程的输出。

  • 输出:

    • 软件验证结果(Software Verification Results)

目标8: 参数数据项文件正确且完整

  • 描述: 确保参数数据项文件的正确性和完整性。

  • 活动:

    • 6.6.a: 验证参数数据项文件的准确性和完整性。

  • 输出:

    • 软件验证案例及程序(Software Verification Cases and Procedures)

    • 软件验证结果(Software Verification Results)

目标9: 参数数据项文件的验证

  • 描述: 确保参数数据项文件通过验证。

  • 活动:

    • 6.6.b: 验证参数数据项文件是否符合要求。

  • 输出:

    • 软件验证结果(Software Verification Results)

集成过程

目标1: 可执行目标代码符合高级需求

  • 描述: 确保集成的代码完全符合已定义的高级需求。

  • 活动:

    • 6.4.2.1: 对高级需求与可执行代码进行一致性检查。

    • 6.4.3: 在整合过程中进行持续的测试来保证需求的实现。

    • 6.5: 使用自动化测试工具验证高级需求的覆盖率。

  • 输出:

    • 软件验证案例和程序

    • 软件验证结果

    • 跟踪数据

目标2: 可执行目标代码与高级需求结构稳健

  • 描述: 确保代码的结构和设计能够稳健地支持高级需求的实现。

  • 活动:

    • 6.4.2.2: 通过模块化和封装确保代码的结构清晰和维护性。

    • 6.4.3: 进行结构分析以评估代码的健壮性。

    • 6.5: 定期代码审查和重构以提高代码质量。

  • 输出:

    • 软件验证案例和程序

    • 软件验证结果

    • 跟踪数据

目标3: 可执行目标代码符合低级需求

  • 描述: 确保代码实现详细且准确地反映了所有的低级需求。

  • 活动:

    • 6.4.2.1: 对低级需求进行详细的实现检查。

    • 6.4.3: 实施单元测试以验证每个低级需求。

    • 6.5: 利用代码覆盖工具确保低级需求的充分测试。

  • 输出:

    • 软件验证案例和程序

    • 软件验证结果

    • 跟踪数据

目标4: 可执行目标代码结构与低级需求稳健

  • 描述: 保证代码的结构能够有效支持低级需求的实现,并确保其稳健性。

  • 活动:

    • 6.4.2.2: 分析和测试代码结构以评估其对低级需求的支持能力。

    • 6.4.3: 结构和压力测试,确保代码的稳定性和性能。

    • 6.5: 代码评审和重构,以强化代码质量和响应性。

  • 输出:

    • 软件验证案例和程序

    • 软件验证结果

    • 跟踪数据

目标5: 可执行目标代码与目标计算机兼容

  • 描述: 确保集成后的代码能在目标计算机上有效运行,且与硬件环境兼容。

  • 活动:

    • 6.4.1.a: 在目标硬件上运行测试,确认软件与硬件的兼容性。

    • 6.4.3.a: 使用硬件抽象层 (HAL) 测试,确保接口一致。

    • 6.5: 模拟环境测试以预测实际运行情况。

  • 输出:

    • 软件验证案例和程序

    • 软件验证结果

验证过程

目标1: 测试程序是正确的

  • 描述: 确保所有测试程序正确无误,适应于验证高级和低级软件需求。

  • 活动:

    • 6.4.5.b: 审查测试程序以确保它们能准确测试软件需求。

  • 输出:

    • 软件验证结果

目标2: 测试结果正确,差异得到解释

  • 描述: 验证测试结果的准确性,并对任何差异进行适当的解释和记录。

  • 活动:

    • 6.4.5.c: 对测试结果进行分析,确保结果的可靠性,并对发现的任何差异进行详细说明。

  • 输出:

    • 软件验证结果

目标3: 实现高级需求的测试覆盖

  • 描述: 确保测试覆盖所有高级需求,没有遗漏。

  • 活动:

    • 6.4.4.a: 执行详细的测试以覆盖所有高级需求。

  • 输出:

    • 软件验证结果

目标4: 实现低级需求的测试覆盖

  • 描述: 确保测试能够完全覆盖所有低级需求。

  • 活动:

    • 6.4.4.b: 进行系统和集成测试来验证低级需求的实现。

  • 输出:

    • 软件验证结果

目标5: 实现软件结构的测试覆盖(修改条件/决策覆盖)

  • 描述: 测试软件结构以确保修改条件和决策点都被完全覆盖。

  • 活动:

    • 6.4.4.c: 通过详细的条件和决策覆盖测试来验证软件结构的完整性。

  • 输出:

    • 软件验证结果

目标6: 实现软件结构的测试覆盖(决策覆盖)

  • 描述: 保证所有决策路径都经过测试,确保软件逻辑的正确执行。

  • 活动:

    • 6.4.4.c: 执行决策覆盖测试,确保所有逻辑分支都被验证。

  • 输出:

    • 软件验证结果

目标7: 实现软件结构的测试覆盖(语句覆盖)

  • 描述: 执行语句覆盖测试来验证代码中的每条语句都至少执行一次。

  • 活动:

    • 6.4.4.c: 通过语句覆盖测试确保没有代码被遗漏。

  • 输出:

    • 软件验证结果

目标8: 实现数据耦合和控制耦合的测试覆盖

  • 描述: 验证软件中的数据耦合和控制耦合,确保它们按照设计正确运作。

  • 活动:

    • 6.4.4.d: 分析和测试数据与控制流之间的相互作用,确认它们的正确性。

  • 输出:

    • 软件验证结果

目标9: 验证可以追踪到源代码的附加代码

  • 描述: 确保所有新增代码都可以追踪回源代码,且其功能和需求得到正确实现。

  • 活动:

    • 6.4.4.c: 对新增代码进行详细审查和测试,验证其与原有代码的一致性和功能实现。

  • 输出:

    • 软件验证结果

配置管理过程

目标1: 识别配置项

  • 描述: 确定软件开发过程中的所有配置项,确保在项目生命周期中能够有效管理。

  • 活动:

    • 7.1.a: 识别所有的配置项,包括软件需求、设计文档、源代码等,以便进行有效管理。

  • 输出:

    • SCM记录

目标2: 建立基线和可追溯性

  • 描述: 确保所有配置项都有明确的基线,并建立可追溯性以支持后续变更管理。

  • 活动:

    • 7.1.b: 创建并维护软件配置基线,确保能够追溯每一项配置。

  • 输出:

    • 软件配置索引

    • SCM记录

目标3: 建立问题报告、变更控制、变更审查和配置状态核算

  • 描述: 确保项目中的任何问题或变更都能被记录、审核和控制。

  • 活动:

    • 7.1.c: 记录所有问题并进行跟踪。

    • 7.1.d: 执行变更控制程序以评估、批准或拒绝变更请求。

    • 7.1.e: 审查变更,确保所有变更都经过适当的审核流程。

    • 7.1.f: 维护配置状态核算记录,确保所有配置项状态可知。

  • 输出:

    • 问题报告

    • SCM记录

目标4: 建立归档、检索和发布程序

  • 描述: 确保所有重要的项目文档和配置项都能被适当地归档和检索。

  • 活动:

    • 7.1.g: 建立有效的归档和检索程序,确保所有配置项可以在需要时迅速取回。

  • 输出:

    • SCM记录

目标5: 建立软件负载控制

  • 描述: 确保软件版本的控制和管理,避免未授权的更改。

  • 活动:

    • 7.1.h: 确保在软件加载和配置中进行有效的控制和管理。

  • 输出:

    • SCM记录

目标6: 建立软件生命周期环境控制

  • 描述: 确保软件开发、测试和生产环境的控制,以保障软件的完整性和一致性。

  • 活动:

    • 7.1.i: 确定和维护软件生命周期环境的控制措施,确保所有环境符合规定要求。

  • 输出:

    • 软件生命周期环境配置索引

    • SCM记录

质量保证过程

目标1: 确保软件计划和标准的开发及审查

  • 描述: 确保软件开发计划和标准已被开发和审查,以符合文档要求和一致性。

  • 活动:

    • 8.1.a: 确保所有的软件计划和标准都经过审查,以确保与规定的标准和文件一致。

  • 输出:

    • SQA记录

目标2: 确保软件生命周期过程的合规性

  • 描述: 确保软件生命周期中的所有过程都符合批准的软件计划。

  • 活动:

    • 8.1.b: 验证所有软件生命周期过程是否遵循批准的软件计划。

  • 输出:

    • SQA记录

目标3: 确保软件生命周期过程符合软件标准

  • 描述: 确保软件生命周期中的所有过程都符合批准的软件标准。

  • 活动:

    • 8.1.b: 确保所有的软件生命周期过程符合软件标准。

  • 输出:

    • SQA记录

目标4: 确保满足软件生命周期过程的过渡标准

  • 描述: 确保软件生命周期过程中各阶段的过渡标准得以满足。

  • 活动:

    • 8.1.c: 验证软件生命周期过程的各个阶段的过渡标准是否得到满足。

  • 输出:

    • SQA记录

目标5: 确保软件符合性审查

  • 描述: 确保进行软件符合性审查,以验证软件的合规性。

  • 活动:

    • 8.1.d: 进行软件符合性审查,确保最终软件满足所有的要求。

  • 输出:

    • SQA记录

审定联络过程

目标1: 建立申请者与认证机构之间的沟通与理解

  • 描述: 确保申请者与认证机构之间建立有效的沟通和理解。

  • 活动:

    • 9.1.a: 进行初步的沟通与讨论,确保双方对认证过程的理解一致。

    • 9.1.b: 定期沟通进展,确保信息共享。

    • 9.1.c: 记录所有的沟通和理解,以备将来参考。

  • 输出:

    • 软件认证方面的计划(Plan for Software Aspects of Certification)

目标2: 提出合规手段并获得协议

  • 描述: 提出如何满足DO-178C的合规性要求,并与认证机构达成一致。

  • 活动:

    • 9.1.a: 提交合规性方案,并与认证机构进行讨论。

    • 9.1.b: 与认证机构讨论并确认合规手段的有效性。

    • 9.1.c: 确保所有的合规手段在计划中得到文档记录。

  • 输出:

    • 软件认证方面的计划(Plan for Software Aspects of Certification)

目标3: 提供合规性证明

  • 描述: 确保提供必要的文档,以证明软件满足认证标准。

  • 活动:

    • 9.2.a: 编制软件完成总结,以展示符合标准的所有要求。

    • 9.2.b: 准备软件配置索引,确保所有文档的可追溯性。

    • 9.2.c: 确保所有相关文档得到认证机构的认可。

  • 输出:

    • 软件完成总结(Software Accomplishment Summary)

    • 软件配置索引(Software Configuration Index)

机载软件与适航
技术文章:深入解析机载软件开发的技术细节,分享开发经验和最佳实践。适航认证:详细介绍适航认证的流程和标准,实际案例分析和解决方案。项目分享:分享实际项目经验,包括挑战和解决方案,展示实际应用。行业动态:发布航空软件和适航领域的最新动态。
 最新文章