Crosscutting concerns are software system features whose implementation is spread across many modules as tangled and scattered code. Identifying such code helps developers to chan...
Gerardo Canfora, Luigi Cerulo, Massimiliano Di Pen...
In the traditional software engineering courses, the students develop small programs from scratch. This does not correspond to industry practice where programmers spend most of th...
Joseph Buchta, Maksym Petrenko, Denys Poshyvanyk, ...
Software design patterns are documented best practice solutions that can be applied to reoccurring problems. Although well documented, there are often opportunities to apply them ...
Programming languages provide various mechanisms to support information hiding. One problem with information hiding, however, is that providing a stable interface behind which to ...
Software development, testing, and maintenance tools must yield assurance information in a standardized form. Developers can use this information to argue that the software is ade...
— Software maintenance tools for program analysis and refactoring rely on a meta-model capturing the relevant properties of programs. However, what is considered relevant may cha...
Coupling in software has been linked with maintainability and existing metrics are used as predictors of external software quality attributes such as fault-proneness, impact analy...
The association between the description of a concern (e.g., a feature) and the code that implements it is valuable information that can degrade as the code of a system evolves. We...
In this demonstration we present an Eclipse plug-in, called COCONUT (COde COmprehension Nurturant Using Traceability), that shows the similarity level between the source code unde...
Andrea De Lucia, Massimiliano Di Penta, Rocco Oliv...