2. Introduction
SCSJ 4423 – Real-time Software Engineering
ü Challenges in ERT systems
ü Software development lifecycle
ü Software engineering essential for ERT
ü Conclusion
3. Introduction
SCSJ 4423 – Real-time Software Engineering
ü Survey (2005) on embedded systems design completions –
in all applications, > 51% are behind schedule!
5. Product challenges
SCSJ 4423 – Real-time Software Engineering
Product
Memory
Processing
power
I/O
Resource
constraint
ü Many ERTS have complex life-cycle & require multi-disciplinary skills
6. Software engineer challenges
SCSJ 4423 – Real-time Software Engineering
Software
Engineer
Complex team
members
Large team
members
ü team of s/w engineers is required
to complete the work in time
ü not many s/w engineers have the
multi-disciplinary skill required in ERTS
10. Software Development for ERT
SCSJ 4423 – Real-time Software Engineering
Requirements Architecture
Design
Implementation Verification
Validation
ü Clear software development
Framework will ensure the
Successful of ERT system
11. Software Development for ERT…example for requirements specification
SCSJ 4423 – Real-time Software Engineering
Autonomous Mobile Robot Requirement
The AMR consists of a body and a pair of
wheels. Each drive wheel is move by a direct-
current (DC) motor. The speeds of the motors
are sensed using shaft encoders and fed back
to the embedded controller for computation of
control signal to the DC motor every 100
milliseconds using the proportional-integral
(PI) control algorithm. The embedded
controller also monitors the robot
environment using four infrared (IR) proximity
sensors and communicates with human using
Liquid Crystal Display (LCD) and switches.
Issues that must be addressed in the
requirement specification phase for ERT
system are :
1. functional modeling,
2. behavior modeling,
3. timing,
4. man-machine interface and
5. hardware-software interface.
Requirements
12. Software Development for ERT
SCSJ 4423 – Real-time Software Engineering
Architecture
Design
Modeling
Object
Oriented
Technology
Scheduling
13. Software Development for ERT
SCSJ 4423 – Real-time Software Engineering
Implementation
ü ERT can be implemented on a single or multi processor and multi
tasks are designed to run on one single processor.
ü To implement multitasking or concurrency in ERTS, 2 software
engineering principles need to be considered (Burn and Welling,
1996) are:
1. real-time design methodology, which leads naturally into
multitasking or concurrency implementation.
2. how to undertake or support multitasking and concurrency
in the implementation stage. There are 2 ways to support
the factor either
i. using concurrent real-time language (e.g. ADA) or
ii. use a sequential language together with a RTOS.
14. Software Development for ERT
SCSJ 4423 – Real-time Software Engineering
Verification
Validation
Programmer simulator
ü Main advantages of the proposed simulation strategy are:
1. Testing can be done concurrently with the dev. of
robot H/W.
2. Communication through the H/W interface provides
isolation between dev. of simulation.
3. Code for H/W interface is similar and provide
realistic timing to the actual robot H/W interface.
15. Interest of software engineer in ERT system
SCSJ 4423 – Real-time Software Engineering
Well-trained
programmer
Rich knowledge
In programming
Related language
Well-trained
In software development
process
Adaptable
16. Task of software engineer in ERT system development
SCSJ 4423 – Real-time Software Engineering
ü To ensure the success of SE in addressing ERT systems problem,
Stankovic, 1996, suggested SE will need to undergo a radical shift :
1. Time, dependability, and other QoS constraints must become
first-class concerns, coherently integrated with functionality at all
levels from requirements specification through architecture,
design, implementation, and execution.
2. Evolvability must be ensured by separating platform-dependent
concerns from application concerns .
3. Software must be structured into compose-able modules in which
interfaces capture not only functionality.
4. Timing constraints, in particular on individual components, must
be dynamically derived and imposed on the basis of end-to-end
requirements.
17. SCSJ 4423 – Real-time Software Engineering
Thank You