Optimising embedded systems by reusing validated software components
Software and hardware solutions for embedded systems must meet increasingly complex specifications to meet central processor unit (CPU), energy consumption, memory and bandwidth needs. Component-based software engineering (CBSE) promotes the reuse of validated software 'components' or units, leading to significant reductions in time and costs. Model-driven engineering (MDE) exploits models for automated software system development. Integrating MDE into CBSE was the impetus behind the EU-funded project COMING. A conventional component model defines functionalities and quality attributes for a particular software unit. COMING adopted a generic framework for the cross-domain or domain-independent definition of component characteristics together with the specification of container and connectors enabling domain-specific evaluations. They developed common or compatible languages with model transformations to translate the component models to the MDE environment, thus supporting the design of embedded systems. Within the context of COMING, scientists developed a code generator capable of producing 100 % implementation code for the telecommunications domain. Back-propagation techniques were used to automatically update analysis feedbacks in the model from changing deployment scenarios that can monitor and assess effects on system properties. This automation saved valuable time and money and reduced possibility of errors arising from manual data entry. COMING has demonstrated that integration of MDE into CBSE reduces the complexity of software development while aiding in the evolution of embedded systems. Substantial savings in time and money along with efficient and effective use of resources should prove attractive to numerous sectors, including transportation, energy and telecommunications.