Technical Publications

More Techpubs

Want to select multiple Techpubs? Switch to list view

Object Action Language Reference Manual

Posted in: Model Driven Development

The purpose of this manual is to serve as a reference and general user?s guide to aid in the correct specification of action semantics for UML models. Although originally designed for models used with the BridgePoint UML Suite, the language described can be used to define the action semantics for any UML model in any tool.

The Object Action Language is written to satisfy the following goals:

  • Readability - Modelers must be able to easily understand the OAL for development and reviews
  • Derivation - Event generation and data access information is captured for derivation of the Object Collaboration Diagrams and Package Dependency Diagrams for both asynchronous (event) and synchronous (data access) communication
  • Simulation - The UML models can be simulated through interpretation of the actions
  • Translation - Richness of expression is provided while maintaining a specification that can be automatically translated on a target architecture
Download

Rules-based Code Generation

Posted in: Model Driven Development

There are a number of tools available that aim to improve the software development process by having the developer model the software using the UML. The level of support provided to take the model and turn it into the target implementation varies considerably from no support all the way to full translation of the model and its content. This paper provides an overview of the latter and discusses the numerous benefits of a fully translatable model using a rules-based code generator.

Download

Model-Driven Development for Embedded Systems

Posted in: Model Driven Development

An overview of how to use UML for model-driven development with an example of how to build a real-time application using code generation for clean, readable, optimized and error free code.

Download

Demystifying UML

Posted in: Model Driven Development

What is UML-exactly?  How is it being used?  By whom?  Are there many ways to use it, or is there one true way?  Does it apply to embedded and real-time systems?  How?  Really?  What are the popular ways to use UML?  How effective has it been? Why are there so many tools?  Why do they seem to be so different-even though UML is a standard?  What should I look for in a tool?  Will using UML change my development process?  Make it faster?  Or not?  Build better quality systems?  Or is it all hype?

If these, and myriad more, questions bombard you when you think about UML, this article is for you. It answers these questions and more by laying out the provenance of the language; its various usage styles, subsets and extensions, including real-time profiles; where it is being used and with what degree of success. A brief self-assessment is included to help you determine whether your team is ready for UML, and if so, how.

Download

A Summary of Executable and Translatable UML

Posted in: Model Driven Development

Executable and Translatable UML (xTUML) accelerates the development of real-time, embedded and technical software systems. xTUML is a proven, well-defined, fully automated methodology utilizing the UML notation.

xTUML is based on an object-oriented approach that has been used on over 1400 real-time and technical projects. These projects include life-critical implanted medical devices, DOD flight-critical systems, 24x7 performance-critical fault-tolerant telecom systems, highly resource-constrained consumer electronics, and large-scale discrete-event simulation systems.

Download

An Introduction to Executable and Translatable UML™

Posted in: Model Driven Development

Executable and Translatable UML (XTUML) accelerates the development of real-time, embedded and technical software systems. XTUML is a proven, well-defined, fully automated methodology utilizing the UML notation.

XTUML is based on an object-oriented approach that has been used on over 1400 real-time and technical projects. These projects include life-critical implanted medical devices, DOD flight-critical systems, 24x7 performance-critical fault-tolerant telecom systems, highly resource-constrained consumer electronics, and large-scale discrete-event simulation systems.

Download

Making Code Generation Real: Five Requirements for Effective Code Generation

Posted in: Model Driven Development

The promise of effective code generation is tremendous. It can accelerate development, increase productivity, streamline maintenance and improve system quality by orders of magnitude.

But the demands of effective code generation are also significant. There are basic requirements that must be met in order to ensure a productive environment. An approach and toolset that supports these basic requirements can greatly increase project productivity and quality. However, one lacking these critical capabilities will become either an expensive drawing tool or an obstacle to project success.

Outlined in the following article are the five basic requirements for effective code generation that will make each project a success.

Download

Agile MDA

Posted in: Model Driven Development

MDA is a broad church covering a number of different approaches to model-driven development. Most commonly, people think of models as blueprints that are filled in with code, so MDA is commonly viewed as supporting "heavyweight" process-heavy modeling techniques; but MDA can do better than this.

Agile MDA is based on the notion that code and executable models are operationally the same. Hence, the principles of the Agile Alliance-testing first, immediate execution, racing down the chain from analysis to implementation in short cycles, for example-can be applied equally to models. An executable model, because it is executable, can be constructed, run, tested and modified in short incremental, iterative cycles.

To reach this happy state, models must be complete enough that they can be executed standing alone. There are no "analysis" or "design" models; rather, different models capture independent aspects of the system. Models are linked together, rather than transformed, and they are then all mapped to a single combined model that is then translated into code according to a single system architecture. This approach to MDA is called Agile MDA.

Download