XClose

UCL Computer Science

Home
Menu

Software Systems Engineering Group

The group investigates engineering principles, methods, notations, infrastructures and tools for distributed and mobile software systems, which are often large and complex.

A glowing piece of tech with many wires

The group focuses on: the real-world goals for, services provided by, and constraints on such systems; the precise specification of system structure and behaviour, and the implementation of these specifications; the activities required in order to develop an assurance that the specifications and real-world goals have been met; the evolution of such systems over time and across system families.

It is also concerned with the processes, methods and tools for the development of software-intensive systems in an economic and timely manner. 

The group contributes to: 

  • CREST, Centre for Research on Evolution, Search and Testing at UCL
  • UCL Research Computing, UCL's interdisciplinary network to facilitate distributed scientific computation,
  • CoMPLEX, UCL's Centre for Maths and Physics in the Life Sciences and EXperimental Biology, 
  • UCL Centre for Systems Engineering, an interdisciplinary centre with interests in the development of complex technologically from heterogeneous systems. 
  • UCL Centre for Digital Humanities brings together people from a wide range of disciplines to develop research and teaching in a vibrant multidisciplinary field.

Research manifesto

Software systems engineering is the branch of systems engineering concerned with the development of large and complex software intensive systems. The UCL Software Systems Engineering research group investigates engineering principles, methods, notations, infrastructures and tools for distributed and mobile software systems, which are often large and complex.

The group focuses on: the real-world goals for, services provided by, and constraints on such systems; the precise specification of system structure and behaviour, and the implementation of these specifications; the activities required in order to develop an assurance that the specifications and real-world goals have been met; the evolution of such systems over time and across system families. It is also concerned with the processes, methods and tools for the development of software intensive systems in an economic and timely manner.

The context of software system development is changing. Systems are rarely developed from scratch; most system development involves extension of pre-existing systems and integration with 'legacy' infrastructure. These systems are embedded in complex, highly dynamic, decentralised organisations; they are required to support business and industrial processes which are continually reorganised to meet changing consumer demands.

The services that such a system provides must, for the life of the system, satisfy the requirements of a diverse and shifting group of stakeholders. There is a shift towards client and user centred approaches to development and an accompanying shift from a concern with whether a system will work towards how well it will work.

Overall, fewer 'bespoke' software systems are being constructed. Instead, generic components are built to be sold into markets. Components are selected and purchased 'off the shelf' with development effort being refocused on configuration and interoperability. The resulting systems are composed of autonomous, locally managed, heterogeneous components, which are required to cooperate to provide complex services. They are, in general, distributed and have significant non-functional constraints on their operation.

This context raises a set of tightly intertwined research issues in the areas of requirements engineering, software processes, software architecture, software analysis, testing and software deployment which the group is concerned to address.

The orientation of the group is towards engineering solutions which are lightweight, and are carefully targeted towards "real" industrial problems. Often this entails thorough problem analysis and it is informed through industrial collaborations and consultancies. We are very interested in constructing solutions that exploit emerging standards and work hard to build on the work of others.

Our research approach is driven by case studies combined with rigorous analysis and validated in practice. We have a proven track record of supplying open-source infrastructures that are being increasingly widely adopted. Our work can therefore be regarded as applied. We are particularly aware of the need for software systems engineering techniques, methods and tools to scale and to be simple enough that they can be adopted in practice.


Collaboration and support

The group enjoys a wide range of industrial collaborations and close research linkages. We strive to develop long-term stable relationships based on an exchange of ideas and approaches and on a good understanding of the domains in which our industrial collaborators work.

Current direct contributors include: 

In addition to direct funding from the industry, we are grateful for current research support from: