In Software Engineering, component-based development (CBD) aims at reducing production cost and time-to-market by reusing pre-existing components from a repository. CBD represents a paradigm shift in software development: from building monolithic, single-platform, purpose-built-from-scratch systems to constructing assemblies of ready-made components that are platform-independent and supplied by third-parties.
With software becoming increasingly ubiquitous, and applications becoming increasingly complex, e.g. driverless cars and the Internet of Things, scale and complexity have become unavoidable challenges, particularly for mission and safety-critical applications. CBD is well-placed to tackle these challenges through the use of compositional techniques which construct and validate systems in a hierarchical manner.
Much research has to be done before CBD can achieve its goals, and the CBD Group at Manchester offers many PhD projects covering all aspects of CBD, ranging from novel component models to new component-based approaches to existing problems. To highlight just some examples, project topics include: (i) CBD for specific domains, e.g. avionics, automotives, IoT; (ii) component-based product line engineering; (iii) reverse engineering legacy code into component-based software.