Research Manifesto

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 refocussed on configuration and interoperability. The resulting systems are composed from 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.

This page was last modified on 18 Oct 2013.