As experts in executable modeling and code generation, we can help your organization boost productivity by delivering key system components and development tools. Your organization can then keep its focus on the subject matter and applications central to its business concerns.

Delivered system components

We deliver and help integrate fully modeled services (domains) that can be configured to suit your application's unique needs. Here are some examples:

Data collection and playback

This is a common need in embedded systems, though each application has unique requirements. Captured data can vary from simple events to complex image sets. Excessive data can be archived. Some applications require the ability to play back some or all of the data for review.

Linear or periodic scheduling of activities

Many embedded systems require the ability to schedule a sequence of activities. The schedule may need to continually adapt to circumstances such as interrupts, delays and undetected (but expected) signals. Periodic schedules which continually cycle are useful in medical pacing applications. Fixed or variable linear schedules are useful for controlling chemical processes.

Embedded networks

Many of our clients use proprietary or semi-proprietary networks, especially in vehicles. We can ensure that the network presentation layer is not hopelessly intertwined with application or device specific details.

Signal I/O

This service insulates sensor and actuator signal processing details from meaningful control and status events and values of interest to the application. For example, a set of environmental sensors might be polled at a specified frequency with conditioned events like 'Overtemp' delivered asynchronously to the application. That way the application has no need to ever poll. Raw sensor values can be scaled and converted to application level units so that when an attribute such as Engine.Actual_temperature is accessed, it will be current and in Celsius units without requiring any special function calls or polling.

Command sequencing

This component manages the translation of a high level application command such as 'Restart compressor' into a series of device specific instructions. If one model of device is replaced by another that performs the same essential functions but uses a different command set, you can reconfigure the data in this service without requiring the application to issue a different command. This service also receives commands and translates them into relevant application events.

Alarms and fault management

In safety critical systems such as power plants, aircraft and space vehicles it is not enough just to log problems; human assisted or fully automated recovery is required. An operator may need to acknowledge, clear, ignore or respond to alarms. Pre-registered automated recovery steps might be defined for certain alarms or categories of alarm. This service manages prioritization, categorization, response and logging of faults and alarms.

And a lot more

These are just a few examples of the kinds of modeled domains that we have experience building and configuring for a wide variety of embedded applications. Need something different? We'll be happy to work with you to build the right solution.

All of these components are delivered as tested, executable models that can be targeted to a wide variety of platforms. Since the models are built by experts and carefully documented, you not only obtain a solution, you also get an educational example to serve as training and reference material for your model developers.

Model Development Tools

Your organization may have one or more model development tools. But do they provide everything you expect from a serious development environment? We can help you fill the gaps in areas like these:

Model Testing

How do your teams test models? How much work is it to specify a model test? How difficult is it to create and manage test suites over large model repositories? Do you have to create a whole set of models just to test another set of models? We can develop a more productive solution that scales up to large model sets.

Model Execution and Visualization

We can develop animation and visualization tools so that you can really see what your models are doing when they execute.

Code Generation

We have experience building code generators for challenging embedded platforms. If you need a specialized code generator, we can build one for you. Your teams can then focus on building your core application and services.

Reporting and statistics

Is it easy to gather data from your models? Can you find out how many functions access a particular attribute? Can you find out which state machines participate in a given event response? We can help you develop data gathering tools so that you have a more useful view of your model data.


Is your documentation limited to scattered text, or can you integrate useful technical drawings and nicely formatted text? Are you limited to formal model documentation or can you integrate preliminary technical notes and link in background reference material? We can help you get control of your analysis and model documentation system.