RTCA DO-178C / EUROCAE ED-12C é uma atualização para o padrão DO-178B/ED-12B que rege a certificação de software para sistemas aéreos em aeronaves comerciais. A revisão fez mudanças relativamente modestas na orientação “núcleo”, mas produziu quatro novos documentos significativos:

  • Considerações de qualificação de ferramentas de software (RTCA DO-330 / EUROCAE ED-215)
  • “Suplementos de substituição” para métodos especializados de desenvolvimento
    • Desenvolvimento e verificação baseados em modelos (RTCA DO-331 / EUROCAE ED-218)
    • Tecnologia orientada a objetos e técnicas relacionadas (RTCA DO-332 / EUROCAE ED-217)
    • Métodos Formais (RTCA DO-333 / EUROCAE ED-216)

As normas resultantes, publicadas em dezembro de 2011, preservam a intenção original do DO-178B de fornecer uma abordagem baseada em objetivos para obter “um nível de confiança em segurança que cumpra os requisitos de aeronavegabilidade”, e ampliam a orientação para dar conta dos principais avanços tecnológicos que se enraizaram desde a publicação do DO-178B no início da década de 1990.

Alterações no DO-178B

O esforço de revisão começou no final de 2004 sob os auspícios de uma comissão mista – Comissão Especial da RTCA #205 (SC-205) e Grupo de Trabalho EUROCAE #71 (WG-71) – e teve vários objetivos, incluindo:

  • Corrigir erros e esclarecer conteúdo confuso no DO-178B
  • Acomodar tecnologias e padrões de software que amadureceram e entraram em prática desde a publicação do DO-178B
  • Para levar em conta o material suplementar que suporta o DO-178B, incluindo documentos da Equipe de Software de Autoridades de Certificação (CAST) e Documentos de Emissores (IPs)

Embora tenha havido alguma discussão inicial para mudar a natureza do documento para ser mais “produto” versus “processo”, exigindo análises de casos de segurança, a decisão consensual foi manter as mudanças no mínimo necessário, e não dificultar a certificação do que com o DO-178B. A norma DO-178B foi bem sucedida na prática, e mudanças radicais na direção não foram consideradas necessárias ou apropriadas.

As modificações na “orientação do núcleo” são relativamente pequenas. Uma discussão detalhada pode ser encontrada no artigo do DO-178C/ED-12C de Frédéric Pothon versus DO-178B/ED-12B: Alterações e Melhorias « http://www.adacore.com/uploads/technical-papers/DO178C-ED12C-Changes_and_Improvements-Sep2012.pdf». As atualizações da amostra incluem:

  • Um tratamento expandido do fluxo de informações entre os processos do sistema e do ciclo de vida do software
  • Um novo objetivo de verificação no Nível A quando o código do objeto não é rastreável ao código-fonte
  • Uma nova variedade de MC/DC (“mascarando” MC/DC), que pode explicar condições fortemente acoplada

Qualificação de ferramentas

Um dos principais produtos do esforço DO-178C é um novo documento, Considerações de Qualificação de Ferramentas de Software (DO-330/ED-215). Este não é estritamente um suplemento, uma vez que é independente de domínio e pode ser usado em conjunto com outros padrões de alta integridade além do DO-178C. Os conceitos DO-178B de ferramenta de verificação e ferramenta de desenvolvimento foram substituídos por três critérios de qualificação de ferramentas:

Conceitos DO-178B Critérios DO-178C / DO-330
Ferramenta de desenvolvimento Critério 1 A saída faz parte do software aéreo Que a Ferramenta pode inserir um erro
Ferramenta de verificação Critério 2 A ferramenta pode não detectar um erro e é usada para reduzir outras atividades de desenvolvimento ou verificação
  Critério 3 Ferramenta pode falhar em detectar um erro

O critério 2 é novo e corresponde a uma situação como o uso de uma ferramenta de análise estática para revisão de código fonte (por exemplo, para demonstrar a ausência de recursão) e, em seguida, usar esses resultados para justificar a remoção de verificações de pilha no código compilado.

O DO-178C define cinco TQLs (Tool Qualification Levels, níveis de qualificação de ferramentas) com base no nível do software e no critério da ferramenta:

Determinação do nível de qualificação da ferramenta

Nível de software Critério    
  1 2 3
UM TQL-1 TQL-4 TQL-5
B TQL-2 TQL-4 TQL-5
C TQL-3 TQL-5 TQL-5
D TQL-4 TQL-5 TQL-5

