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. / Embedded systems are present in many daily activities, for example, they are found in entertainment systems such as tablets and cell phones and they could even be inside a person’s body, which is the case of a pace-maker. Embedded systems can have very distinct complexity levels, from very simple to very complex and sophisticated ones. This complexity can be attributed to many different sources, which include the need to execute multiple tasks or deploy them in heterogeneous platforms (i.e. CPU, GPU, DSP and FPGAs) while fulfilling the users requirements. In order to cope with the rising system’s complexity and the need to keep the time to market and cost low, some solutions using methodologies based on model driven engineering are being considered. These methodologies use the model as the primary source of information. The information in the model varies based on the system’s development stage: at the beginning the models are descriptive, simple and incomplete, however they enable to simulate the system at a high level which can be used to drive the system’s development. As the project evolves, more information is added to them and the models looks closer to its final system. This process reduces the models abstraction level to the point that is possible to generate many artifacts from them, such as, source code. In this context, embedded image processing systems are examples of complex systems that perform data intensive processing. These systems are traditionally developed in a low level of abstraction, which typically include block diagrams and state charts. In order to handle the rising system’s complexity, while keeping time to market low, it is necessary to develop new methods that enable these systems development at a high abstraction level. Also, it is necessary the development of new tools to support these methods enabling, among other things, increase in the design reuse of its blocks and the design space exploration at an early stage such that it could guide the systems own development. In this work it is proposed a novel design method for embedded image processing systems based on model driven engineering concepts. This method proposes the following: combine functional requirements (using object oriented modeling) and non-functional requirements (using aspect oriented modeling); perform model based design space exploration in order to tackle task allocation in platforms with multiple processing units; functional model validation; and code generation. The proposed method is called HIPAO, which stands for “Hardware Image Processing system based on model driven engineering and Aspect-Oriented modeling”. The development cycle of embedded image processing systems starts starts with the elucidation of technical requirements using SysML requirements diagram. The specification of the image processing technical requirements is done using a metamodel, which has been developed with the HIPAO method. These requirements are transformed automatically into initial platform independent models (PIM). The transformations are performed by the HIPAO tools developed using Java language. The PIM models evolve by adding new information to it, which can be done manually or in some cases automatically by model weaving or composition. The proposed method suggests that the platform models (PM) should be developed in a similar fashion as the PIM models, but this task is considered a future work therefore all PM models presented in this thesis have been developed manually. Once the PIM and PM models are available the method executes an optimization phase that includes the model transformation (model to text) that produces the information needed by the model driven - design space exploration (MD-DSE). The platform specific models (PSM) are produced based on the information presented as Pareto Fronts that are generated the the MD-DSE framework while performing task (PIM model) allocation on the platform (PM model) using heuristic algorithms. The method development cycle ends with code generation from the PSM models using model to text transformations and some examples are presented. Two case-studies were designed to validate the proposed method. The first one consists of an image processing system for high speed, high resolution scientific image sensors. The second case study consists of an image processing system that is deployed in small Unmanned Autonomous Vehicles.
Identifer | oai:union.ndltd.org:IBICT/oai:www.lume.ufrgs.br:10183/186160 |
Date | January 2015 |
Creators | Doering, Dionísio |
Contributors | Pereira, Carlos Eduardo |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/doctoralThesis |
Format | application/pdf |
Source | reponame:Biblioteca Digital de Teses e Dissertações da UFRGS, instname:Universidade Federal do Rio Grande do Sul, instacron:UFRGS |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0077 seconds