Developer-Centric Software Assessment
by Philip Makedonski
Date of Examination:2018-04-12
Date of issue:2018-06-14
Advisor:Prof. Dr. Jens Grabowski
Referee:Prof. Dr. Jens Grabowski
Referee:Prof. Dr. Stephan Waack
Files in this item
Name:Makedonski - Developer-Centric Software Asse...pdf
Size:12.1Mb
Format:PDF
Description:Dissertation
Abstract
English
Software systems are becoming more and more widespread in all areas of everyday life. Due to the increasing reliance on such systems, there is a need to keep them operational over longer periods of time under constantly changing circumstances and increasing demands. Thus, it becomes essential to develop and maintain software with an evolutionary mindset. Various kinds of software assessment are employed to gain a better understanding of the nature of software evolution and provide methods and tools to support the evolution of software. Artifact-centric assessment captures the state of affairs at a given point in time as reflected in the characteristics of the different artifacts that comprise a software system. Change-centric assessment, in contrast, considers how a software system evolved into the state it is at a given point in time and how it can be expected to evolve in the future. Since changes do not occur by themselves, in this thesis we shift to focus to the developers performing the changes, by proposing developer-centric software assessment. The overarching goal of this thesis is to investigate means for characterising developer contribution behaviour and assessing its impact on the resulting software products with respect to certain events of interest. The characterisation and assessment are based on traces collected from different kinds of software-related assets, containing information related to software artifacts at different levels of granularity. Pursuing this goal, we make several contributions within the scope of this thesis, which are related to the identification of potential causes for events of interest and the characterisation of developer behaviour, as well as a model-based approach for mining software repositories and conducting software assessment. We perform case studies to evaluate the methods described in the thesis. The approach for the identification of potential causes for events of interest adds quantitative information on top of existing approaches for origin analysis in order to provide more accurate information across multiple levels of granularity. The approach for the characterisation of developer behaviour seeks to capture and assess the circumstances in which development activities are performed. We present a selection of characteristics across different dimensions and discussed different approaches for making use of the resulting data based on visualisation and data mining techniques. Both approaches are realised within a model-based software mining infrastructure aiming to ease the integration of heterogeneous data produced and used by third-party tools. It serves as a glue for loosely coupling software mining solutions at a high level of abstraction. The corresponding case studies demonstrate the application of the approaches and their strengths and limitations.
Keywords: software assessment; software mining; software evolution; model-based software development; data mining; software analytics; meta-modelling; software modelling; model transformation; defect prediction; facts extraction; origin analysis