Jeff Karau

Without using QP, I don't believe we could have delivered on our given schedule dates with the same level of quality."

Jeff Karau, Sr. Software Engineer, General Dynamics C4 Systems

Henrik Bohre

...After trying out a couple of CASE tools we came to the conclusion that expensive round-trip-engineering UML tools were cumbersome and did not fit our way of working. However, the innovative QP way to map UML state machines to C/C++ code was exactly what we were looking for..."

Henrik Bohre, Embedded Systems Consultant, GotCom AB, Göteborg, Sweden


I'm speaking from first-hand experience when I say this is really good stuff. I just hope others will recognize that and we can get past the old main+ISR vs. RTOS dilemma for a large variety of applications."

Michael Barr, President Netrino and former editor-in-chief of the ESP magazine

Haitham Hindi

Practical Statecharts in C/C++ has been an indispensible reference for my embedded systems work. The clear and succinct conceptual and software framework, along with the immediately usable code enabled us to get a working prototype of our control system in a few weeks."

Dr. Haitham Hindi, Palo Alto Research Center (PARC)

Paul Montgomery

...QP has been adopted accross the company and is used in all our products on a variety of OS platforms..."

Dr. Paul Montgomery, Director of Engineering, Novariant, Fremont CA

Stratos Product Development

We're glad to keep giving Quantum Leaps our business. QP has been really valuable for us—we've had a great experience working with Quantum Leaps frameworks and tools. It's been a big help in terms of delivering high-quality software within our clients' budgets, so thank you!"

Jason Machacek, Software Engineer, Stratos Product Development LLC, Seattle WA

EIM Controls, Inc.

I used the traditional RTOS approach for about 10 years. With the real-time debug log of QSPY and the ability to see what is going on in the logic flow, the code is very easy to debug and modify. It makes the code very modular and deterministic... You end up talking about the codes logic flow, and not the semantics of the software. QP is a great product."

Paul Walker, Software Engineer, EIM Controls, Inc.

Apple Computer, Inc.

I recently rewrote a major piece of code to utilise the QP framework and it has worked wonders. My previous code used a more traditional state machine and had quickly evolved into spaghetti code. The hierarchical state machine approach made the new code smaller, more robust, and much easier to maintain and extend."

Bob Bradley, Apple Computer, Inc., from review

Honeywell International

Quantum Leaps software has revolutionized not just the way we write our software, but the way we approach our design. It is intuitive, easy to implement and comes in an incredibly small package. If you're in the 8-bit world, you need this software!"

Chad Koster, Software Engineer, Honeywell

Rich Wooley

Simply put, designing sofware using the QP framework lets you code the way you think..."

Rich Wooley, Sofware Engineer, Nipro Diabetes Systems, Florida

more user stories...

Quantum Leaps Training

At Quantum Leaps we strongly believe that event-driven programming with active objects and modern hierarchical state machines (UML statecharts) is the best possible way to go when it comes to developing real-time embedded software. When done properly, these techniques can reduce your development time considerably, and you end up with safer code traceable from design that is easier to test, maintain, extend, and reuse. Also, programming that way can be much more fun than the traditional approach to concurrent programming, because you don't deal with "spaghetti code".

Nonetheless, embracing these new paradigms can be a difficult process. On top of the event-driven paradigm, you must master the new concepts of active objects, hierarchical state machines, elements of object-oriented programming and some UML notation. When done improperly, a pseudo-"state-oriented-programming" approach can fail miserably, at considerable cost to your company.

Developing Applications with QP™ Frameworks and QM™ Modeling Tool

Training brochure

This 2- to 3-day training uses hands-on exercises combined with instruction to illustrate the concepts underlying the QP™ active object frameworks and how they are applied in embedded application development requiring hard real-time performance. Upon completion of the two-day training, participants have a working knowledge of the QP™ frameworks, good understanding of event-driven systems, skills in designing and implementing UML state machines in C or C++, and the ability to build their own QP™ applications. Additionally, upon completion of the three-day training, participants gain proficiency in using the QM™ modeling tool to build effective models and auto-generate code.

