Título: | Geração de código dirigida a modelo : uma abordagem orientada à meta |
Autor(es): | Holsbach, Rafael Akiyoshi |
Orientador(es): | Serrano, Milene |
Coorientador(es): | Serrano, Maurício |
Assunto: | Arquitetura de redes de computadores Software - desenvolvimento |
Data de apresentação: | 3-Jan-2018 |
Data de publicação: | 1-Mar-2019 |
Referência: | HOLSBACH, Rafael Akiyoshi. Geração de código dirigida a modelo: uma abordagem orientada à meta. 2018. 100 f., il. Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software)—Universidade de Brasília, Brasília, 2018. |
Resumo: | A linha de base arquitetural de um software é considerada uma especificação de suma
relevância, a qual orienta o desenvolvimento de um software em aderência aos requisitos
acordados na Engenharia de Requisitos. Entretanto, a literatura da área da computação
apresenta evidências de que os desenvolvedores frequentemente optam por iniciar a
codificação sem ao menos iniciar uma especificação arquitetural prévia. Tal prática comumente
compromete a manutenção evolutiva do software desenvolvido, tornando essa,
principalmente, dispendiosa.
Considerando que tanto a especificação de uma linha de base de requisitos quanto a especificação
de uma linha de base arquitetural são representadas por modelos, em diferentes
níveis de abstração, os quais permitem, respectivamente, (i) modelar os requisitos elicitados
junto aos interessados, e (ii) modelar os componentes e conectores arquiteturais, há
forte associação da atividade de modelagem em ambos os casos.
Diante do exposto, e procurando colaborar nesse cenário, esse trabalho preocupou-se com
o desenvolvimento de uma aplicação, chamada Model IT, atuando na geração semiautomática
de código usando modelos como base.
Entretanto, para viabilizar o desenvolvimento de uma primeira versão dessa aplicação,
foram estabelecidos: (i) um perfil de aplicação específico para geração de código, no caso,
aplicações web; (ii) uma notação de modelagem específica, no caso, a notação i*; (iii)
um padrão arquitetural específico, no caso, o Padrão Model-View-Controller (MVC), e
(iv) uma linguagem de programação específica, no caso, orientada ao framework Django.
A ideia é apoiar os desenvolvedores na construção de aplicações web, considerando a
geração semiautomática de código em Django, orientando-se por modelos em i* (em diferentes
níveis de abstração) e o Padrão Arquitetural MVC, e fazendo uso de heurísticas
transformacionais bem como de princípios de Model Driven Architecture (MDA).
Adicionalmente, são apresentados detalhes da Model IT bem como os resultados obtidos
com o uso desse suporte junto ao público alvo, considerando ciclos de pesquisa-ação, o
que permitiu avaliar o uso do suporte e realizar evoluções no mesmo com base nos dados
coletados em cada ciclo. |
Abstract: | The architectural baseline of software is considered a highly relevant specification, which
guides the development of software in compliance with the requirements agreed upon
in Requirements Engineering. However, the computer literature presents evidence that
developers often choose to start coding without at least starting a prior architectural
specification. Such practice commonly compromises the evolutionary maintenance of the
developed software, making it especially costly.
Considering that both the specification of a baseline of requirements and the specification
of an architectural baseline are represented by models at different levels of abstraction,
which allow (i) to model the requirements elicited with stakeholders, and (ii) to model the
architectural components and connectors, there is a strong association of the modeling
activity in both cases.
In view of the above, and seeking to collaborate in this scenario, this work was concerned
with the development of an application, called Model IT, working in the semiautomatic
generation of code using models as a basis.
However, to enable the development of a first version of this application, it was established:
(i) a specific application profile for code generation, in this case, web applications; (ii)
a specific modeling notation, in this case the notation i *; (iii) a specific architectural
standard, in this case the Model View-Controller (MVC), and (iv) a specific programming
language, in this case, oriented to the Django framework. The idea is to support developers
in building web applications, considering the semiautomatic generation of code in Django,
focusing on i * models (at different levels of abstraction) and the MVC Architectural
Standard, and making use of transformational heuristics as well as principles of Model
Driven Architecture (MDA).
In addition, Model IT details are presented as well as the results obtained with the use of
this support with the target audience, considering action-action cycles, which allowed to
evaluate the use of the support and to perform evolutions in the same based on the data
collected in each cycle. |
Informações adicionais: | Trabalho de Conclusão de Curso (graduação)—Universidade de Brasília, Faculdade UnB Gama, 2018. |
Aparece na Coleção: | Engenharia de Software
|