Role-based learning guide

Acquiring an in-depth knowledge of a comprehensive modeling tool such as DevOps Model RealTime is a process that might take a significant amount of time. Fortunately the typical user does not need to know every detail of all parts of the tool in order to use it productively. This document is a guide for new Model RealTime users to what they should prioritize to learn depending on their role.

Let's start with some general information that every Model RealTime user needs to know.

General

Model RealTime is an Eclipse-based application, and therefore a basic understanding of Eclipse is necessary. The links below provide general information about Eclipse; what it is and how to use it.

Video tutorial describing basic usage of the Eclipse workbench

Collection of links to various reading material about Eclipse

Typical types of Model RealTime users

This is not a complete listing of all possible user roles. Some users might belong to more than one of these groups, in particular at different points in time.

The rest of this article provides links to information that is relevant for the different types of users identified above.

Software Designer

A software designer that uses Model RealTime needs to have at least a basic knowledge of UML modeling. However, not all parts of UML are used when creating a real-time model. This document describes the subset of UML that is used when creating real-time models with Model RealTime.

Model RealTime Concepts

To get a deeper understanding of what the different UML constructs that are mentioned in the above document mean, you can read about them in the UML2 standard:

UML 2.3 standard specification Note: Model RealTime currently supports UML 2.2 plus some additions from UML 2.3, so this version of the standard is the most appropriate to read and use as a reference.

A software designer also needs to know the target language that is used in the real-time model, typically C++. The following are some suggested reading materials appropriate for C++ users:

A collection of tutorials teaching how to program using C++

Another set of similar tutorials

Portal with links to resources for learning both C and C++ programming

To get a hands-on experience with Model RealTime, you should run the cheat-sheet called "Creating, building, running and debugging a RealTime model".

Software designers that work in teams with others need to know how to compare and merge models:

Compare and Merge

System Analyst

A system analyst uses a subset of UML that is different from that of a software designer. However, most parts of the Model RealTime Concepts document are of interest also for a system analyst. It's mainly the parts of the document dealing with the action language (typically C++) that a system analyst can skip.

Other UML constructs used by system analysts mostly include sequence diagrams and activity diagrams, but not exclusively.

Sequence diagrams

Activity diagrams

Build Engineer

Build engineers in teams that use C++ as target language should start by reading the following document:

C++ Build Describes all the steps involved when building a real-time C++ application from a UML-RT model in Model RealTime.

To be able to automate builds, it is helpful to have knowledge about Ant, since build automation is achieved by utilizing Ant tasks provided by Eclipse and Model RealTime. The following is some information about Ant:

Introduction tutorial for basic Ant usage

Collection of frequently asked questions (and answers) about Ant

Customization Expert

Customization experts need to know about the different preferences available in Model RealTime, for example those that control diagram appearance:

Diagram filtering preferences

It is important to configure Model RealTime in a way that makes it perform well:

Performance Discusses several important aspects to take into account when deploying Model RealTime to obtain best possible performance.

Customization experts also develop pluglets and plugins using Java. There are many resources for learning general-purpose Java; the following are some examples:

Tutorials covering the fundamentals of the Java language

Tutorial for learning how to program in Java using Eclipse

Video tutorial about how to use the Eclipse Java debugger

To learn about Eclipse plugin development look at the following:

A good starting point for getting started with Eclipse plugin development

A pluglet is a simplified plugin which may be easier to get started with, but has some limitations compared to full-fledged Eclipse plugins. Read more about pluglets in the following tutorial:

Tutorial for creating a simple pluglet

Finally, the following is a link to documentation about some of the APIs you might encounter and need knowledge about when developing plugins and pluglets for Model RealTime:

UML2 API reference