NRT - Proventek Solutions AB
Why Executable UML?
-
And why it's better than the typical UML
Whereas UML is just a standard notation, Executable UML is a full fledged programming language. With Executable UML you can create detailed specifications of application requirements that can be executed on a virtual machine. You can set breakpoints for states, actions, test asynchronous interactions and so forth just as any real developer can. It is supported by a number of tools and you can use it to generate highly efficient code for a wide variety of embedded and real-time distributed platforms.
-
Test before writing ANY code.
Interactively test and verify the models before writing ANY code.
- Higher level of abstraction (more productive, less complexity).
- Progress does not depend on hardware/system software teams.
- Fast feedback on ideas.
- Not locked inrto a potentially faulty design.Same models on all platforms:
- C / LegOS
- Windows XP/Vista/7/Server, C++ or any
- Unix/Linux, C++ or any
-
UML is a standard set of object-oriented notations.
Compared with Executable UML which use Standard UML Notation but also have the following functionality added.
Plus:
- Platform Independent Executable Definitions
- Complexity Management Technique
- Time and Synchronization Rules
- Engineering Process
-
Compelling reasons to develop using platform independent models.
#1 Work with a more powerful level of abstraction
#2 Adapt easily to hardware/platform changes
#3 Rapidly develop concepts (by separating implementation/hardware complexity)
#4 Test ideas with model execution
#5 Collect detailed performance metrics before code is produced
#6 Reduce the amount of required code by easy identification of cross-cutting commonality
#7 Maximize parallel development
-
Specification and implementation are always separate
What is Executable UML?
Executable UML is a graphical specification language. It combines a subset of the UML (Unified Modeling Language) graphical notation with executable semantics and timing rules. You can use this language to build a fully executable system specification consisting of class, state and procedure models that runs just like a program. Unlike traditional specifications, an executable specification can be run, tested, debugged and measured for performance. The tested specification (models) can then be translated into target code.Code for real-time systems
The target code may run on a single processor or a network of processors. Unlike traditional fuzzy specifications, executable models resolve detailed application timing and synchronization behavior, mutually exclusive modes and resource contention issues. The source models may be tagged1 with performance and deployment decisions which direct the translation to produce suitably fast, efficient code targeted to multiple tasks and processors. Many model compilers support open translation, which allows experienced programmers to tune and significantly adjust the translation process. This means that the development team is not at the mercy of a vendor’s proprietary compilation process. Open translation is necessary to ensure that the generated code runs effectively in customized hardware and software environments. Consequently, Executable
UML is suitable (and is used extensively) to specify complex real-time distributed and embedded systems.Specification and implementation are always separate
The process of translation leaves the source specification intact and unaltered after the target code is generated. This contrasts sharply with the process of elaboration where the source specification is “filled in” and otherwise distorted to yield an implementation. With translation, the source specification is always kept separate from and untouched by the implementation. Consequently, development and testing of the specification models may proceed unabated while the implementation technology (new languages, new protocols, hardware in development) evolves.