Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

SE-501 : Fundamentals of Software Development for Real-Time

Embedded Systems
Course Description: Course Outline:
Are you new to developing software or perhaps new to developing What is a real-time system?
real-time embedded software? − Characteristics of real-time systems
− Problems of real-time embedded development
You require many skills to successfully develop real-time embedded Writing dependable software
software in a commercial environment. Being able to program is but − Why embedded software must be robust
one step. The whole process involves design, documentation, − How errors are introduced
reviews, quality control, configuration management etc. Within these A process for software development
disciplines what are the most appropriate tools when the software − Different software lifecycles
being written is embedded? Which programming languages are − The importance of requirements capture
suitable? Which design techniques lend themselves to difficult − Fitting a process into your organisation
problems such as concurrency and distributed systems? How can we Design basics
design for concurrency and distribution? Can real-time operating − Design fundamentals
systems help and what are they? − Structured vs. OO techniques
− The importance of design reviews
All these questions and more are answered by this course. − Design patterns – what and why?
Operating Systems for Real-Time
The course has been written for Feabhas by the renowned real-time Applications
author Dr J. E. Cooling and is based upon his text book “Software − Basic features of real-time operating systems.
Engineering for Real-Time Systems”, 2003, Addison Wesley. − Scheduling
Overview: − Control of shared resources
A 5 day course introducing, at a basic level, all fundamental skills − Task communication and synchronisation
required to develop real-time embedded software in a commercial features.
environment. − Memory management
− An introduction to Posix.
Course Objectives:
Design Notations
• To provide basic level information on all topics of software
− Structured notation
development e.g. programming, design, testing, documentation
− UML - the standard OO notation
etc. − Extensions to notations for real-time
• To teach all these aspects in the context of real-time embedded − Fitting diagrams into your design process
software development. Programming Languages
• To give you the grounding required to start working in the − What languages are suitable for embedded
development of real-time embedded software. Please note that development?
delegates will need to attend further courses to become − A comparison of their strengths and weaknesses
proficient in a particular programming language or design − Code development and packaging
technique. − Moving from design into code
Delegates will learn: − The importance of coding standards
• The characteristics of real-time systems Testing
• Steps in developing software − Unit , Module, Systems and Acceptance testing
• Programming issues – which languages? − Static and Dynamic analysis of code
− Code walkthroughs
• Why design and diagramming is so important
− White box and black box testing
• Design basics - object oriented vs structured techniques − Code and design metrics
• Development tools Development Tools
• Real-Time Operating Systems and what they do for us − Compilers & Debuggers
• Documentation, coding and testing − Debugging on the host
• Safety and mission critical systems − Debugging on the target
• Performance engineering basics − Emulators & Probes
Pre-requisites: − Case tools
• A basic level of programming experience. (e.g. as a module on − Requirements tools
− Configuration management tools
your degree course)
Who Should Attend: Mission Critical and Safety Critical Systems
This course is particularly suited to the following candidates who − System specification aspects.
− Application software aspects
require a foundation in all aspects of embedded software
− Real-world interfacing
development: − Operating systems aspects
• electronic engineers who are now moving into the field of − Numerical issues
software development − Processor problems
• graduates (including computer science graduates) who through − Hardware-based fault-tolerance
their degree have not had experience of developing real-time Documentation
embedded systems − What documents come from the design process
• engineers transferring to real-time embedded software − User documentation
development from other disciplines − Source code aspects
Duration: − Quality control
Five days. − A process for managing change
− Configuration management
Feabhas Ltd Course Materials:
− Library management
• “Software Engineering for Real-Time Systems”, J.E. Cooling,
5, Lowesden Works Addison Wesley
Software Re-use
Lambourn Woodlands − Can it be achieved?
• Delegate Handbook − How can it be managed?
Hungerford, Berkshire Related courses: − Designing for re-use
RG17 7RY, UK • C-501 C for Real-Time Developers − Testing re-used code
• C++-501 C++ for Real-Time Developers Continuous improvement
Tel: +44 (0) 1488 73050 • OO-502 Real-Time Software Design with UML − Measuring the development process
Fax: +44 (0) 1488 73051 • RTSA-501 Developing Real-Time Systems using − Quality standards
Structured Techniques − ISO9001
Email: info@feabhas.com • RTOS-201 Fundamentals of Real-Time Operating Systems − Tick IT
− The Capability Maturity Model CMM
Web: www.feabhas.com
Last Update 14/05/04

You might also like