Uma solução para apoiar processos de desenvolvimento centrado na arquitetura

The success of a software project is strongly related with architectural design. However, designing the right Software Architecture is a very subjective task and takes a long time, being much influenced by architect's experience and the quality of requirements engineering. This architectural kn...

Full description

Bibliographic Details
Main Author: Silva, Italo Carlo Lopes
Other Authors: Brito, Patrick Henrique da Silva
Language:Portuguese
Published: Universidade Federal de Alagoas 2017
Subjects:
Online Access:http://www.repositorio.ufal.br/handle/riufal/1614
Description
Summary:The success of a software project is strongly related with architectural design. However, designing the right Software Architecture is a very subjective task and takes a long time, being much influenced by architect's experience and the quality of requirements engineering. This architectural knowledge, usually, is not documented, since it is considered tacit knowledge of architects or other stakeholders, and eventually dissipates. It is also essentially important to ensure the consistency between software architecture and implementation. However, this mapping is usually made manually, based only on the developer's understanding over the software architecture, which requires high discipline. Thus, errors can arise during this phase, compromising the consistency amongst architectural decisions and source code. The objective of this work is to present a tool-based solution that supports young architects by recommending a suitable architectural style, based on the system's requirements, particularly the quality attributes of the system. The tool encompasses both trade-o resolution over quality attributes and recommendation of architectural styles based on quality attributes. Finally, based on the recommended architecture, the tool will generate the system structural source-code, using a component implementation model called COSMOS*, providing traceability between architectural design and implementation. The proposed solution has been evaluated in the context of a specific domain of Learning Management System (LMS), in order to illustrate the tool support in the execution of an architectural design process. === O sucesso de um projeto de software está fortemente relacionado com o projeto arquitetural. No entanto, projetar a arquitetura de software correta é uma tarefa muito subjetiva e leva muito tempo, sendo muito influenciada pela experiência do arquiteto e a qualidade da engenharia de requisitos. Este conhecimento arquitetural, geralmente, não está documentado, uma vez que é considerado o conhecimento tácito dos arquitetos ou dos interessados, e, eventualmente, se dissipa. Também é essencialmente importante assegurar a consistência entre a arquitetura de software e a implementação. No entanto, esse mapeamento é feito manualmente na maioria das vezes, baseado apenas no entendimento do desenvolvedor sobre a arquitetura, exigindo disciplina por parte dele. Assim, erros podem surgir durante esta fase, comprometendo a consistência entre as decisões arquiteturais e o código fonte. Em face destas dificuldades, foi desenvolvido este trabalho, cujo o objetivo é apresentar uma ferramenta que apoie jovens arquitetos com a recomendação de um estilo arquitetural adequado, baseado nos requisitos do sistema, particularmente os atributos de qualidade do sistema. A ferramenta compreende tanto resolução trade-off sobre os atributos de qualidade e recomendação de estilos arquiteturais com base em atributos de qualidade. Por fim, com base na arquitetura recomendada, a ferramenta irá gerar o código estrutural do sistema, utilizando um modelo de implementação de componente chamado COSMOS*, proporcionando rastreabilidade entre projeto arquitetural e a implementação. A solução proposta foi avaliada no contexto de um domínio específico dos Ambientes Virtuais e Aprendizagem (AVA), a m de ilustrar o suporte da ferramenta na execução de um processo de projeto arquitetural.