Gerador de código para uma Framework C++ a partir de diagramas de estado UML

Detalhes bibliográficos
Autor(a) principal: Dias, Francisco Alberto de Castro e
Data de Publicação: 2016
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: https://hdl.handle.net/1822/48023
Resumo: Dissertação de mestrado integrado em Engenharia Eletrónica Industrial e de Computadores
id RCAP_0503509dbd855b971eef03264b45b8e5
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/48023
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Gerador de código para uma Framework C++ a partir de diagramas de estado UMLUMLGeração de códigoFramework FSMXMIMáquinas de EstadoCode generationState machinesEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado integrado em Engenharia Eletrónica Industrial e de ComputadoresNo auge da era informática e dada a demanda que existe por parte da sociedade de uma resposta rápida para a implementação de sistemas complexos, a geração de código de forma automática, é uma mais valia no processo de desenvolvimento de software. A linguagem de modelação UML vem, por sua vez, estabelecer uma norma no desenvolvimento de software e permitir ao desenvolvedor visualizar o produto do seu trabalho recorrendo a diagramas estruturais e comportamentais. O objetivo desta dissertação tem por base a junção destes dois conceitos, geração de código a partir de diagramas de UML mais especificamente diagramas de estado. Embora existam soluções comerciais que conseguem gerar código a partir de modelos UML este para além de volumoso e mais complexo, é um código que não tem em consideração a sua manutenção e atualização de forma manual, sendo pouco otimizado e de difícil leitura e edição. Este torna-se então o segundo objetivo deste projeto, a geração de código que instancia uma framework de máquinas de estado finitas. Esta particularidade, vai tornar o código fonte gerado mais simples: quer em complexidade de leitura; quer em quantidade de linhas de código, tornando o processo de geração muito mais eficaz e rápido. É desenvolvida uma ferramenta para realizar o processo de geração de código. Esta recebe como entrada um ficheiro XMI que é o formato standard para partilha de dados de diagramas UML e converte-o numa estrutura de objetos, posteriormente escrita para um ficheiro de texto sobre a forma de código, no formato C++. O código resultante é compilado com a framework de máquinas de estado, criando um ficheiro binário completo pronto a executar. O resultado da aplicação prática da ferramenta permite comprovar que o código gerado, é mais fácil de ler e editar, dada a camada de abstração que a framework oferece para criar e executar uma máquina de estados. A framework foi concebida para ser utilizada por programadores, e isso permite reduzir muito a quantidade de código gerado em comparação com outras soluções comerciais e tornar a geração de código mais rápida. O formato escolhido para a ferramenta é um ficheiro executável que pode ser facilmente incorporado em qualquer software UML, independentemente da existência de um mecanismo de extensão ou das suas caraterísticas.At the height of the computer era and given the society’s demand for a rapid response when implementing complex systems, automatic code generation, becomes an important asset in the software development process. The UML modeling language, establish a new standard on the software development and allow the developer to visualize the result of his work using structural and behavioral diagrams. The objective of this dissertation is based on the combination of these two concepts, code generation from UML diagrams, specifically state diagrams. While there are commercial solutions that can generate code from UML models, the code generated by these tools, in addiction to being very bulky and complex does not take into account the manual maintenance and updating process of the code, resulting in a less optimized structure which is difficult to read and edit . This, there for, becomes the second objective of this project, code generated is to instantiate a finite state machines’ framework. This feature will result in a simple, well structured source code regarding reading complexity and the number of lines of code needed, making the generation process much more efficient and fast. A tool to make the code generation process was developed. Said tool receives as input a XMI file format, which is the standard format for sharing UML diagrams’ data, and converts it into a structure of objects that later writes to a text file, following the C++ code format. The resulting code is then compiled with the libraries of the state machine framework, resulting in a complete binary file ready to run. The results of the practical application of the tool allowed to prove that the generated code was easier to read and edit, given the abstraction layer provided by the framework. The framework was designed to be used by programmers, and this contributed to greatly reduced the amount of code generated compared to other commercial solutions, making the generation process much faster. The format chosen for the tool was an executable file that can be easily embedded in any UML software, regardless of the existence of an extension mechanism or its characteristics.Lopes, Sérgio F.Universidade do MinhoDias, Francisco Alberto de Castro e20162016-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/48023por201683725info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-07-21T12:46:13Zoai:repositorium.sdum.uminho.pt:1822/48023Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:44:11.598419Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Gerador de código para uma Framework C++ a partir de diagramas de estado UML
title Gerador de código para uma Framework C++ a partir de diagramas de estado UML
spellingShingle Gerador de código para uma Framework C++ a partir de diagramas de estado UML
Dias, Francisco Alberto de Castro e
UML
Geração de código
Framework FSM
XMI
Máquinas de Estado
Code generation
State machines
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Gerador de código para uma Framework C++ a partir de diagramas de estado UML
title_full Gerador de código para uma Framework C++ a partir de diagramas de estado UML
title_fullStr Gerador de código para uma Framework C++ a partir de diagramas de estado UML
title_full_unstemmed Gerador de código para uma Framework C++ a partir de diagramas de estado UML
title_sort Gerador de código para uma Framework C++ a partir de diagramas de estado UML
author Dias, Francisco Alberto de Castro e
author_facet Dias, Francisco Alberto de Castro e
author_role author
dc.contributor.none.fl_str_mv Lopes, Sérgio F.
Universidade do Minho
dc.contributor.author.fl_str_mv Dias, Francisco Alberto de Castro e
dc.subject.por.fl_str_mv UML
Geração de código
Framework FSM
XMI
Máquinas de Estado
Code generation
State machines
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic UML
Geração de código
Framework FSM
XMI
Máquinas de Estado
Code generation
State machines
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Dissertação de mestrado integrado em Engenharia Eletrónica Industrial e de Computadores
publishDate 2016
dc.date.none.fl_str_mv 2016
2016-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/1822/48023
url https://hdl.handle.net/1822/48023
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv 201683725
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799133001497444352