The ideas employed during the design process in embedded systems can be subdivided into 8 steps:
- Abstraction.
- Hardware and software architecture.
- Extra functional properties.
- System related family of designs.
- Modular design.
- Mapping.
- User interface design.
- Refinements.
Contents
Abstraction
Each problem component is first abstracted. For instance, in the design of a robotic system, the problem of abstraction can be in terms of control of arms and motors.
Hardware and Software Architecture
Architectures should be well comprehended before a design.
Extra Functional Properties
Extra functionalities needed in the system being developed should be taken into consideration during the design process.
System Related Family of Designs
The families of related systems that have been developed earlier should be taken into consideration during the design process.
Modular Design
Ideas around modular design should be employed. System designing can be done in quick way by decomposition of software into modules that are to be executed. Modules should be such that they can be composed (coupled or integrated) later. Effective modular design should ensure effective function independence, cohesion and coupling.
Modules should be clearly understood and should maintain continuity. Additionally, appropriate protection strategies are required for each module. A module is not allowed to change or modify another moduleโs functionality, for instance protection from a device driver modifying the configuration of another device.
Mapping
Mapping into various representations is done from software requirements. For instance, data flow in the same path during the program flow can be mapped together as a single entity. Transform and transaction mapping design processes are used in designing. For instance, an image is input data to a system; it can have a different number of pixels and colours. The system does not process each pixel and colour individually. Transform mapping of image is accomplished by an appropriate compression and storage algorithms. Transaction mapping is performed to define the sequence of images.
User Interface Design
User interfaces are typically designed as per user requirement, analysis of the environment and system functions. For instance, in an automatic chocolate vending machine system, the user interface is a liquid crystal display (LCD) multiline graphics display. It can display a welcome message as well as specify the coins needed to be inserted into the machine for each type of chocolate. The same machine can be designed with touchscreen user interface (graphic user interface [GUI]) or it may be designed with voice user interfaces (VUIs). Any of these interface designs has to be validated by the client before the design can proceed to the implementation stage.
Related: Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux
Refinements
Each component and module design requirements should be refined iteratively until it becomes the most suitable for implementation by the software team.
You may also read:
Leave a Reply