Requirements engineering (RE) is concerned with identifying the purpose of a software intensive system, and the contexts in which it will be used. It acts as a bridge between the real world needs of users, customers, and other constituencies affected by a software system, and the capabilities and opportunities afforded by software-intensive technologies. We have a broad range of interests in this area, and focus on problem-oriented approaches to the representation and analysis of requirements, and formal analysis techniques for reasoning about partial, ambiguous, and inconsistent descriptions, including natural language requirements, formal specifications, and security policies.
We are also concerned with the design of software-intensive systems within the wider engineering process. We look across the phases of design, from problem analysis and modelling, through to design and development. Our work includes both analytic and empirical approaches, both formal and descriptive representation, and both theoretic and practice-centred perspectives. We consider a range of critical application areas and architectures, such as air traffic management and healthcare systems, and software product lines and service-oriented architectures.
A key concern of our research in this area is the interplay between requirements and design, and how we can create software architectures that are stable in the face of changing requirements, and/or systems that are adaptive in the face of such changes.
- PASS - Relating Problem and Solution Structures in Feature Based Software (EPSRC Project)
- MaTREx - Making Tacit Knowledge in Requirements Explicit (EPSRC project)
- Requirements Engineering A Roadmap (ICSE 2000)
- Weaving Requirements and Architectures (Computer 2001)
- Identifying Nocuous Ambiguities in Natural Language Requirements (RE 2006)
- Extending nocuous ambiguity analysis for anaphora in natural language requirements (RE 2010)
- Discovering Services during Service-based System Design using UML (TSE Journal)
- Specifying software features for composition: A tool-supported approach (Computer Networks 2013)
- Characterising Architecturally Significant Requirements (IEEE Software 2014)
- The role of distances in requirements communication: a case study (RE 2017)
- Automating trade-off analysis of security requirements (RE 2016)/