Empirical Evaluations of Semantic Aspects in Software Development

University dissertation from Fakulteten för ekonomi, kommunikation och IT

Abstract: This thesis presents empirical research in the field of software development with a focus on handling semantic aspects. There is a general lack of empirical data in the field of software development. This makes it difficult for industry to choose an appropriate method for their particular needs. The lack of empirical data also makes it difficult to convey academic results to the industrial world.This thesis tries to remedy this problem by presenting a number of empirical evaluations that have been conducted to evaluate some common approaches in the field of semantics handling. The evaluations have produced some interesting results, but their main contribution is the addition to the body of knowledge on how to perform empirical evaluations in software development. The evaluations presented in this thesis include a between-groups controlled experiment, industrial case studies and a full factorial design controlled experiment. The factorial design seems like the most promising approach to use when the number of factors that need to be controlled is high and the number of available test subjects is low. A factorial design has the power to evaluate more than one factor at a time and hence to gauge the effects from different factors on the output.Another contribution of the thesis is the development of a method for handling semantic aspects in an industrial setting. A background investigation performed concludes that there seems to be a gap between what academia proposes and how industry handles semantics in the development process. The proposed method aims at bridging this gap. It is based on academic results but has reduced formalism to better suit industrial needs. The method is applicable in an industrial setting without interfering too much with the normal way of working, yet providing important benefits. This method is evaluated in the empirical studies along with other methods for handling semantics. In the area of semantic handling, further contributions of the thesis include a taxonomy for semantic handling methods as well as an improved understanding of the relation between semantic errors and the concept of contracts as a means of avoiding and handling these errors.