Most efforts to improve software quality focus exclusively on process improvements, such as adoption of coding standards and better use of static analysis tools, code reviews, and testing. But poor software quality also results from bad decisions about the architecture of that software. Thus software architecture is an area for your team to understand better and architecture improvements can be among the easiest ways to increase software quality.
This course teaches software architecture with a focus specifically on real-time and embedded software.
- Embedded software developers
- Embedded system architects
- Technical managers
The following outline is provided as a summary of the major course topics and should not be taken as literally the section-by-subsection lecture breakdown.
- Architecture Defined
- What is Software Architecture?
- Three Competing Schools
- Attributes of Good Firmware Architecture
- The Real-Time Hierarchy
- Real-Time Operating Systems
- Preemptive Scheduling
- Avoiding Race Conditions
- Meeting Deadlines
- Semaphores, Mailboxes, and Message Queues
- Avoiding Starvation and Deadlock
- Multithreaded Programming Principles
- RTOS Alternatives
- Implications of Preemption
- Interrupt-Driven Systems
- Cyclic Executive
- Event-Driven Programming
- Reactive Programming
- Event Queues
- Active Objects
- State Machine Frameworks
Attendees should be generally familiar with the terminology of real-time embedded systems.
Find out More
All Barr Group Training Public and On-site courses may not be videotaped or photographed without consent from Barr Group's executive team.