ÍNDICE DE CONTEÚDO
Olá, me chamo Rodrigo e sou novo no Embarcados. Sou formado em Engenharia Mecânica, mas nos últimos 5 anos atuo na área de Engenharia Controle e Sistemas. Pretendo abordar o Model-Based Design aqui. 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ável, Projeto e Simulação, Implementaçã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
Há diversos ambientes de modelagem disponíveis no mercado. Exemplos dessas empresas são MathWorks com Simulink, LMS Amesin da Siemens, National Instruments com LabView e Xcos da Scilab Enterprises. Mas existem muitos outros. Alguns deles oferecem trials por 30 dias ou, como o Xcos, é de uso livre.
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.
Conhece o Arcadia/Capella?
(https://en.wikipedia.org/wiki/Arcadia_(engineering)
https://www.polarsys.org/capella/arcadia.html