termpaper_srinivasan_subhashini

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.