1 2 3 In many real component-based systems and patterns of component interaction, there can be identified a stable part (like control component, server, instance handler) and a nu...
: Feature diagrams (FDs) are a family of popular modelling languages, mainly used for managing variability in software product lines. FDs were first introduced by Kang et al. as pa...
Patrick Heymans, Pierre-Yves Schobbens, Jean-Chris...
The trend toward domain-specific languages leads to an ever-growing plethora of highly specialized languages. Developers of such languages focus on their specific domains rather t...
Jakob Henriksson, Florian Heidenreich, Jendrik Joh...
Aspect mining tries to identify crosscutting concerns in the code of existing systems and thus supports their adaption to an aspect-oriented design. A semi-automatic static aspect...
The pressures which act on a software system over its life from inception to retirement are many and varied. It is an important goal in considering software evolvability to unders...
: From a maintenance perspective, only software that is well understood can evolve in a controlled and high-quality manner. Software evolution itself is a knowledge-driven process ...
ion techniques are indispensable for the specification and verification of functional behavior of programs. In object-oriented ation languages like JML, a powerful abstraction tec...
With Java 5 annotations, we note a marked increase in tools that can statically detect potential null dereferences. To be effective such tools require that developers annotate decl...
: Modularity is one of the most important principles in software engineering and a necessity for every practical software. Since the design space of software is generally quite lar...