Welcome to the Software Quality Research group at ITU Copenhagen

We study software quality. Software quality is a multifaceted concept. In the SQUARE group, we study the quality of programs (code), quality of data, and quality of software systems in use. We focus on a variety of software quality characteristics, such as extensibility, reusability, safety, reliability, trustworthiness, security, privacy, and fairness.

We attack real-world problems with you!

We work with real software projects in the open-source ecosystem, industry, and academia. We provide developers with tools to ensure and assess the quality of software systems. Companies and public institutions can benefit from our empirical results and analysis methods to improve software quality. We gladly welcome Bachelor’s and Master’s students as well as companies and researchers from other institutions to join our projects on software quality.


Building

Studying

Software
We build tools for software development aimed directly at improving quality
We study software systems to identify problems

Practitioners
We build tools for developers, designers, and decision makers aimed indirectly at improving quality
We study developers, designers, and decision makers which aims to identify problems in the process of building software

We build tools.

To tackle real-world development problems, we build software tools that detect, prevent, and reduce software quality issues. We rely on object-oriented and functional programming, domain-specific modeling, automated reasoning, probabilistic inference, information flow analysis, static program analysis, and synthesis. Among others we have built or are building:

  • Domain-specific languages for representing, planning, and analyzing variability in highly configurable software systems as well as for specifying privacy policies
  • Software visualizations in virtual reality to ease comprehension of structure, behavior, and quality of existing legacy systems
  • Static bug finders and patch generators for Linux and the Robot Operating System (ROS)
  • Model-based tools for testing functional safety in robotics
  • Property-based testing tools for computer vision and machine learning (perception components in underwater robotics)
  • Property specification and testing for reinforcement learning, with applications to urban water management
  • Information-flow and risk analysis tools for privacy in (with applications to genomics data, biometrics, location data, Covid data, IoT, and social networks)

We develop theories and concepts.

We use constructive, mathematical, and empirical methods to build, analyze, verify, investigate, and reverse engineer software and its quality. The conceptual and theoretical results from SQUARE include:

  • Taxonomies of bugs (in configurable systems, robotics, distributed modular systems, reinforcement learning systems)
  • Insights into the effectiveness of continuous integration in the light of technical debt
  • Insights into developer practices such as pull request evaluation, migration to a new platform, design patterns, and other best practices (for instance variability-aware design patterns)
  • Modeling notations and generative procedures for temporal and spatial variability in evolving configurable systems
  • Proof systems for probabilistic programming
  • Theories underlying real-time modeling and synthesis