Mercado Pede Especificações para Apps Automotivos

A dependência cada vez maior do software dentro do desenvolvimento automotivo, juntamente com a crescente complexidade desse software, coloca mais pressão do que nunca sobre os processos de desenvolvimento. Hoje em dia, é preciso mais de 100 milhões de linhas de código para construir um único carro de passageiros. Quando atingirmos o ponto em que os carros se tornarão completamente autônomos, o volume e a complexidade do código atingirão alturas ainda maiores.

Os veículos autônomos da próxima geração provocarão, é certo, um aumento na dependência do software. Mas até mesmo os veículos “padrão” de agora incorporam uma variedade de sistemas de software, muitas vezes conectados à Internet das Coisas e exigindo atualizações regulares.

É por isso que as arquiteturas abertas tornaram-se tão importantes nos últimos anos, ajudando a padronizar elementos de software, tornando-o “à prova de futuro” tanto quanto possível, para ajudar a gerenciar a crescente complexidade, permitir que equipes de software colaborem melhor, assegurando a conformidade dos processos, tudo isso sem sacrificar o tempo para o atendimento ao mercado. Adicionalmente, padrões de codificação e diretrizes são necessários para garantir que os componentes de software sejam confiáveis, fáceis de manter e, acima de tudo, seguros.

MISRA e AutoSAR

C e C++ são as linguagens de programação dominantes no mundo automotivo. O MISRA C, o MISRA C++ e as diretrizes de codificação AutoSAR C++ são os principais padrões de codificação. O MISRA é uma colaboração entre fabricantes de veículos, fornecedores de componentes e consultorias de engenharia. Formado no final dos anos 90, promove as melhores práticas no desenvolvimento de sistemas eletrônicos relacionados à segurança para veículos rodoviários. Seus padrões de codificação também são usados ​​em outras indústrias onde a segurança, a qualidade e a confiabilidade são uma prioridade, incluindo ferrovias, a industria aeroespacial, telecomunicações, dispositivos médicos e defesa. Hoje, o MISRA é aceito em todo o mundo para o desenvolvimento de software de missão crítica, nas linguagens C e C++.

O MISRA por enquanto pode ser o mais estabelecido e mais amplamente utilizado dos padrões, mas o uso crescente da moderna C++ está estimulando rapidamente a adoção das diretrizes da AutoSAR. AutoSAR é uma parceria entre mais de 180 empresas envolvidas na indústria automotiva, com o objetivo de padronizar arquiteturas abertas para software automotivo e desenvolvimento de sistemas incorporados. AutoSAR é considerado por muitos ser a plataforma de facto para o futuro design automotivo.

A plataforma adaptativa da AutoSAR atende as necessidades dos veículos conectados e da condução autônoma. Ela é projetada para tecnologias como microprocessadores de 32 e 64 bits de alta potência com memória externa, processamento paralelo e comunicações de alta largura de banda. As diretrizes de codificação AutoSAR C++ foram criadas para apoiar o desenvolvimento de componentes da plataforma adaptativa que utiliza a linguagem C++ moderna. Tais componentes devem cumprir os requisitos de segurança funcional rigorosos da ISO 26262.

A ISO 26262 é o padrão internacional para a segurança funcional dos sistemas elétricos e eletrônicos automotivos (E/E). O padrão cobre todo o ciclo de vida de produção. Um dos seus principais princípios é analisar os riscos no início do processo de desenvolvimento, estabelecer os requisitos de segurança apropriados e cumprir esses requisitos durante o desenvolvimento.

Dentro do padrão, a Parte 6 aborda especificamente o desenvolvimento de software, colocando requisitos particularmente sobre o início do desenvolvimento de software, sobre o projeto arquitetônico de software e design e sobre a implementação da unidade de software. Ela padroniza os métodos de desenvolvimento que devem ser aplicados para atingir um nível de integridade de segurança automotiva específico (ASIL).

O uso de um padrão de codificação aceito universalmente, como o MISRA ou a AutoSAR, facilita a tarefa de garantir que o software da indústria esteja em conformidade com a ISO 26262.

Aderindo aos padrões de codificação

O que o Misra e o AutoSAR têm em comum é que eles dão aos desenvolvedores uma estrutura dentro da qual eles podem desenvolver software “seguro”. No entanto, os padrões não fazem o trabalho do desenvolvedor, e desenvolver sistemas seguros seguros em C++ é um desafio que não deve ser subestimado. Embora seja uma linguagem de programação que dá aos desenvolvedores mais escopo para a inovação, a flexibilidade inerente à C++ também significa que uma tomada de decisão mais cuidadosa é necessária (por exemplo, sobre como lidar com a memória dinâmica). Em outras palavras, o C++ simplifica a programação de sistemas complexos, mas necessita de mais desenvolvedores.

Padrões de codificação ajudam, mas ainda podem ser um desafio para até mesmo o desenvolvedor mais experiente: lidar com áreas de ambiguidade ou interpretação requer experiência e experiência considerável. Selecionar as ferramentas e técnicas corretas são um papel importante a ser desempenhado.

Inspeção de código contínua

Outra boa prática é garantir que cada linha de código seja cuidadosamente inspecionada em todo o processo de desenvolvimento, para garantir que ela seja segura e confiável. Para evitar que isso seja um processo manual, os desenvolvedores usam cada vez mais ferramentas automatizadas, como analisadores estáticos para verificar o código. Como resultado, quaisquer problemas – como desvio a partir de um padrão de codificação, excesso de complexidade ou um bug de DataFlow de disco rígido – podem ser detectados no início do processo. Essa abordagem também reduz a carga subsequente nos processos de teste que tradicionalmente ocorreriam mais tarde no processo de desenvolvimento. É representativo da tendência ‘esquerda volver’, onde os desenvolvedores assumem alguns dos trabalhos que anteriormente eram realizados por testadores ou técnicos de garantia de qualidade.

Normas ajudam estabelecer uma ‘única fonte de verdade transparente’ onde cada versão de cada ativo digital associada a um projeto também suporte melhor a adesão aos requisitos de conformidade. Isso fornece uma visão em tempo real e histórica de quem fez o que, quando, onde e como. No mundo automotivo, isso pode incluir informações relacionadas ao software e hardware, como documentação, código e outros artefatos de design, entre os colaboradores internos e externos. No desenvolvimento de software automotivo, há tipicamente muitos tipos de ferramentas, arquivos, plataformas e diferentes equipes que contribuem para um projeto, por isso é essencial que a única fonte de verdade apóie essa diversidade.

Muitas equipes de desenvolvimento automotivo estão descobrindo que precisam de um sistema de controle de versão de alto desempenho que possa ser dimensionado para suportar o tamanho crescente de sua base de código, ao mesmo tempo apoiando adequadamente outros tipos de ativos binários. Elas também precisam de uma ferramenta de análise de código estática para se integrarem a este sistema de controle e para gerenciar violações do padrão de codificação à medida que seu código evolui.

Finalmente, como a tecnologia, ferramentas e processos que sustentam o desenvolvimento automotivo continuam a evoluir (como também novos problemas são introduzidos), é importante continuar monitorando a situação e permanecer com a cabeça aberta a novas ideias. Neste mercado de ritmo acelerado, uma coisa das quais podemos ter certeza é a mudança.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s