Sofia Charalampidou

Learn More
Stability refers to a software system's resistance to the “ripple effect”, i.e., propagation of changes. In this paper, we investigate the stability of classes that participate in instances/occurrences of GoF design patterns. We examine whether the stability of such classes is affected by (a) the pattern type, (b) the role that the class plays(More)
Context: Investing on Open Source Software (OSS) as a "code reuser", involves certain risks, such as the difficulty in understanding the level of OSS design quality Aim: We investigate the levels of design quality of OSS projects, across different application domains. Method: We conducted a case study, which is the most fitting research method for observing(More)
Engineering of embedded systems is considered highly complex, due to the need for integrating multi-site, multi-lifecycle, multi-disciplinary, and multi-organization approaches. However, such challenges have not been comprehensively addressed in existing engineering processes. To this end, this study proposes a process framework to tackle these challenges,(More)
Design patterns have been introduced in the field of software engineering in the middle of 90s as common solutions to common design problems. Until now, the effect of design patterns on software quality attributes has been studied by many researchers. However, the results are not the expected ones, in the sense that several studies suggest that there are(More)
Source code bad smells are usually resolved through the application of well-defined solutions, i.e., refactorings. In the literature, software metrics are used as indicators of the existence and prioritization of resolving bad smells. In this paper, we focus on the long method smell (i.e. one of the most frequent and persistent bad smells) that can be(More)
Currently, open source software communities are thriving and the number of projects that are available through well known code repositories is rapidly increasing over the years. The amount of code that is freely available to developers facilitates high reuse opportunities. One of the major concerns of developers when reusing code is the quality of the code(More)
  • 1