Quality assurance for software frameworks in evolution

Updated: about 1 month ago
Deadline: 22 Dec 2021

Quality assurance for software frameworks in evolution - a case for software resilience


A recent report on "Current and future challenges of software engineering for services and applications" stresses the importance as well as challenges of (1) software quality assurance, (2) lifecycle management, and (3) software design. This research position tackles these issues from a specific perspective.

Quality assurance in evolving software frameworks

A software framework is a design and implementation artefact that provides a software architecture, design and code (frozen spots) for a specific application domain, with foreseeable extensions for application-specific customisations (hot spots). But similar to 'regular' products and services, frameworks are susceptible to frequent change, due to:

  • changing or new requirements
  • extension of scope of the framework (narrowing or widening)
  • design overhaul
  • code revisions/refactorings

In this research, you will study agile development and evolution of software frameworks. Topics in the research may include:
  • process guidelines for evolving frameworks, in line with the agile manifesto
  • CD/CI and framework version control, targeting a suitable branching model and guidelines for framework engineering
  • quality measures and quality assurance throughout the framework lifecycle: (1) component specifications (hotspots and frozen spots), (2) automated verification and testing

Context: resilient embedded software in the presence of bit flips


The research will be guided and inspired by a concrete use case. Through the years, we have been developing components and algorithms for resilience of software for embedded systems. Embedded systems in real and possibly harsh environments are susceptible to external disturbances, which can lead to bit-flips. Such bit-flips lead to run-time errors in the embedded software, such as control flow errors (CFE) and data flow errors (DFE).
Software-implemented resilience techniques enable detecting these run-time errors and taking corrective actions. Tailored tools allow e.g. for code generation as a compiler plug-in, evaluation through fault injection, simulation, support for various hardware platforms.
These assets make an interesting body of knowledge that may be helpful for external parties, both industry and research.

A well-thought software framework that supports evolution should enable a rigorous and flexible engineering approach for integrating new techniques and algorithms, and for tailor solutions for software (1) with application-specific characteristics, and (2) that executes on specific platforms under particular environmental conditions.

View or Apply

Similar Positions