JMI Software Systems offers a standard training course for C EXECUTIVE and related products. In addition to a comprehensive 2 day presentation of the products, a system design session is offered. During this optional 1-to-3 day extension, fundamentals of data flow design, structured design, and related methods of software design are presented, followed by a design (or design review) of the customer's application as it would be implemented with C EXECUTIVE. Data flow diagrams, state tables, and pseudo-code are used to document the design.
Please refer to the description of our design method which has examples of data flow diagrams, pseudo-code, and sample code.
The application design course extension has been used by customers designing color printers, multi-function FAX/laser printers, FAA radar systems, laboratory instruments, communication systems, process control systems, routers, and a wide variety of other real-time embedded applications. Please refer to one customer's comments on this course.
The class can be taught either at JMI's offices or at the customer's site. There is no per-student fee; there is only a standard fee for the instructor and any travel expenses.
Note: depending on class experience and customer needs, certain sections can be deleted and other sections expanded.
Days 1 and 2:
C EXECUTIVE Overview
Requirements of real-time embedded applications
C EXECUTIVE design goal - data flow design implementation
C EXECUTIVE implementation goal - performance and portability
UNIX and C influence on design and features
C EXECUTIVE software philosophy
Subset of UNIX system calls
Standard I/O and dynamic I/O redirection
System calls for real-time task coordination
Complete and natural C environment
Internal Design
Concept of task and process
Simple C task model
Shared text facility
Scheduler algorithm(s)
General interrupt handling
Physical I/O and device interrupts
Logical I/O and device configuration
Data queues, events, semaphores, signals
Program level I/O
Compatibility with standard C environments
File system
Device driver tutorial
Details of System Calls
Each system call is reviewed in detail, using examples
User Configuration
System configuration tables
Adding drivers for serial and block devices
Clock handler
System options
Installation and User Procedures
Day 3 - Morning
Programming Guidelines
C scope rules and information hiding
Assembly language interfacing
Style rules
System Design
Data flow design fundamentals
Data dictionaries
Layered data flow diagrams
When and how to use state tables
Pseudo code as a design and documentation tool
Hierarchy charts as a documentation aid
Mapping data flow designs into C EXECUTIVE
System Testing
Desk checking design and code
Simple case walkthrough
Black box testing
Binary searching
Modular testing and isolation
Built-in diagnostics and trace
Modular testing on host machine
Managing Projects
Early prototyping strategies
"Scaffold" modules
Design standards
Documentation standards
Coding style
Common headers
Modularity
Day 3 - Afternoon
High Level Data Flow Design of Customer Project
Day 4
Detailed Design of Customer Project
Major Module Pseudo Code
C EXECUTIVE system configuration
Go to JMI home page