Course Outline:
What is a real-time system?
- Characteristics of real-time systems
- Problems of real-time embedded development
Writing dependable software
- Why embedded software must be robust
- How errors are introduced
A process for software development
- Different software lifecycles
- The importance of requirements capture
- Fitting a process into your organisation
Design basics
- Design fundamentals
- Structured vs. OO techniques
- The importance of design reviews
- Design patterns – what and why?
Operating Systems for Real-Time
Applications
- Basic features of real-time operating systems.
- Scheduling
- Control of shared resources
- Task communication and synchronisation
features.
- Memory management
- An introduction to Posix.
Design Notations
- Structured notation
- UML - the standard OO notation
- Extensions to notations for real-time
- Fitting diagrams into your design process
Programming Languages
- What languages are suitable for embedded
development?
- A comparison of their strengths and weaknesses
- Code development and packaging
- Moving from design into code
- The importance of coding standards
Testing
- Unit , Module, Systems and Acceptance testing
- Static and Dynamic analysis of code
- Code walkthroughs
- White box and black box testing
- Code and design metrics
Development Tools
- Compilers & Debuggers
- Debugging on the host
- Debugging on the target
- Emulators & Probes
- Case tools
- Requirements tools
- Configuration management tools
Mission Critical and Safety Critical Systems
- System specification aspects.
- Application software aspects
- Real-world interfacing
- Operating systems aspects
- Numerical issues
- Processor problems
- Hardware-based fault-tolerance
Documentation
- What documents come from the design process
- User documentation
- Source code aspects
- Quality control
- A process for managing change
- Configuration management
- Library management
Software Re-use
- Can it be achieved?
- How can it be managed?
- Designing for re-use
- Testing re-used code
Continuous improvement
- Measuring the development process
- Quality standards
- ISO9001
- Tick IT
- The Capability Maturity Model CMM
|