Slicing techniques applied to architectural analysis of legacy software

Bibliographic Details
Main Author: Rodrigues, Nuno F.
Publication Date: 2009
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/1822/9078
Summary: Tese de doutoramento em Informática (ramo de conhecimento em Fundamentos da Computação)
id RCAP_ffbec5d1a5c49e27d1a9a2d90cafbc93
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/9078
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Slicing techniques applied to architectural analysis of legacy software681.3.06Tese de doutoramento em Informática (ramo de conhecimento em Fundamentos da Computação)Program understanding is emerging as a key concern in software engineering. In a situation in which the only quality certificate of the running software artifact still is life-cycle endurance, customers and software producers are little prepared to modify or improve running code. However, faced with so risky a dependence on legacy software, managers are more and more prepared to spend resources to increase confidence on - i.e., the level of understanding of - their (otherwise untouchable) code. In fact the technological and economical relevance of legacy software as well as the complexity of their re-engineering entails the need for rigour. Addressing such a scenario, this thesis advocates the use of direct source code analysis for both the process of understanding and transformation of software systems. In particular, the thesis focuses on the development and application of slicing techniques at both the “micro" and “macro" structural levels of software. The former, deals with fine-grained structures of programs, slicing operating over elementary program entities, such as types, variables or procedure identifiers. The latter, on the other hand, addresses architectural issues and interaction modes across modules, components or services upon which a system is decomposed. At the \micro" level this thesis delves into the problem of slicing functional programs, a paradigm that is gaining importance and was generally neglected by the slicing community. Three different approaches to functional slicing are proposed, accompanied by the presentation of the HaSlicer application, a software tool developed as a proof-of-concept for some of the ideas discussed. A comparison between the three approaches, their practical application and the motivational aspects for keeping investigating new functional slicing processes are also discussed. Slicing at a \macro" level is the theme of the second part of this thesis, which addresses the problem of extracting from source code the system's coordination model which governs interaction between its components. This line of research delivers two approaches for abstracting software systems coordination models, one of the most vital structures for software architectural analysis. Again, a software tool – CoordInspector – is introduced as a proof-of-concept.A compreensão de sistemas de software reveste-se de uma cada vez maior importância no campo da engenharia de software. Numa situação em que a única garantia de funcionamento dos diversos componentes de software reside apenas na metodologia de desenvolvimento adoptada, tanto clientes bem como produtores de software encontram-se pouco preparados para modificar ou melhorar os seus programas. No entanto, face a uma tão grande dependência em relação ao código legado, os gestores estão cada vez mais receptivos a gastar recursos de forma a aumentar a confiança - i.e., o nível de compreensão - dos seus (de outra forma intocáveis) programas. De facto, a relevância tecnológica e económica do software legado bem como a complexidade associada à sua reengenharia provocam uma urgente necessidade de rigor. Tendo este cenário como contexto, esta tese advoga o uso de uma análise directa de código fonte com o objectivo de compreender e transformar sistemas de software. Em particular, esta tese debruça-se sobre o desenvolvimento e a aplicação de técnicas de slicing aos níveis “micro" e “macro" das estruturas de software. A análise efectuada ao nível “micro" lida com estruturas de programas de pequena granularidade, onde o slicing opera sobre entidades elementares dos programas, tais como tipos, variáveis ou identificadores de procedimentos. Por outro lado, o nível de análise “macro" aborda questões arquitecturais, tais como as interacção entre módulos, componentes ou serviços sobre os quais um sistema de software pode ser decomposto. Ao nível “micro", esta tese aborda o problema de efectuar slicing a programas funcionais, um paradigma que se reveste de uma cada vez maior importância e o qual tem sido negligenciado pela comunidade de slicing. Neste sentido, esta tese apresenta três diferentes abordagens ao slicing funcional, acompanhadas pela apresentação da aplicação HaSlicer, uma ferramenta de software desenvolvida como prova de conceito para algumas das ideias expostas. No decorrer da apresentação destas propostas de abordagem ao slicing funcional, efectua-se ainda uma comparação entre os diversos processos, as suas aplicações práticas bem como os aspectos motivacionais que levaram à investigação de novos processos de slicing funcional. As operações de slicing ao nível “macro" constituem o tema da segunda parte desta tese, onde se aborda o problema específico da extracção de arquitecturas de sistemas de software. Neste sentido, são desenvolvidas duas abordagens distintas para a abstracção do modelo de coordenação de um sistema de software, o que constitui uma das mais vitais estruturas para a análise de sistemas de software. Mais uma vez, é apresentada uma ferramenta de software – CoordInspector – como prova de conceito.Fundação para a Ciência e a Tecnologia (FCT) - SFRH/BD/19127/2004Barbosa, L. S.Universidade do MinhoRodrigues, Nuno F.2009-02-092009-02-09T00:00:00Zdoctoral thesisinfo:eu-repo/semantics/publishedVersionapplication/pdfhttp://hdl.handle.net/1822/9078enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T05:54:45Zoai:repositorium.sdum.uminho.pt:1822/9078Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T15:34:26.037770Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Slicing techniques applied to architectural analysis of legacy software
title Slicing techniques applied to architectural analysis of legacy software
spellingShingle Slicing techniques applied to architectural analysis of legacy software
Rodrigues, Nuno F.
681.3.06
title_short Slicing techniques applied to architectural analysis of legacy software
title_full Slicing techniques applied to architectural analysis of legacy software
title_fullStr Slicing techniques applied to architectural analysis of legacy software
title_full_unstemmed Slicing techniques applied to architectural analysis of legacy software
title_sort Slicing techniques applied to architectural analysis of legacy software
author Rodrigues, Nuno F.
author_facet Rodrigues, Nuno F.
author_role author
dc.contributor.none.fl_str_mv Barbosa, L. S.
Universidade do Minho
dc.contributor.author.fl_str_mv Rodrigues, Nuno F.
dc.subject.por.fl_str_mv 681.3.06
topic 681.3.06
description Tese de doutoramento em Informática (ramo de conhecimento em Fundamentos da Computação)
publishDate 2009
dc.date.none.fl_str_mv 2009-02-09
2009-02-09T00:00:00Z
dc.type.driver.fl_str_mv doctoral thesis
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/9078
url http://hdl.handle.net/1822/9078
dc.language.iso.fl_str_mv eng
language eng
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órios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833595400387297280