Um método para projetar sistemas embarcados baseado na metodologia de engenharia dirigida por modelos aplicado a sistemas de processamento de imagens - Doering, Dionísio (2015)
Sistemas embarcados estão presentes em inúmeras atividades realizadas diariamente, por exemplo, eles são parte integrante dos meios de transporte, encontram-se em sistemas de entretenimento como os tablets e telefones celulares e ainda podem estar dentro das pessoas, como nos usuários de marca-passo. Os sistemas embarcados são desenvolvidos em níveis de complexidade bem distintos, variando de sistemas bem simples até sistemas altamente elaborados e complexos. Essa complexidade pode ser atribuída a diversos fatores, incluindo a necessidade de poder executar múltiplas tarefas em unidades de processamento heterogêneas (baseadas em CPU, GPU, DSP e FPGAs) e atendendo aos requisitos exigidos pelos usuários. Em função do aumento da complexidade e da necessidade de manter o tempo e custo do desenvolvimento de novos sistemas embarcados baixo, uma solução que vem sendo discutida é o uso de metodologias de projetos baseadas em modelos. Estas metodologias usam o modelo como fonte principal de informação. As informações contidas nos modelos variam de acordo com o estágio de desenvolvimento do sistema: nos modelos iniciais são descritivas, simples, incompletas mas permitem realizar simulações que podem ser usadas para guiar o desenvolvimento do próprio sistema. Com o amadurecimento do projeto, mais informações são agregadas aos modelos, tornando-os mais próximos do sistema a ser implementado. Este processo reduz o nível de abstração dos modelos até o ponto que é possível gerar, entre outros artefatos, o código fonte. Neste contexto, sistemas de processamento de imagens embarcados são exemplos de sistemas complexos que fazem processamento de dados de forma intensiva. Estes sistemas são tradicionalmente desenvolvidos em um nível de abstração baixo que tipicamente incluem diagramas blocos e diagrama de estados. Para que seja possível administrar o crescente aumento da complexidade, em um baixo tempo de desenvolvimento, destes sistemas é necessário que sejam criados métodos que permitam desenvolvê-los em um nível mais alto de abstração. Além disso é necessário que existam ferramentas que auxiliem no seu desenvolvimento permitindo, entre outras coisas, aumentar o reúso dos blocos parametrizáveis do sistema e a exploração de espaço de projetos em fases iniciais do projeto para guiar o seu próprio desenvolvimento. Neste trabalho é feita uma proposta de um novo método de desenvolvimento de sistemas embarcados de processamento de imagens baseado na metodologia de engenharia dirigida por modelos. São parte integrantes do método proposto: combinar a modelagem de requisitos funcionais (usando modelagem orientada a objetos) e requisitos não-funcionais (usando modelagem orientada a aspectos); a exploração de espaço de projeto baseada em modelos para resolver o problema de alocação das tarefas nas diferentes unidades de processamento; validação funcional dos modelos; e a geração de código em linguagens de programação. O método proposto chama-se HIPAO, do inglês “Hardware Image Processing system based on model driven engineering and Aspect-Oriented modeling”. O ciclo de desenvolvimento de projeto de sistemas de processamento de imagens embarcado inicia com a coleta dos requisitos técnicos em diagramas de requisitos da linguagem SysML A especificação deste requisitos é feita através de um metamodelo para requisitos técnicos de processamento de imagens que foi desenvolvido em conjunto com o método HIPAO. Estes requisitos são transformados automaticamente em modelos independentes de plataforma (PIM) iniciais. Esta transformação é feita a partir da ferramenta HIPAO desenvolvida em linguagem Java como mecanismo de apoio ao método. Os modelos PIM iniciais evoluem de forma iterativa através da adição de informações feita de forma manual e também de forma automática através da costura ou composição de modelos. O método sugere que modelos de plataforma (PM) sejam desenvolvidos de forma semelhante ao proposto para os modelos PIM, porém sua implementação é considerada trabalho futuro e os modelos PM apresentados neste trabalho são fruto de um desenvolvimento manual. De posse dos modelos PIM e PM o método realiza uma etapa de otimização do modelo através da sua transformação (tipo modelo para texto) para um formato compatível com o framework que realiza a exploração de espaço de projetos dirigida por modelos (MD-DSE). Os modelos específicos de plataforma (PSM) são produzidos com o auxílio de informações obtidas a partir de gráficos tipo Fronteira de Pareto que são produzidos pelo framework MD-DSE que realiza a atividade de alocação das tarefas (modelo PIM) na plataforma (modelo PM) com base em algoritmos heurísticos. O ciclo de desenvolvimento do projeto se encerra com a geração de código, de forma semelhante à maioria dos métodos baseados em engenharia dirigida por modelos, a partir de modelos PSM e alguns exemplos são apresentados. Para o uso e validação do método proposto foram realizados dois estudos de caso. O primeiro é um sistema de processamento de imagens para câmeras científicas de alta resolução e alta velocidade. O segundo estudo de caso propõe o desenvolvimento de um sistema de processamento de imagens a ser integrado a um veículo autônomo não-tripulado.