November 13 th
• Software Engineering Subgroup
– novel approaches to software development; software engineering techniques and tools; novel applications
• Centre for Novel Computing
– application-oriented techniques and tools that facilitate development of large-scale highperformance computational models for all manner of disciplines
Concerned with the design, modelling, simulation and construction of mission-critical software systems that challenge the states-of-the-art in both software engineering and performance engineering. Such systems are fundamentally composed of physically distributed component sub-systems, and are characterised by large data spaces and high compute needs, with associated complex interactions between the components.
• Lecturing Staff
– John Gurd
– John Keane
– Kung-Kiu Lau
– Liping Zhao
• Turing Fellow
– Jack Dongarra
• Marie Curie Fellow
– Grzegorz Kozikowski plus 15 PhD students
• Research Staff
– Ann Gledson
– Paul Slavin
– Petr Stepan
– Vendel Szeremi
– David Tian
– Cuong Tran
– Usman Wajid
• Honorary Research Fellow
– Rupert Ford
• Component Based Software Development
• Model Driven Development
• Use Case and Scenario Authoring
Kung-Kiu Lau email@example.com
Construct systems from components (pre-built software units)
• Increased software reuse
• Reduced time-to-market
• Reduced development cost
CESAR (March 2009 – December 2012)
• Cost Efficient Methods and Processes for Safety Relevant
Funded by EU (under ARTEMIS Joint Undertaking)
• 41 industrial partners, 8 research institutes, 8 academic partners
We apply X-MAN to avionics domain
• In collaboration with our project partner Airbus UK
Fuel Management System
Localiser Performance with Vertical Guidance
Fully Automated Digital Electronic Controller
Construct applications from services
Construct applications from a service cloud
Kung-Kiu Lau (Manchester)
Winfried Lamersdorf (Hamburg)
Ernesto Pimentel (Malaga)
Massimo Villari (Messina)
Wolf Zimmermann (Halle)
Kung-Kiu Lau (Manchester)
• X-MAN component model (and tool)
• Compositional V&V
• scale and complexity
• Domain-specific component models
• Avionics, automotives …
• Incremental construction of component-based systems
• mapping requirements directly to systems
• use-case-by-use-case development
• Component-based Product Line Engineering
• variability management
• reference architecture
• Service composition
• Service-oriented computing using CBD
• CBD using cloud computing
• Cloud computing using CBD
• Project 1:
An Ontological Framework for MDD
– The idea of OMG’s MDA is to separate business logic from implementation technology (so the two can co-evolve independently). But, while there has been a lot of work on automating the latter stages of software development, creating business models has been left largely as a manual process, which can be time-consuming and error-prone.
– This project aims to develop an ontological framework that supports different business ontologies. The framework will represent business concepts and models in a way similar to biological classification. Based on such a framework, the project will develop an automated model generation tool.
• Project 2:
A Natural Language Approach to MDD
Developing initial software models is challenging because it requires the modeller to understand
the the modelling knowledge.
– This project aims to develop a natural language (NL) approach to modelling. It will use modern NLP techniques to process the NL requirements and apply its built-in modelling knowledge to construct models. It should also be able to validate itself through paraphrasing and interpreting the created model, thereby reversing it back to the original NL requirements.
• Project 3:
A Natural Language (NL) Editor
– No matter how advanced the technology is, software development always starts from a NL description of ideas or requirements. Use cases and scenarios are widely used to help the user specify their requirements, but writing use cases and scenarios is a skilled job, requiring experienced software analysts.
– This project will develop a NL editor to assist use case and scenario authoring. The editor will not only be able to detect syntactic errors, but also semantic errors. The editor will additionally be able to transform each specified use case into an initial analysis model.
• Data mining and decision support
• Projects in High Performance (parallel)
2. Parallel & Distributed Systems
3. Decision Support Systems
HAPPY TO DISCUSS
• The Centre for Novel Computing (CNC) has a long history of research into parallel computing with a view to obtaining high performance on a wide range of end-user applications.
• Pertinent application domains have included computational chemistry, various branches of engineering, and Earth System Modelling (ESM).
• Typically, we have worked with the supporting computational infrastructure rather than in the core computational science or engineering (CS&E).
• Current work falls into two broad areas:
– High performance (parallel) computing
• Improving the scalability of applications on petascale and future exa-scale architectures.
– Improved HPC abstraction.
• Accelerator technology is an emerging architectural trend, leading to heterogeneous many-core processors.
– CUDA, OpenCL, OpenACC etc.
– Hybrid approaches for large-scale computing.
• Aim to explore the impact and use of accelerators in key routines of major CS&E applications.
• Possible contributions to algorithms, language support, run-time support systems.
• Investigate software engineering strategies for the future development of key CS&E applications.
• Contributions in methods and techniques for ‘evolving systems’
– Evolving in the sense of needing to adapt software configurations, possibly at run-time, for new models, for new machines, for different scientific or engineering scenarios, etc.
• Motivating example from the Met Office’s parallel, tape-based, archival storage system.
– but problem is more general …
• Investigate trade-offs between providing high performance archiving and retrieval for further
(scientific) processing, throughput and energy consumption
– as user behaviour varies over time.
• Possible contributions in algorithm design (selflearning algorithms may be appropriate), system modelling and run-time strategy selection.
• High performance demands parallel execution
• But parallel programming is ‘down and dirty’, requiring low-level control of all parallel activity and intense attention to the details of parallel execution – it is therefore difficult and costly
• One historical theme in computer science is that of constantly improving the abstractions used in programming so as to reduce development costs
• Should this not be directed at parallel programs?
• Previous SSG PhD students have made some progress in this area by applying the principles of aspect oriented programming (AOP) to separate the ‘crosscutting’ concerns of functionality and performance for distinct encapsulation
• Future PhD students are invited to take the above work forward, or find alternative ways of introducing appropriate high level abstractions into parallel programs
• Kung-Kiu Lau – Kilburn 2.68
• Liping Zhao – Kilburn 2.64
• John Keane – Kilburn 2.52
• John Gurd – Kilburn 2.54