Design methodologies for embedded systems
The embedded digital electronic systems are currently the majority of existing computer systems. Their diffusion, thanks to advances in hardware and software technologies, is increasing; their growing complexity could be a limitation for the management of human designers.
Consequently there is an increasing need of development of design methodologies for embedded systems emphasizing the use of high level abstraction models (model-based approaches or model-driven) as a solution to the complexity management.
In order to achieve usefulness and competitiveness models, tools and methodologies are the fundamental elements of any development flow for embedded systems, industrial or academic.
The main activities are:
Technology Scouting
Constant monitoring and hardware/software technology tests, industrial design methodologies and tools for business proposal of technology transfer, design of educational courses of topical interest and of research.
Model-Driven Engineering
Introduction and adaptation of the typical approaches of model-driven engineering processes in the development of embedded systems. The two most naturally research directions are: automatic code generation from models (eg, transformation from Platform-Independent to Platform-Specific Models thus obtaining the final code for implementation), transformation from development patterns to analysis models (eg, transformation from UML models for embedded systems to performance models, as Queueing Networks).
Design Space Exploration
Definition of models and methods (based on prototype software tools) to support the designer. In particular, from the models, the Design Space Exploration is taken into account; this is currently supported by the Platform-Based Design, but it needs further developments in relation to partitioning hardware/software model and the platform allocation.
Verification and Validation
The verification and validation aspects are particularly sensitive to the increasing systems complexity. Therefore it is necessary to provide the designers with some tools for supporting more advanced techniques, for both the functional field (eg, formal verification and model-checking) and the non-functional field (eg, validation of dependability). Obviously, these approaches require advanced tools and techniques, which are based on analytical simulation techniques.