Unified Modeling Language (UML 2.0)

There's an introduction to UML at wikipedia.

The home page for UML information is at OMG. This site includes links to other sites and to UML tools.

The detailed specification for UML 2.0 is in the UML 2.0 Superstructure document. This is the main UML reference used in the Xholon project.

Bran Selic of IBM has written an introduction to What's new in UML 2.0?


TOPCASED is an open-source integrated System/Software engineering toolkit compliant with the requirements of critical and embedded applications. TOPCASED is strongly model-oriented. It supports UML 2.0 modeling, including composite structure and state machines, which makes it a perfect tool for use with Xholon. TOPCASED models are saved in XMI 2.1 format. TOPCASED UML models can be transformed into Xholon models, and executed using the Xholon runtime framework.

See the Xholon with TOPCASED HelloWorld Tutorial.

A version of the Topcased Network Editor Tutorial models and code, developed using Topcased 1.0.0 M4.1 (the latest as of July 3, 2007) is available from the Xholon website. This zip file contains two Eclipse projects. The tutorial describes how to create a metamodel that can be used to create a graphical editor for a specific domain, in this case a network of computers, internets and sub-networks. The tutorial documentation from Topcased should be used in conjunction with their more up-to-date generic tutorial on Generating a Graphical Editor.

MagicDraw UML

MagicDraw is a visual UML modeling and CASE tool. MagicDraw models are saved in XMI 2.1 format. Portions of these models can be transformed into Xholon foramt, and executed using the Xholon runtime framework.

See the Xholon with MagicDraw HelloWorld Tutorial.

Poseidon for UML

Poseidon is a UML modeling tool. Poseidon models are saved as XMI 1.2 files. Portions of these models can be transformed into Xholon format, and executed using the Xholon runtime framework.

See the Xholon digital watch example which was developed using Poseidon for UML. This is a good example of the Poseidon features that Xholon is able to transform and execute.

Sponsored by poseidon for uml

XML Metadata Interchange (XMI)

The MagicDraw, Poseidon, and other UML tools export models using some version of the XML Metadata Interchange (XMI) standard. It's hard to get concise technical information on XMI. There is some information at wikipedia.

The standards documents themselves are maintained by OMG.

ROOM, ObjecTime, Rational Rose RealTime

Many of the ideas in the Xholon open-source project originated with the ObjecTime Developer product at ObjecTime, a company that has since been acquired by Rational, which in turn was purchased by IBM.

Rational Rose RealTime (RRT), now called IBM Rational Rose Technical Developer, extended the ObjecTime technology. It may be difficult to tell from these IBM pages just what RRT is all about. Keep in mind that Rational Rose RealTime (RRT) is quite different from the Rational Rose product that most people may be familiar with. RRT technical documentation is available from IBM. The Modeling Language Guide is especially useful as an introduction. IBM provides a product brochure.

Real-time Object-Oriented Modeling (ROOM) is the methodology used in ObjecTime, portions of which have since been incorporated into UML 2.0 (composite structure, ports, message passing). A very brief introduction to ROOM is available.

The most comprehensive source of information on ROOM is still the book Real-Time Object-Oriented Modeling by Bran Selic, Garth Gullekson, and Paul Ward. It's now out of print, but new or used copies can still be ordered through Amazon (Amazon in Canada). The Amazon site also includes a number of book reviews.

References in the literature to the ROOM book are available at citeseer.

Kevin Smith wrote a useful article about ObjecTime.

Bran Selic, then of ObjecTime Ltd., wrote a tutorial on ROOM and ObjecTime.

Steve Courtney and John Laws, formerly with ObjecTime Ltd., wrote a fairly high-level description of ObjecTime.

Z. Gu and K. G. Shin wrote an academic paper that describes their experience with ROOM and Rational Rose RealTime.

Andrew Lyons, previously at ObjecTime Ltd., wrote a number of useful papers, including: Developing and debugging Real-Time Software with ObjecTime Developer, and UML for Real-Time Overview.

Garth Gullekson, also previously with ObjecTime and Rational, wrote Designing for Concurrency and Distribution with Rational Rose RealTime.

UML 2.0 Composite Structure, Ports, etc.

Some of the core ideas in the Xholon open-source project, that originated with ObjecTime Developer, are now part of the UML 2.0 specification, under the heading of Composite Structure. Wikipedia includes a brief introduction to composite structure. For some abstract theory on one view of what composite structure is about (entities that are both wholes and parts at the same time), you might want to look at the wikipedia page on holons.

John Hogg, formerly of ObjecTime, Rational and IBM, has written an article that describes some of the core background concepts used in the Xholon project, Using UML for Modeling Complex Real-Time Systems.

Conrad Bock has written another article, UML 2 Composition Model, about composite structure.

Dr. Darren Kelly has created some complex models using the MagicDraw UML tool. These demonstrate UML 2.0 composite structure and port-based engineering.

A publication, A Tool for Quality - Driven Architecture Model Transformation, by Janne Merilinna of VTT Electronics provides a good description with examples, and includes a variety of composite structure diagrams produced using Tau/Developer from Telelogic.

For an example of using composite structure with message passing and state machines, see An Example of UML - Modeling a Coffee Machine.

Many UML tool vendors include a brief description of composite structure diagrams - IBM, Sparx Systems, Altova, Visual Paradigm - although I don't find that any of these descriptions are very comprehensive.

The recently adopted Systems Modeling Language (SysML) is based on UML. Composite structure is an important concept in SysML, where it is referred to as Block structure. SysML uses the terms Block Definition Diagram and Internal Block Diagram in place of the UML terms Class Diagram and Composite Structure Diagram. SysML extends the UML concept of ports.

The Specification and Description Language (SDL), an International Telecommunication Union standard, includes many of the same ideas. SDL, first released in 1976, has had an important influence on UML. The 2000 version, SDL-2000, is fully object-oriented and is more closely aligned with UML.

AnyLogic, other tools

XJ Tecnologies produces a simulation and modeling tool, AnyLogic, that incorporates ideas from ObjecTime, Rational Rose RealTime, and ROOM. Their site includes numerous examples.

State Machines

State machines are an important way of modeling behavior in UML, and are used extensively in Xholon. Introductory information is available at wikipedia. See especially the material on UML state diagrams.

David Harel originated many of the state machine concepts used in UML and in Xholon. D. Harel, "Statecharts: A Visual Formalism for Complex Systems", Sci. Comput. Programming 8 (1987), 231-274. The original paper is available online.

State Chart XML (SCXML) has many points in common with the XML used in Xholon to specify state machines. An open-source implementation of SCXML is being developed.