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

Michael_Barr

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

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 Amazon.com 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 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 hierarchical state machines, active objects, 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™ State Machine Frameworks

QP training fact sheet (0.4MB) This 2- to 3-day training uses hands-on exercises combined with instruction to illustrate the concepts underlying the QP™ state machine frameworks and how they are applied in embedded application development requiring hard real-time performance. Upon completion, 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.

Every attendee gets:
  A copy of the class textbook Practical UML Statecharts in C/C++
Practical UML Statecharts in C/C++, 2nd Ed.
 
  ARM Cortex-M3 development kit LM3S811
LM3S811 Kit
  CD with QP™ software, tools, and handouts
Training CD
 

QP Training
Fact Sheet (PDF):
QP training fact sheet (0.4MB)
Day 1
Session 1 — Event-driven programming:
This session is designed to help engineers through the paradigm shift from the traditional sequential programming to the modern event-driven programming and framework-based software development. The session covers 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 2 — 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 3 — 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 4 — QP application example:
This session uses the fun "Fly 'n' Shoot" game to explain all the steps necessary to design and code a real-time QP application.
Day 3
Session 5 — 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.
Session 6 — 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.

Prerequisites

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 XP or Vista with a free USB port and 1GB of free disk space.

Instructor

Instructor Dr. Miro Samek is the creator of the QP™ frameworks and the author of the book Practical UML Statecharts in C/C++, 2nd Edition: Event-Driven Programming for Embedded Systems. He has published over 20 technical articles including a column for C/C++ Users Journal, is a regular speaker at the Embedded Systems Conferences since 2003, and serves on the editorial review board of the Embedded Systems Design magazine. His extensive industry experience ranges from safety-critical software development at GE Medical Systems through hard real-time embedded system design at two Silicon Valley companies. Dr. Samek earned his Ph.D. in nuclear physics at GSI (Darmstadt, Germany).

Price, Availability, and Contact Information

The price of the 2-day QP™ training is $ 1,995.- per attendee and the 3-day training $ 2,995.- per attendee. Volume discounts for larger groups of 8+ attendees are available. The price includes all training materials for each attendee (course textbook, LM3S811 development kit, and the CD-ROM) as well as the instructor's traveling expenses. The training is delivered on-site at your location throughout the U.S. for minimum of three attendees. Please contact Quantum Leaps to reserve the dates or to request more information about the QP™ Training.

Embedded Systems Conferences

In addition to our training offerings, since 2003 Quantum Leaps' Miro Samek regularly presents at the Embedded Systems Conference Silicon Valley and Embedded Systems Conference Boston, as well as other conferences and events. Please check the announcements on the home-page for the upcoming events.

ESC SV
ESC Boston

Last updated: November 23, 2009