RELEASeD Research Topics

Software Evolution Technology

In this theme we investigate advanced mechanisms, languages, formalisms, methodologies and tools to support software engineers during maintenance and evolution of a software system. This includes a variety of techniques to:

  • detect, discover and verify structural and behavioral regularities in software systems;
  • co-design and co-evolve a software system and its structural and behavioral regularities;
  • early detect inconsistencies and irregularities in the software upon evolution of that software;
  • deal with variability in software development;
  • support software restructuring, re-engineering and reverse engineering in general.

Software Development Technology

In this theme we investigate and advance the state-of-the art in software development technology. We address the problem mainly from a language engineering angle, as a means to study:

  • the automated transformation and translation of programs;
  • the conception of novel language for programming context-oriented software (also see theme 4);
  • research on advanced program query languages;
  • advanced language features for aspect-oriented programming (also see theme 3);
  • novel programming paradigms and language concepts;
  • new program development approaches;
  • metaprogramming and reflection;
  • generative programming in general.

Context-Oriented Software Development

With its research on languages like the Ambience programming language, the AmOS object system, the Subjective-C language extension of Objective-C, and more, the RELEASeD research group contributes to the emerging research area of context-oriented programming, by studying:

  • the conception of context-oriented languages that support dynamic adaptation to changing execution contexts;
  • the development of ambient and context-oriented software systems (methodology and tools);
  • application domains and scenarios that could benefit from such context-oriented technology.

Aspect-Oriented Technology

As an emerging software development paradigm, we have also shown interest in technology to support the evolution and development of aspect-oriented software. More specifically, we have studied, amongst other things:

  • advanced language engineering for aspect-oriented programming;
  • the use of logic query languages as advanced pointcut languages;
  • evolution and maintenance issues with aspect-oriented software;
  • aspect mining tools and techniques;
  • migration of traditional software towards aspects;
  • alternative techniques to deal with crosscutting concerns in software.