O DO-330 define a orientação específica para cada TQL, utilizando a mesma estrutura do DO-178C. O usuário da ferramenta deve fornecer artefatos de qualificação, incluindo material fornecido pelo desenvolvedor da ferramenta (em particular os Requisitos Operacionais da Ferramenta, que documenta o ambiente operacional, o comportamento funcional esperado e outros aspectos). As atividades de qualificação para o TQL-1 através do TQL-4 são aproximadamente equivalentes às atividades de certificação para os níveis A a D, respectivamente. O TQL-5 corresponde a uma ferramenta de verificação no DO-178B.

Suplementos tecnológicos

Desde a publicação do DO-178B em 1992, uma série de metodologias de engenharia de software amadureceram e oferecem benefícios (e também levantam problemas) para desenvolvedores de sistemas aéreos. Uma parte importante do esforço do DO-178C foi dedicada à análise das questões em torno de três tecnologias específicas e à preparação de suplementos que adaptam e ampliam a orientação central do DO-178C conforme apropriado. Um foco especial nesses suplementos está no processo de verificação.

  • Desenvolvimento e verificação baseados em modelos (RTCA DO-331 / EUROCAE ED-218)

No desenvolvimento baseado em modelos, os requisitos de um sistema, arquitetura de design e/ou comportamento são especificados com uma linguagem de modelagem precisa (e tipicamente gráfica), processada por ferramentas que geram código automaticamente e, em alguns casos, também testam casos. O uso de uma ferramenta de modelagem qualificada oferece uma série de vantagens, incluindo um ciclo de vida encurtado/simplificado e uma especificação precisa (e compreensível) dos requisitos. No entanto, o desenvolvimento baseado em modelos também introduz uma série de desafios, como a fusão de processos do ciclo de vida de sistemas e software, rastreabilidade mais complicada e a questão do que a análise de cobertura significa no contexto do desenvolvimento baseado em modelos. A orientação no DO-331 aborda essas questões.

  • Tecnologia orientada a objetos e técnicas relacionadas (RTCA DO-332 / EUROCAE ED-217)

Orientação de objetos – uma abordagem de design na qual a arquitetura de um sistema é baseada nos tipos de entidades com as quais o sistema lida e seus relacionamentos – tem sido um pilar no desenvolvimento de software por várias décadas, pois pode facilitar a tarefa de estender um sistema quando novos requisitos precisam ser atendidos. No entanto, os recursos de programação que dão à Object Oriented Technology (OOT) seu poder expressivo – herança, polimorfismo e vinculação dinâmica – levantam uma série de questões técnicas significativas. Em suma, a flexibilidade dinâmica fornecida pelo OOT está em conflito com os requisitos DO-178B e DO-178C para demonstrar estaticamente propriedades críticas do programa; a orientação no DO-332 aborda essa questão e outras. Uma característica notável do DO-332 é a introdução de um novo objetivo de verificação para a substituição do tipo, refletindo as vantagens do uso da herança apenas para especialização do tipo.

  • Métodos Formais (RTCA DO-333 / EUROCAE ED-216)

Com os avanços na tecnologia de prova e na velocidade do hardware, o uso de métodos formais (ou seja, matematicamente baseados) na verificação de software passou dos laboratórios de pesquisa para uma prática mais difundida, especialmente nos níveis mais altos de segurança e criticidade de segurança. Métodos formais podem ser usados para provar propriedades do programa que vão desde uma demonstração de que erros de tempo de execução não ocorrerão, até uma prova de que a implementação de um módulo está em conformidade com seus requisitos formalmente especificados.

Métodos formais foram identificados no DO-178B como um meio alternativo de conformidade, mas não havia uma compreensão comum de como eles se encaixariam com os outros objetivos. O DO-333 aborda esse problema e indica como métodos formais podem complementar ou substituir outras atividades de verificação, mais notavelmente certos tipos de testes baseados em requisitos.

Para mais informações

  • L. Rierson. Desenvolvimento de software crítico à segurança: um guia prático para software de aviação e conformidade DO-178C. CRC Press, 2013
  • F. Pothon. DO-178C/ED-12C versus DO-178B/ED-12B: Alterações e Melhorias. <www.adacore.com/uploads/technical-papers/DO178C-ED12C-Changes_and_Improvements-Sep2012.pdf>
  • AdaCore. Programação orientada a objetos de alta integridade em Ada; Junho de 2013.
  • extranet.eu.adacore.com/articles/HighIntegrityAda.pdf

Artigo Original