Contents

Overview

USE is a system for the specification of information systems. It is based on a subset of the Unified Modeling Language (UML) [1]. A USE specification contains a textual description of a model using features found in UML class diagrams (classes, associations, etc.). Expressions written in the Object Constraint Language (OCL) are used to specify additional integrity constraints on the model. A model can be animated to validate the specification against non-formal requirements. System states (snapshots of a running system) can be created and manipulated during an animation. For each snapshot the OCL constraints are automatically checked. Information about a system state is given by graphical views. OCL expressions can be entered and evaluated to query detailed information about a system state. The picture below gives a general view of the USE approach.

The USE specification language is based on UML and OCL. Due to the semi-formal definition of early OCL versions, there were language constructs whose interpretation was ambiguous or unclear [2]. In [3] and [4] we have presented a formalization of OCL which was designed to provide a solution for most of the problems and which became part of UML 1.4/1.5. The USE approach to validation is described in [5] and [6]. Several other papers of our group employing USE can be found in the publications of our group.

Recent News

Since Version 3.0.0 the old command line language of USE has been replaced by a full programming language SOIL (Simple OCL-based Imperative Programming Language [7]). User documentation is coming soon, see examples/soil for the meantime.

The snapshot sequence language has been extended by new `barrier' statements to control the search space.

Screenshots

The screen shot below shows information about a system state generated with the USE tool. More detailed information is given in the quick tour. Click on the picture below to get an enlarged version.

Screenshot of USE

System Requirements

USE is implemented in Java(tm). Therefore, it should run on any platform on which a Java runtime system (e.g. the Sun JDK) is available. So far this has been tested mainly on Unix-like platforms (Solaris and Linux) but it should work also on Windows. If you're trying to install USE on any other platform, you are on your own, although this should not be too difficult.

The distribution of USE comes with full sources. If you want to compile USE yourself, you will need a Java Development Kit (JDK) version 1.7.0 or later (see http://java.oracle.com) and Apache Ant 1.6.0 or later. For running all tests, you will need some Unix tools like GNU make, perl, sed, etc. All of them should be available on any decent Linux distribution.

Download

The newest release can now be found on SourceFourge.
Older releases are still available.

↑Mark Richters and Martin Gogolla. A metamodel for OCL. In Robert France and Bernhard Rumpe, editors, Proceedings of the Second International Conference on the Unified Modeling Language: UML'99, LNCS Vol. 1723. Springer, 1999.