@mastersthesis {2173, title = {Slicing techniques applied to architectural analysis of legacy software}, year = {2008}, school = {University of Minho}, type = {PhD Thesis}, address = {Braga, Portugal}, abstract = {

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 {\textemdash} i.e., the level of understanding of {\textemdash} 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 {\textquotedblleft}micro{\textquotedblright} and {\textquotedblleft}macro{\textquotedblright} 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 {\textquotedblleft}micro{\textquotedblright} 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 investivigating new functional slicing processes are also discussed. Slicing at a {\textquotedblleft}macro{\textquotedblright} level is the theme of the second part of this thesis,
which addresses the problem of extracting from source code the system{\textquoteright}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 {\textendash} CoordInspector {\textendash} is introduced as a proof-of-concept.

}, attachments = {https://haslab.uminho.pt/sites/default/files/nfr/files/tese.pdf}, author = {Nuno Rodrigues} }