2013 | OriginalPaper | Chapter
The Role of Software Tracing in Software Maintenance
Author : Abdelwahab Hamou-Lhadj
Published in: Modeling Approaches and Algorithms for Advanced Computer Applications
Publisher: Springer International Publishing
Activate our intelligent search to find suitable subject content or patents.
Select sections of text to find matching patents with Artificial Intelligence. powered by
Select sections of text to find additional relevant content using AI-assisted search. powered by
Our society depends greatly on software systems for many critical activities including finance, health, education, telecommunications, aerospace, and more. Maintaining these systems to keep up with new user needs and ever changing technologies is an important task, but also a challenging and costly one. Research shows that software maintenance activities can take up to 80% of the time and effort spent during the lifecycle of software. The constant challenge for software maintainers is to understand what a system does before making any changes to it. In an ideal situation, this understanding should come from system documentation, but, for a variety of reasons, maintaining sufficiently good documentation has been found to be impractical in many organizations.
In this talk, I will discuss techniques to aid software engineers in understanding software systems. I will focus on the techniques that permit the understanding of system behaviour through tracing. Tracing encompasses three main steps: run the system, observe what it does, and make sense of how and why it does it in a certain way. The major challenge is that typical traces can be overwhelmingly large, often millions of lines long. I will present a set of techniques that we have developed to simplify the analysis of large traces. I will report on lessons learned from industrial projects in which my research lab has played a leading role. I will conclude my talk with an outlook on future challenges and research directions.