Every attendee gets:
  EK-LM3S811 ARM Cortex-M3 board
EK-LM3S811 Kit
  A searchable PDF of the class textbook Practical UML Statecharts in C/C++
Practical UML Statecharts in C/C++, 2nd Ed.
  CD with QP™ QM™ Qtools™, PSiCC2 book in PDF, and handouts
Training CD
Day 1
Session 1A — Active objects:
This session is designed to help engineers through the paradigm shift from the traditional sequential programming to the modern event-driven programming with active objects. The session covers encapsulation for concurrency, inversion of control, blocking versus non-blocking code, run-to-completion (RTC) execution, asynchronous event passing, event queues, and the role of state machines.
Session 1B — UML state machines:
This session explains state machine concepts, the UML notation and the semantics, including hierarchical state nesting, entry/exit actions, internal transitions, etc. The session culminates with the design of a hierarchical state machine followed by the implementation in C based on the QEP event processor.
Day 2
Session 2A — QP internals:
This session examines the inner workings of the QP framework, which due to the inversion of control can offer benefits that no traditional RTOS can. The session covers direct event passing, publish-subscribe, time events, zero-copy event management, and automatic garbage collection for events. Attendees also learn how to combine the QP framework with the cooperative "vanilla" kernel, traditional RTOS, and the preemptive, run-to-completion QK kernel.
Session 2B — QP application example:
This session uses the fun "Fly 'n' Shoot" game to explain all the steps necessary to design and hand-code a real-time QP application.
Session 2C — State design patterns:
This session presents four state machine design patterns. Every pattern is illustrated with executable code, which allows attendees to fully understand the pattern and gives them a good starting point for their own implementations.
Day 3 (optional)
Session 3A — Modeling with QM™:
This hands-on session introduces the QM™ graphical modeling tool. Attendees buld the complete model of the "Fly 'n' Shoot" game.
Session 3B — Auto-generating code with QM™:
In this session attendees learn how to auto-generate code from the model and how to incorporate QM™ in the full software development lifecycle to work with the third-party tools, such as compilers and debuggers to test and refine the QM model.
Session 3C — Testing and debugging QP applications:
This session discusses the Design by Contract philosophy used in QP and the powerful software tracing facility (Q-SPY) built into the framework that allows unprecedented visibility into a running application.


In order to get the best results participants should have a working knowledge of C, as well as basic knowledge of real-time embedded programming. Previous QP™ or UML experience is not required.

Each attendee needs to bring a laptop running Windows (Windows 7/8, Vista, or XP) with a free USB port.


Dan Smith Dan Smith is an embedded software consultant specializing in bringing the modern event-driven paradigm to embedded software teams, who want to adopt hierarchical finite state machines (UML statecharts), real-time frameworks, modeling, and automatic code generation. He has been one of the earliest adopters of the QP active object frameworks and over the years has accumulated many real-life QP projects under his belt. Firmware he developed lies at the heart of many successful products including consumer electronics, telecom/datacom, industrial controls, and medical devices. Dan enjoys teaching and is a frequent speaker at the Embedded Systems Conferences, the Embedded World Conference, and various other venues. He earned his BSEE at Princeton.

Price, Availability, and Contact Information

Training brochure The QP/QM training is delivered on-site at your location. The price of the 2-day QP™ training in the U.S. is $ 11,000.- and the 3-day training is $ 14,000.-. These prices include all training materials for up to 10 attendees (EK-LM3S811 development kit, course textbook in PDF, and the CD-ROM) as well as the instructor's time and travel expenses. Each additional attendee beyond the first 10 can be enrolled for $500. Training outside the U.S. can be arranged for additional fee depending on the destination to cover the extra time and travel expenses. Please contact Quantum Leaps to reserve the dates or to request more information about the QP™ Training.

Last updated: November 03, 2013