Component-based Software Development.
In Software Engineering, component-based development (CBD) is an emerging topic that 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, 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 IDEs. To highlight just some examples, project topics include: (i) CBD for specific domains, e.g. avionics and automotives; (ii) component-based product line engineering; (iii) reverse engineering legacy code into component-based software.