Embedded system design process

With a formal design process it becomes easier to focus on performance and other key metrics of the system at the time of the design. Also everyone in the team knows what needs to be done

2 design approaches

  • Top down
    • every stage output is inut to next stage
    • previous stage output rarely changes otherwise the entire system cost, delivery timeline get impacted
  • Bottom up
    • every stage output is input to next stage
    • iterative process where in as there are new findings output of each stage is analyzed, designed and verified

Design process involves the following steps

  • Requirements (NEED)
    • functional
      • name
      • purpose
      • input
      • output
      • functions
    • non functional requirements
      • performance
      • cost
        • manufacturing cost
        • non recurring engineering cost
      • physical size
      • weight
  • Specifications (WHAT)
    • detailed unambiguous customer requirements
    • contract between customer and architect
    • if specifications are wrong then can lead to wrong functionality, wrong architecture or design
  • Architecture (HOW)
    • describes the system implements the functions detailed in specifications covering both functional and non functional requirements
    • will be used to design the components
    • represented first as a high level block diagram showing major operations and data flows
    • then split into 2 block diagrams one each for
      • software – main components of the software like database, user interface
      • hardware – covers cpu, memory, peripheral devices
  • Component Design
    • based on the architecture the hardware and software component design is done
    • some of components may be ready made
      • hardware – cpu, memory
      • software – database server and so on
  • System Integration
    • once the component design and development is done then all components are put together for integration and testing
    • testing should be done first at component level and then after integration
    • as bugs are found they are fixed to have a stable system

Common metrics when designing embedded system

  1. Unit cost
  2. Non recurring engineering (NRE) cost
  3. Power
  4. Size
  5. Weight
  6. Performance
  7. Flexibility – ability to change functionality without recurring heavy NRE
  8. Time to prototype
  9. Time to market
  10. Maintainability
  11. Correctness, safety

UML – tool for designing and architecture

  • UML – Unified Modeling Language
  • Used to model system behavior and relationships
    • static behavior – system interaction with user
    • dynamic behavior – system behavior when tasks execute
  • Types of UML diagrams
    • Class – relationships between classes
    • Behaviorial state – examines the behavior of a class
    • Use case – captures business requirements for the system abd interaction with the envionrment/actors
    • Sequence – models the behavior of objects within a user case
    • Deployment – how the system will be deployed

Examples

Use case diagram

Activity Diagram

Behaviorial state diagram

Sequence Diagram