Requirements Engineering (RE) is concerned with the elicitation, analysis, description, and validation of system or software requirements. RE aims at understanding the stakeholders' desires and needs and reducing the risk of developing the wrong system, i.e., one that does not satisfy its stakeholders' (in particular, its end users') desires and needs. The specification of requirements is a critical and intrinsically difficult task. Therefore, Requirements Engineering is an important topic in the development and evolution of systems.
Requirements are a mental model of how a system should behave. However, requirements do not simply describe a desired state of reality. They also change or even construct reality. Therefore, work on methods and languages for requirements modeling lies at the very core of requirements engineering research. The existing methods for requirements specification are far from being completely satisfactory. Methods widely used in industry have serious weaknesses, both in modeling paradigms and in the preciseness of their definition. Formal specification techniques, on the other hand, are too complicated and too expensive for broad industrial application. This motivates our research in requirements modeling, which was the core topic of our research for many years.
When deployed systems evolve, feedback by end users, for example, app reviews, posts in social networks or direct in-app feedback, becomes a new source from which requirements can be elicited. This motivates our research on feedback in RE.
Another major RE challenge in systems evolution is keeping the requirements in sync with the source code. Keeping the requirements up-to-date saves valuable knowledge about the system and preserves requirements traceability which is vital for any safety-critical system. This motivates our research about supporting the evolution of requirements.
Other topics that we have been working on include non-functional requirements, shared understanding in RE and motivating stakeholders to contribute voluntarily to the elicitation and prioritization of requirements.
We are currently active in the following fields and projects:
Flexible Modeling - The goal of this project is to unite the flexibility of unconstrained sketching with the power of formal modeling.
Quality Requirements - We are investigating the nature and role of quality requirements in Requirements Engineering.
In the past, we have carried out the following research projects:
ADORA – In this project, we have developed a semiformal specification language and a prototype tool that overcome the weaknesses of existing approaches, in particular those of UML. This project was partially funded by SNSF under the project name LATO.
AquaBench – A benchmark for traceability.
Attempto – In this project, we developed a requirements specification language which is based on the idea of using controlled natural language for specification.
AVISSIMO – In this SNSF-funded project, we combined aspect-oriented visualization and animated simulation for the validation of partial, semi-formal requirements models.
CASA – In this project we have developed a framework for mobile applications which can adapt automatically to changes in their environment (availability of resources or location) at runtime. CASA employs a contract-based adaptation policy, thus allowing modification of the adaptation policy at runtime. This project was funded by SNSF in the framework of the NCCR MICS.
Flexible artifacts visualization – This project is about creating a new visualization technique to help software engineers to manage and edit all their artifacts at the levels of abstraction they need.
GARUSO – In this project, we developed a gamification-based concept and platform for finding and engaging stakeholders outside organisational reach.
GuideGen – In this SNSF-funded project, we explored how we can keep requirements and acceptance tests aligned by automatically generating guidance for how to change acceptance tests from an analysis of changed requirements.
Handshaking – In this project, we are exploring pragmatic requirements communication according to Win-Win principles.
Metamodeling – Here we explored new, better ways for defining the syntax and semantics of graphic specification languages.
MiRiA – This SNSF-funded project aimed to define objective measurement of a model's abstractness and systematic guidance to attain the right level of abstraction.
Requirements Update – In this project, we investigated how the evolution of requirements can be supported by a concept and tool that analyzes changes in tests and generates hints about what to change in the corresponding requirements. This project was funded by the SNSF ProDoc program.
SPREBA – In this SNSF-funded project, we worked on new concepts and mechanisms for efficiently dealing with commonality and variability in requirements modeling.
Scenarios – We investigated the role of scenarios in Requirements engineering and developed new techniques for representing scenarios. We also dealt with scenario integration.
SCENT – In the SCENT project, we developed a method for scenario-based testing of software. This project was partially funded by the Swiss Commission on Technology and Innovation and by ABB.
StakeCloud – This project aimed at supporting cloud service providers in understanding the needs of consumers by analyzing advanced search queries and helping providers find optimum solutions for satisfying consumers with a minimum set of implemented requirements. It was partially funded by SNSF.
SUPERSEDE – The EU Horizon 2020 project SUPERSEDE created a feedback-driven approach to the life cycle management of software services and applications, with the ultimate purpose of improving users’ quality of experience. The project had four academic and three industrial partners. We primarily contributed work on mining user feedback from Twitter messages.
UML - We have contributed to a better understanding of stereotypes and have investigated weaknesses of UML.