Qualificação de ferramentas para desenvolvimento de software embarcado

Olá, Habr! Neste artigo, quero contar da forma mais simples e acessível como é comprovado que suas ferramentas de desenvolvimento e verificação são adequadas para a criação de sistemas com maior confiabilidade. Esta é uma pergunta muito importante e longe de ser a mais fácil, e meu objetivo é respondê-la na linguagem mais compreensível possível. No próprio artigo, resumi as diretrizes dos padrões da indústria, como KT-178 ou R-331 (software integrado na aviação), GOST R ISO 26262-8 (software integrado na indústria automotiva). Então, bem-vindo em gato.



Qualificação - por que é?



Os padrões da indústria, como KT-178 ou ISO 26262, descrevem processos para a criação de software robusto. Se você seguir essas descrições, a criação de tal software se transformará em um inferno burocrático que durará para sempre. Mas existem softwares que podem automatizar uma parte significativa desses processos. Esse software é chamado de ferramenta. E se você usa uma ferramenta, ela deve ser confiável (ISO 26262 ainda introduz o termo “confiança na ferramenta”). Para confirmar a confiabilidade do instrumento, ele é qualificado.



Qualificação - teoria



Os padrões da indústria têm um conceito de nível de segurança. Em diferentes padrões, eles são chamados de forma diferente: Nível de software no CT-178, Níveis de integridade de segurança do veículo na ISO 26262. E para ferramentas de desenvolvimento, são usados ​​os níveis de qualificação da ferramenta (CT-178) ou níveis de classificação da ferramenta (ISO 26262). Esses níveis são atribuídos com base na criticidade das ferramentas - quanto mais influência uma ferramenta tem no desenvolvimento, mais alto o nível de habilidade será atribuído a ela. Ao mesmo tempo, um dos principais critérios para determinar a influência de uma ferramenta é a medida de sua influência no software resultante.



Considere um gerador de código-fonte e um analisador de código estático como exemplos. O código gerado vai para o firmware do aparelho, que será instalado a bordo de uma aeronave ou carro. Assim, o gerador de código tem um impacto direto no software resultante. Como um gerador de código é algo complexo e pode gerar código com erros, requisitos estritos são impostos à qualidade desse gerador de código e o nível de suas qualificações será máximo. Outra coisa é um analisador estático, cujo resultado não está incluído no software de bordo e o grau de sua influência é mínimo. Portanto, o nível de habilidade para um analisador estático será menor do que para um gerador de código.



E o nível de qualificação afeta diretamente os custos de mão de obra: por exemplo, para aviação, para qualificar uma ferramenta para o nível mais alto do KT-178S, são necessárias 76 medidas de controle, e para o nível mais baixo - apenas 14.



Outro ponto importante é que a qualificação das ferramentas não é realizada pelo desenvolvedor da ferramenta, mas diretamente pelo desenvolvedor do software, e a qualificação deve ser realizada para cada projeto!



Qualificação - Notas Práticas



Conforme afirmado na parte teórica, a qualificação da ferramenta é um processo caro, mas é simplificado de várias maneiras:



  • Apoio ao processo de qualificação por fabricantes de ferramentas (fornecedores)

  • Diretrizes de qualificação de instrumentos de padrões



Vamos considerá-los em ordem. Em primeiro lugar, os próprios fornecedores fornecem pacotes de suporte para qualificação de ferramentas. Em segundo lugar, os padrões da indústria fornecem orientação sobre ferramentas de qualificação que podem reduzir a carga de trabalho.



Eu gostaria de me deter no segundo ponto. Vamos dar uma olhada no gerador de código novamente. O código gerado com a sua ajuda ainda deve ser testado, será coletada a cobertura do código, realizada sua análise, ou seja, verificada.



Os padrões da indústria nos dizem que, se qualificarmos as ferramentas responsáveis ​​pela verificação do código, a qualificação do próprio gerador de código não será necessária. Portanto, os próprios padrões fornecem orientações que você pode seguir para reduzir significativamente o custo das qualificações.



Para a qualificação das ferramentas de verificação, os padrões prescrevem a demonstração de seu comportamento em condições normais. Na prática, é assim:



  1. O fornecedor fornece um conjunto de modelos de documentos, regulamentos e referências para o instrumento e seus resultados de referência.

  2. Você preenche modelos de documentos e executa os testes fornecidos em seu ambiente.

  3. Os resultados dos testes executados são comparados com os benchmarks e, se houver uma discrepância nos resultados, você elimina a discrepância.



É importante notar que o processo descrito também leva muito tempo e, como todo desenvolvimento, é realizado em cooperação com as autoridades certificadoras.



Ferramentas MathWorks e suas qualificações



Ferramentas como Simulink, DSP Toolbox, Control System Toolbox são o padrão da indústria para o desenvolvimento de sistemas de controle e processamento de sinal digital. Não é surpreendente que sejam usados ​​na aviação, automotiva e outras indústrias. Os modelos desenvolvidos são usados ​​para gerar código C / C ++ que viaja e voa. Naturalmente, os desenvolvedores se deparam com a questão das qualificações das ferramentas. E a qualificação das ferramentas MathWorks para KT-178S é realizada para ferramentas de verificação de modelo e código:





E para ISO 26262, os certificados são fornecidos para:



  • Simulink Check

  • Cobertura Simulink

  • Requisitos do Simulink

  • Simulink Design Verifier

  • Teste Simulink

  • Simulink Report Generator

  • Localizador de Bug Polyspace

  • Provador de código Polyspace

  • Codificador Embutido

  • Codificador HDL

  • PLC Coder



Dependendo da indústria, são fornecidos o Kit de qualificação DO para aviação ou o Kit de certificação IEC para as indústrias automotiva, ferroviária e outras.



Em vez de conclusões



Este artigo forneceu uma visão geral de alto nível do processo de qualificação de ferramentas padrão da indústria. Ao escrever este artigo, fui orientado pelas seguintes fontes:



  1. R-330, "Guia de qualificação de ferramentas de software", em particular:



  • p. 2.0 Atribuição de qualificações de ferramenta

  • p. 3.1. Níveis de qualificação

  • Referência D questão D7



  1. GOST R ISO 26262-8, Capítulo 11, "Confiança no uso do software do kit de ferramentas"



Se você estiver interessado em como os sistemas de maior confiabilidade são criados, escreva nos comentários o que você precisa considerar nos artigos a seguir.



All Articles