Call-graphAnalysisOfPolymorphicConstructsInC#Sources

Stc
Date: 2007-09-06

Time: 11:45

Room: BBL room 471

Speaker: Reinier Vis

Title: Call-graph analysis of polymorphic constructs in C# sources

(thesis defense)

Abstract

Large software systems are generally hard to understand. This makes the adjustability and the maintainability of these systems difficult. For further development of these applications, insight of the structure of these applications is very useful. To gain insight in the applications, the dependencies in these software systems have to be identified and analyzed. Once the implicit relations are made explicit, all kinds of metrics and tests can be performed on these software systems.

The Software Improvement Group has developed a framework for static source code analysis. This framework supported basic analysis on programs written in the programming language C#. However, due to market demands, more extensive analyses on C# programs were required.

This thesis describes an extension of the existing framework, where features which were introduced by C# version 2.0 are modeled and made possible to be analyzed. A graph representation of a software system is built, in which dependency relations and calculated metric values can be stored. I will explain how call-dependency relations are analyzed and identified, and how coercion and type conversions are applied to identify method invocations.