Developing Real-Time Systems using Structured Techniques
Course description
This course provides a sound, rigorous and
practical grounding in the principles and practices of structured design techniques.
It is based primarily on the
Yourdon/Ward-Mellor approach, concentrating mainly on the area of real-time
embedded systems. Examples, exercises and workshops, supported by the use of
a CASE tool, are based on real-time examples.
All lecturers are experienced
in the design and development of real-time embedded systems for a wide range
of industries.
Course objectives
- To provide an understanding of the software design principles
of structured methods.
- To show how to develop real-time software in a rigorous
and systematic manner.
- To enable attendees to develop their own practical design skills.
Delegates will learn
- The fundamental concepts and terminology of Yourdon/Ward-Mellor
structured techniques.
- The diagrammatic and modelling underpinnings of structured methods.
- How to apply the design principles in real-time applications.
- The basics of an integrated, traceable and consistent approach in the
development of software for real-time systems.
- Where and how CASE tools can be used in the development process.
Prerequisites
- Some experience of programming.
- Some understanding of real-time software development processes.
Who should attend:
This course is aimed at those involved in the design,
development and maintenance of real-time embedded systems. Two particular groups
will find it of special
interest:
- Those new to real-time software systems.
- Experienced designers who lack
formal training in real-time design techniques.
Duration
Five days.
Course material
- Delegate handbook.
- Full set of notes based on the textbook ‘Real-Time Software Systems’,
by J.E.Cooling.
- All worked examples and solutions.
Course workshop
Approximately 50% of the course is concerned with the practical
application of design principles. This work is supported by the PC-based CASE
tool which
is included with the course textbook. Delegates, working in small groups, gain
hands-on experience in applying the concepts to practical problems. All examples
are based on real-time embedded system requirements.
Course content
Designing and building programs
- An introduction to structured programs and the structure chart.
- Applying top-down and stepwise refinement principles.
- Diagramming techniques in program design.
Designing and building software machines
- An introduction of software machines.
- Modularization principles and practices.
- Organizing and structuring software
Introduction to data flow diagrams
(DFDs)
- Limitations of the structure chart.
- Data flow diagrams – syntax and semantics.
- Systematic, top-down DFD methods.
- Describing data: Pspecs and the data dictionary.
Design using DFD techniques
- Basic objectives and techniques.
- Applying the design methods – an initial design.
- Design maintenance and traceability issues.
Defining system dynamic behaviour.
- Dynamic behaviour, system dynamics
and the state transition diagram (STD).
- Alternatives to the STD – tabular
notation.
- Timing and sequencing issues.
The real-time data flow diagram.
- Introduction to the control flow diagram (CFD).
- The real-time DFD – a DFD/CFD pairing.
Implementing controls.
- Implementing a control transformation (CT).
- Controlling data transformations (DTs).
- CTs and levellled diagrams.
- Connecting to the real-world.
Concurrent systems.
- Concurrency in computer systems.
- Safe sharing of system
resources.
- Task synchronization and communication.
- Task scheduling principles and processor loading.
Design example.
- Initial design, timing and tasking issues.
- Developing the tasking model.
- Sequential modelling of periodic tasks.
- Detailed DFD development of one task.
- Design at the structure chart level.
- Program development.
Return to Courses
|