Gerador de código para uma Framework C++ a partir de diagramas de estado UML
Autor(a) principal: | |
---|---|
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 |