Impact of Aspect-Oriented Programming on the Quality of Novices’ Programs: A Comparative Study - Katić, Marija; Botički, Ivica; Fertalj, Krešimir (Journal of Information and Organizational Sciences, 2013)
Aspect-oriented programming has been introduced in order to increase the modularity of object-oriented programs and is claimed to improve software quality. Although there are various researches on this claim, the question to what extent aspect-oriented programming improves the quality of programs depending on a developer’s experience still remains. The purpose of this study is to investigate whether aspect-oriented programming used by novice programmers improves the quality of programs, in terms of software flexibility and readability (consequently reusability and maintainability as well). As a part of an undergraduate course in programming paradigms and languages, a systematic comparison between students’ object-oriented and aspect-oriented solutions of the same problem was driven. In order to drive this comparison we have established the basis for the development of the new quality assessment model consisting of software metrics for an objective evaluation and student survey for subjective evaluation. The results show that the use of aspect-oriented programming lead to novices’ programs that are easier to change and read (flexible and readable) compared to object-oriented programs. What is more, administered survey showed that students perceive their programs as more flexible and readable.