Olá, me chamo Rodrigo e sou engenheiro responsável pelos produtos Speedgoat no Brasil. A ideia nessa jornada é desmistificar o Model-Based Design. Quero compartilhar o que aprendi para ajudar iniciantes no assunto e encontrar outros que queiram se aprofundar, como eu.

Antes de falarmos sobre os benefícios de usar a metodologia Model-Based Design (MBD) no desenvolvimento de software embarcado, é importante definir o que é. Há diversas visões dentro de uma empresa para Model-Based Design e cada área envolvida apresentará sua definição. A visão aqui apresentada será a do engenheiro. Em futuros posts falarei um pouco das demais visões.

Definindo MBD (Model-Based Design)

Buscando definir o MBD, recorremos a um dos mais conhecidos desenvolvedores de software livre deste segmento (CASE/CAE/CAD) e Open Source, o Scilab:

”Model-Based Design (MBD) is a mathematical and visual method of addressing problems associated with designing complex control, signal processing and communication systems…

…Model-based design is a methodology applied in designing embedded software…”

Em resumo, Model-Based é um processo de desenvolvimento de software baseado num modelo para Sistemas Embarcados. Isto é, a partir de subsistemas conectados contendo blocos de funções, é possível especificar, projetar, simular, verificar, testar e implementar sistemas embarcados do início ao fim do projeto.

Para nós, o MBD possui quatro grandes áreas, sendo elas Especificação ExecutávelProjeto e SimulaçãoImplementação e Teste e Verificação. É importante ressaltar que estas áreas não são vistas como etapas, pois o processo de desenvolvimento não é linear. A passagem entre áreas é direta, através do modelo ou “verdade absoluta” do projeto. Por exemplo, se após um teste do modelo descobríssemos um erro de especificação, poderíamos voltar à parte de Especificação Executável e modificar no modelo a devida função ou parâmetro. Simularíamos a modificação e seguiríamos com o modelo adequado de volta ao teste do modelo. 

E o que ganho com isso?

Bem, a ideia toda deste processo é adiantar os erros de desenvolvimento. Se detectados, erros podem ser benéficos, caso contrário, podem causar prejuízos e recall. Se logo for detectado, aprendido e corrigido, ótimo, caso contrário, é passado adiante e o impacto será no pós-venda. Toyota Prius é um exemplo. Veja aqui.

Diante da definição sobre MBD, a resposta é simples, embora extensa. MBD permite que rapidamente sejam simuladas especificações, parâmetros e designs. Cenário de “What-if” aumentam a previsibilidade do produto e isto torna o processo de inovação e diferenciação mais rápido.

Somando-se a isso, geração automática de código e conhecimento centralizado no modelo, diminuem-se erros de programação, melhora-se a comunicação entre times e a gestão do conhecimento da empresa.

O uso de Simulação, Prototipagem Rápida de Controle e testes em Hardware-in-the-Loop permitem redução de protótipos, redução de retrabalho e, mais interessante, redução de custo do projeto.

Finalmente, o tempo reduzido em cada parte do processo e o potencial reaproveitamento dos modelos em projetos subsequentes permitem Time-to-Market (TTM) menor.

Ferramentas

O conceito surgiu para resolver problemas no desenvolvimento de sistemas embarcados. Dessa forma, as ferramentas são das áreas de software e hardware. Atualmente, trabalhamos exclusivamente com MATLAB e Simulink na parte de software, linguagem MATLAB e C, e os hardwares são Speedgoat. 

Conclusão

Model-Based Design é uma metodologia de desenvolvimento de software embarcado centrada em modelo. É dividida em 4 áreas, sendo elas: Especificação Executável, Simulação, Teste e Verificação e Implementação.

Adotando o desenvolvimento baseado em modelos é possível reduzir custos, acelerar detecção de erros, validar requisitos e melhorar na comunicação entre times de áreas distintas.

Caso queira mais detalhes, este site tem informações e exemplos. Se estiver buscando algo mais formal, pode encontrar no livro Model-Based Design for Embedded Systems, de Gabriela Nicolescu e Pieter J. Mosterman ou as aulas da Universidade Técnica de Viena.