Please use this identifier to cite or link to this item: http://repositorio.unicamp.br/jspui/handle/REPOSIP/275496
Type: DISSERTAÇÃO
Degree Level: Mestrado
Title: Evolução e recuperação de arquiteturas de software baseadas em componentes
Title Alternative: Component based software architecture recovery and evolution
Author: Esteve, Andre Petris, 1989-
Advisor: Rubira, Cecília Mary Fischer, 1964-
Abstract: Resumo: Os sistemas de software precisam evoluir para atender as necessidades das pessoas. Isso é natural, já que as pessoas, as sociedades mudam, novas necessidades surgem, conceitos alteram-se e o software deve adequar-se às mudanças. Ao passo que alterações são feitas em sistemas de softwares, eles começam a envelhecer. O envelhecimento de software é o termo dado a redução da vida útil de um software devido à natureza da complexidade de seus processos de criação, manutenção e entendimento. Conforme um software é modificado, ele tende a se tornar mais complexo. Assim, ao precisar atender a novos requisitos seu código torna-se mais complexo, tornando-se menos expressivo, isto é, menos legível e mais complicado de ser compreendido, ou simplesmente por ser tão imenso e intricado, com centenas de componentes e funcionalidades, entendê-lo torna-se uma tarefa desafiadora. A arquitetura de software é um conceito fundamental no desenvolvimento e evolução de software. E juntamente com o sistema de software, a arquitetura também sofre os efeitos do envelhecimento de software, conhecidos como ersoão e desvio arquiteturais. É de extrema importância o gerenciamento da evolução da arquitetura de sofware, uma vez que ela representa a visão geral do sistema e é fundamentalmente responsável por requisitos de qualidade, como segurança e performance. Eventualmente, manter e evoluir um sistema de software torna-se mais custoso que reescrevê-lo por completo. Atingido esse estado, o software original é abandonado e sua vida útil chega ao fim. Ele é substituído por uma nova implementação, mais moderna, que atende aos novos requisitos, mas que, eventualmente, também envelhecerá, e também será substituída por uma nova implementação. Este trabalho propõe uma solução, composta por método e apoio ferramental, de gerenciamento da evolução de um sistema de software, especialmente, de sua arquitetura, que é peça fundamental na longevidade do sistema. O método proposto nesta solução objetiva identificar precocemente problemas de envelhecimento de software relacionados à arquitetura do sistema, permitindo ao arquiteto de software atuar sobre eles, de forma a mitigar ou eliminar seus impactos sobre a arquitetura do sistema, consequentemente, prolongando a vida útil do mesmo

Abstract: Software systems must evolve so to fit people¿s needs. That is a natural process, in which people and societies change, new necessities arise and existing concepts are replaced by modern ones, thus forcing the software to fit into the new picture, adapting itself to the changes. As software systems are modified, they age. Software ageing is the term given to the diminishing of a software¿s life spawn due to the inherently complexity of its creation, maintenance and understanding processes. As it evolves, the system tends to grow more intricate, its source code tends to become less expressive as it needs to be adapted to new requirements, run with a better performance or simply it has become so immense and complex that understanding it is, by itself, a challenging task. Eventually, maintaining and supporting a software system will turn out to be even more expensive than rewriting it from scratch. From that point onwards, the original piece of software is abandoned, having its life spawn reached an end. The aged software is replaced by a new and modern implementation, one that fulfils the just placed requirements. However this brand new software piece will share the same fate as its predecessors, it will age and will eventually be replaced. This work proposes a solution, composed by method and computer-aided tools, for managing software architecture evolution, which is a fundamental piece in the system¿s longevity. The solution¿s method aims to identify software architecture ageing problems ahead of time, so their impact can be adequately mitigated or even completely avoided, thus extending the software¿s life spawn. So to allow the practical use of the method, as part of the proposed solution, a tool was implemented to automate most of the method¿s activities. Through automation, the tool is capable of reducing the human error associated to the processes execution, thus yielding high efficiency. By analyzing case studies, it is possible to verify that, when applied, the solution is capable to guide the software architect to uncover software ageing problems on the system under investigation. Through the computational aid offered by the solution, the architect is able to act upon the newly discovered issues, with undemanding time and effort, thus resolving or mitigating the problems that arise with software ageing
Subject: Engenharia de software
Software - Arquitetura
Editor: [s.n.]
Date Issue: 2013
Appears in Collections:IC - Tese e Dissertação

Files in This Item:
File SizeFormat 
Esteve_AndrePetris_M.pdf5.5 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.