210 likes | 505 Views
Software Design Methodology for Embedded Systems. What are Embedded Systems?. Embedded systems are the electronic components of a physical system that monitor and control variables of the physical system.
E N D
Software Design Methodology for Embedded Systems
What are Embedded Systems? • Embedded systems are the electronic components of a physical system that monitor and control variables of the physical system. • Embedded systems are tightly integrated with the physical system and are hidden from view • They interact with the real world on a real-time basis and act under constraints of demanding reliability, deadlines and resources. • Examples: microwaves, airplane navigation systems, climate control systems, nuclear reactors.
What is Embedded Software? • The functionality of an embedded system can be realized using hardware or software. • ESW to be precise, is the implementation choice of a functionality. • Software is preferred because of flexibility of use and shorter development time compared to hardware lifecycles.
How is ESW different? • Traditional definition of software: • Sequence of instructions • Executed in finite steps • Takes finite time • Software engineering has been developed based on the above definition of software. • ESW does not satisfy the above definition.
Characteristics of ESW • Timeliness • Concurrency • Liveness • Dependency on hardware
Constraints of traditional Software Engineering practices • Lack of component technologies that can be properly translated into the ESW domain. • Lack of “active” objects in OOD. • Abstraction of software from the real world • Absence of the concept of time in software computational models
Crisis in ESW • Designers deal with lowest levels of abstraction. Coding is done mostly in assembly language. • Design re-use becomes impossible. • Verification and validation is postponed until deep into implementation path
Approaches to ESW Design • Move ESW up in the layers of abstraction • Link it to the hardware to ensure proper implementation • Take a holistic approach of the problem including tools, hardware and the supporting systems since ESW is inextricably linked to the physical system
Steps in Design • Specification • Expressed in mathematical models • Capture constraints to be satisfied • Design criteria to be optimized • UML can be used in a platform based layered design
Steps in Design (Contd) • Refinement and decomposition • Software can be decomposed • The decomposed pieces should satisfy the original properties • Require mathematical proofs for the above • Successive refinement, decomposition and composition
Steps in Design (Contd) • Analysis • Evaluation of intermediate results with respect to constraints • Should be rigorous since there is the danger of going deep down in implementation before discovery of errors • Appropriate physical models at this level of abstraction must be constructed to verify design
Steps in Design (Contd…) • Target Platform Definition • Right specification form and notations to describe the target platform • UML based description of platform can become target of refinement and analysis • Mapping • Associates portions of the specification with the implementation vehicles of the platform.
Steps in Design • Verification • If formal specification methods are used, verifying design correctness can be done easily.
Conclusion • Development of new software engineering paradigms necessary • ESW should be only the implementation aspect and not the design aspect • Only a holistic view of ESW as a part of ESD will yield productive results.