Font Size: a A A

Enhancing static architecture design recovery by lightweight dynamic analysis

Posted on:2007-12-12Degree:M.MathType:Thesis
University:University of Waterloo (Canada)Candidate:Pahlevan, AtousaFull Text:PDF
GTID:2442390005977966Subject:Computer Science
Abstract/Summary:
Most reverse engineering research has concentrated on the development of tools that extract and model the structure of software systems. Within reverse engineering techniques, there has been extensive work done to analyze systems from their source code. The purpose of this analysis is to derive the system architecture to discover and document certain properties of a software system.; This thesis extends this body of research into a new area. We emphasize that software understanding occurs on several fronts. Developers must know the structure and behavior of a system. Even though there are many automatic aids to derive the static architecture of a software system, understanding a system's implementation is still a hard task. The developers may have a mental model shaped by the dynamic behavior of the system, and this information may not be revealed by static analysis alone.; In fact, we believe that static analyses do not fully address the software understanding requirements. Dynamic analysis has proven to be a useful way to understand the behavior of a system. This is intended to address the shortcomings of static analysis, by capturing the dynamic behavior of software system.; In this thesis, we propose enhancing statically derived software architecture with information gathered from tracing execution of carefully chosen key scenarios. These key scenarios ideally represent the essential ways of using the system. The static architecture is used to derive pivotal functions, which are those functions that directly interact with other functions outside of their subsystem. The lightweight tracing is simplified and made easier by tracing only pivotal functions. We refer to this as a lightweight dynamic analysis process, and it was developed using already existing tools. We have used the case study of several versions of Unix Shells to validate the effectiveness of our extraction and visualization techniques.
Keywords/Search Tags:Static architecture, System, Dynamic, Software, Lightweight
Related items