These algorithms can also cope with imprecise inputs, given as approximating boxes, as in computer-aided design. The research objective is to make it easier for software engineers to achieve adequate performance. Computer systems research is combined with results from a broad spectrum of research including programming languages, static analysis, dynamic and randomised algorithms and mathematical optimisation. Distributed software engineering Software Architecture, Design and Analysis Group Software architecture is concerned with the high-level organisation of complex software systems. Systems are viewed in terms of the components used to construct them and the connectors used to combine these components.
Architecture is critical in developing systems that are scalable and maintainable.
Currently, research in the Group is addressing systems with dynamically changing and self-organising software architectures. These are typically internet-based systems that include elements of mobile computing. The nature of components, middleware and analysis techniques are being investigated in this challenging area. Since the 1970s the Group has had an international reputation in distributed systems with a strong emphasis on the development of tools and methodologies for the design, construction and management of distributed systems. Integration of mobile computing systems into complex enterprise information infrastructures is another research theme focusing on tools for configuring and managing mobile adaptive, context-aware systems.