The UML-based Specification Environment
USE is a system for the specification of information systems. It is based on a subset of the Unified Modeling Language (UML) . 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 . In  and  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  and . Several other papers of our group employing USE can be found in the publications of our group.
- 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 ). 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.
- Object diagrams can now be cropped based on OCL expressions.
For a full list of all news see the Source Forge News page.
The following documentation is available.
- A Screencast which explains the basic features of USE.
- A Quick Tour guides you through an example demonstrating the core features of USE.
- USE Manual (2007, ~1.2 Mb)
- A description of how to Validate pre- and postconditions.
- An introduction in the imperative programming language SOIL of USE.
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.
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 Sun's Java 2 Development Kit (JDK) version 1.6.0 or later (see http://java.sun.com) and Apache Ant 1.6.0 or later. Earlier versions of the JDK and ant may work but have not been tested. 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.
The newest release can now be found on SourceFourge. Older releases are still available.
If you have any questions about USE, please feel free to post them into the help forum hosted at Sourceforge.
If you found a bug in USE, please submit it via our bugtracking system.
See also the complete list of publications of our group where most papers are available online.
 OMG Unified Modeling Language Specification, Version 1.3, June 1999. Object Management Group, Inc., Framingham, Mass., Internet: http://www.omg.org, 1999.
 Martin Gogolla and Mark Richters. On constraints and queries in UML. In Martin Schader and Axel Korthaus, editors, The Unified Modeling Language - Technical Aspects and Applications, pages 109-121. Physica
 Mark Richters and Martin Gogolla. On formalizing the UML object constraint language OCL. In Tok Wang Ling, Sudha Ram, and Mong Li Lee, editors, Proc. 17th Int. Conf. Conceptual Modeling (ER'98), pages 449-464. Springer, Berlin, LNCS Vol. 1507, 1998.
 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.
 Mark Richters and Martin Gogolla. Validating UML models and OCL constraints. UML 2000 - The Unified Modeling Language. Advancing the Standard. Third International Conference, York, UK, October 2000, LNCS Vol. 1939. Springer, 2000.
 Mark Richters. A Precise Approach to Validating UML Models and OCL Constraints. Phd thesis. Universitaet Bremen. Logos Verlag, Berlin, BISS Monographs, No. 14. 2002.
 Martin Gogolla, Jörn Bohling, and Mark Richters. Validation of UML and OCL Models by Automatic Snapshot Generation. In Grady Booch, Perdita Stevens, and Jonathan Whittle, editors, Proc. 6th Int. Conf. Unified Modeling LanguageÂ (UML'2003). Springer, Berlin, LNCS 2863, 2003.
 Martin Gogolla, Fabian Büttner, and Mark Richters. USE: A UML-Based Specification Environment for Validating UML and OCL. Science of Computer Programming, 69:27-34, 2007.
 Fabian Büttner and Martin Gogolla. Modular Embedding of the Object Constraint Language into a Programming Language. In Adenilso Simao and Carrol Morgan, editors, Proc. 14th Brazilian Symposium on Formal Methods (SBMF'2011). Springer, Berlin, LNCS 7021, 2011.