Unified modeling language

This article or chapter is incomplete and its contents need further attention. Some information may be missing or may be wrong, spelling and grammar may have to be improved, use your judgment!

## Contents

* 1 Definition
* 2 Modeling and diagram types
* 3 UML in education
* 4 Software tools
* 5 Links
* 5.1 Official / Standards
* 5.2 Overview articles
* 5.3 Tutorials
* 5.4 UML websites
* 5.5 Examples
* 6 References

## Definition[edit | edit source]

* "The Unified Modeling Language (UML) is a non-proprietary, object modeling and specification language used in software engineering. UML includes a standardized graphical notation that may be used to create an abstract model of a system: the UML model." (Wikipedia:Unified Modeling Language).

* UML is not a method by itself, however it was designed to be compatible with any sort of object-oriented software development methods. As such it can be used to describe almost any sort of information processing architecture (including what learners do since learners can be modelled in terms of human information processing or what happens in an organization since an organization can be described in terms of information flows and procedures).

## Modeling and diagram types[edit | edit source]

With UML you can model most every phase and object of the software development process. Technically speaking, a UML model consists of elements such as packages, classes, and associations. The corresponding UML diagrams are graphical representations of parts of the UML model. UML diagrams contain graphical elements (nodes connected by paths) that represent elements in the UML model.

According to Koper (2004), UML provides a collection of models and graphs to describe the structural and behavioural semantics of any complex information system.

There are two version of UML in use: UML 1.4 and UML 2. UML 2 models are more complex and their semantics may have changed. Some of the models provided in UML 1.4 are:

* UML use case models and scenario's to capture the user requirements and functionality of the system. Scenarios are instances of use cases.

* Class and object diagrams to specify the semantic information structure of a system. Object diagrams are instances of class diagrams.

* UML activity diagrams to specify workflows. UML 2.0 brought important additions to this.

* UML State diagrams to describe the dynamic behaviour of an object in a system.

* UML Interaction diagrams (sequence and collaboration diagrams) to model how groups of objects collaborate in some behaviour.

* UML Physical diagrams (deployment and component diagrams) to model the implementation structure of a system.

In UML 2.0 there are 13 types of diagrams. Some, like activity diagrams, are quite different from UML1.4, others (like use case) less. The specification  provides the following taxonomy:

The taxonomy of UML structure and behavior diagrams

"Structure diagrams show the static structure of the objects in a system. That is, they depict those elements in a specification that are irrespective of time. The elements in a structure diagram represent the meaningful concepts of an application, and may include abstract, real-world and implementation concepts. For example, a structure diagram for an airline reservation system might include classifiers that represent seat assignment algorithms, tickets, and a credit authorization service. Structure diagrams do not show the details of dynamic behavior, which are illustrated by behavioral diagrams. However, they may show relationships to the behaviors of the classifiers exhibited in the structure diagrams.
Behavior diagrams show the dynamic behavior of the objects in a system, including their methods, collaborations, activities, and state histories. The dynamic behavior of a system can be described as a series of changes to the system over time. (OMG-UML, 2005: 684)."

Diagram types:

* UML behavioral modeling (behavior diagrams) allow to model what processes and activities must happen in the system being modeled
* UML activity diagram (useful to model pedagogic activities)
* Interaction diagram
* Sequence diagram
* Communication diagram
* Interaction overview diagram
* Timing diagram
* UML use cases (useful to model learner interactions with a system)
* State machine diagram
* UML structural modelling (structure diagrams) allow to model components of a system
* UML class diagram
* Composite structure diagram
* Component diagram
* Object diagram
* Package diagram

## UML in education[edit | edit source]

Design of educational software

Since UML is general formalism to describe information processing phenomena (like what people do, how systems are built, how programs interact etc.), UML can be used for educational software design, e.g. see Fle3's UML diagrams or Giesbers et al. (2007).

Description of pedagogical scenarios

* Some researchers use UML to describe pedagogical scenarios, see also educational modelling languages

Definition of pedagogical modeling languages

* Some educational modelling languages are also described as UML diagram, e.g. the semantic information model of IMS Learning Design (and former EML) has been expressed in UML. "The semantic, conceptual model has been expressed as a series of UML models, from which several bindings were generated automatically. E.g. for the IMS Learning Design specification a XML schema has been derived that keeps the semantics in the tag-names. However other bindings (RDF Schema/OWL, Topic Maps, SGML schema's, relational database schema's) could in principle be generated as well. This implies that the UML model is the dominant part of the specification; it captures the semantic structure and allows other representations to be generated from it. [.... ] It is expected that the semantic model underlying LD, as expressed in UML, is a critical component for the realisation of the Educational Semantic Web, because it provides a tested, generic and (within the IMS community) accepted semantic notation. Whether this model is implemented in XML, RDF-Schema, OWL,Topic Maps etc. depends which tools and technologies are used at any moment in time." (Koper, 2004).

* coUML is a multi-purpose modeling language that can be used to design courses from global to detailed level.

Definition of pedagogical use cases

* See use case

Pedagogical workflow

* See UML activity diagram and collaborative learning flow patterns

## Software tools[edit | edit source]

See Wikipedia's list of UML tools

UML Drawing tools

* Violet \- SourceForge site. Java-based UML editor. Tested: it works fine, but is not feature complete. It can be used for training and not too advanced diagrams. E.g. objects are missing from activity diagrams.

* ArgoUML ArgoUML is the leading open source UML modeling tool and includes support for all standard UML 1.4 diagrams. (Note: Some UML 2.0 languages are quite different)

* There exist some UML editor extensions to the Eclipse IDE, e.g. Violet UML Editor (not tested)

* Lucidchart is a SaaS that supports UML shape libraries

UML Drawing plus code generators
There exist many commercial tools
Magic draw is popular and has an academic free version (for teaching, upon request only). There used to be community edition which is no longer available it seems.

General-purpose drawing tools with UML support

* DIA \- DIA (Wikipedia). Dia is free software/open source general-purpose diagramming software and has special objects to draw UML diagrams. Can export to various formats.
* How to draw a diagram with Dia (Wikipedia)
* Dia in Daniel K. Schneider's opinion a fairly nice job for just drawing. Some elements are missing though (e.g. activity diagram signals).

UML drawings generators

* MetaUML, UML for LaTeX/MetaPost. Implements a subset of UML 2.0, i.e. curently (June 2008) subsets for Class, activity, use case, state machine and package diagrams. Important: Consult the manual since examples do not show the full potential of MetaUML.
* Extension:UML. Mediawiki extension (installed in this wiki).

UML-based code generators

* BOUML (not tested)

## Links[edit | edit source]

### Official / Standards[edit | edit source]

* Object Management Group (OMG)
* UML® Resource Page, a OMG web site.
* Unified Modeling Language (UML), version 2.1.2. There are two specifications that comprise the UML 2.1.2 specification: Superstructure and Infrastructure. There are also two specifications that relate to the UML2 specification (Diagram Interchange and Object Constraint Language).

### Overview articles[edit | edit source]

* Unified Modeling Language (Wikipedia)
* Glossary of Unified Modeling Language terms
* List of UML tools (Wikipedia)
* UML tool (Wikipedia)
* Glossary of UML terms (Wikipedia)
* UML Quick Reference Card by Laurent Grégoire (2001).

### Tutorials[edit | edit source]

* Practical UML: A Hands-On Introduction for Developers. Short tutorial by Randy Miller, CodeGear.
* Sparx UML Tutorials A series of introductions from SparxSystems.
* Introduction to the Diagrams of UML 2.0 by Scott W. Ambler, AgileModeling.com. A series of tutorials for the 13 UML 2 diagrams.
* Conrad Bock's articles on UML 2.0, e.g.
* UML 2 Activity and Action Models
* UML 2 Activity Modeling for Domain Experts
* UML 2 Composition Model

### UML websites[edit | edit source]

* Uml bliki by Martin Fowler.
* UML® Resource Page, a OMG web site (Includes pointers to other web sites)
* Architecture and Design: Unified Modeling Language (UML) from Cetus-links.org. Good meta-index.
* Unified Modeling Language at IBM.
* Lucidchart UML resource page

### Examples[edit | edit source]

* See all other UML-related articles. You will find examples in the articles and through links.
* UML diagrams of FLE3.

## References[edit | edit source]

* Arlow, J., & Neustadt, I. (2002). UML and the Unified Process, London: Pearson Education.

* Booch, G., Jacobson, I., & Rumbaugh, J. (1998). Unified Modelling Language User Guide, Boston, MA: Addison-Wesley.

* Fowler, M. (2000). UML distilled (3rd ed.). Upper Saddle River, NJ: Addison-Wesley. ISBN 0321193687

* Giesbers, B., van Bruggen, J., Hermans, H., Joosten-ten Brinke, D., Burgers, J., Koper, R., & Latour, I. (2007). Towards a methodology for educational modelling: a case in educational assessment. Educational Technology & Society, 10 (1), 237-247. PDF

* Joosten-ten Brinke, D., van Bruggen, J., Hermans, H., Burgers, J., Giesbers, B., Koper, R., & Latour, I. (in press). Modeling assessment for re-use of traditional and new types of assessment. Computers in Human Behaviour.

* Koper, R. (2004). Use of the Semantic Web to Solve Some Basic Problems in Education: Increase Flexible, Distributed Lifelong Learning, Decrease Teacher's Workload. Journal of Interactive Media in Education, 2004 (6). Special Issue on the Educational Semantic Web. ISSN:1365-893X [1]

* Randy Miller, Practical UML: A Hands-On Introduction for Developers, Borland Developer network. (This is a very short general UML tutorial).

* Donald Bell, UML basics: An introduction to the Unified Modeling Language, IBM Developper Works / Rational Rose. (IBM has a lot of UML and use case tutorials, needs some searching skills)

* OMG-UML (2003). UML Specification, version 1.4. Retrieved October 14, 2003, from http://www.omg.org/technology/documents/formal/uml.htm

* OMG-UML (2005). Unified Modeling Language (UML), version 2.1.2. retrieved 17:00, 5 June 2008 (UTC) from http://www.omg.org/technology/documents/formal/uml.htm
* There are two specifications that comprise the UML 2.1.2 specification: Superstructure and Infrastructure. There are also two specifications that relate to the UML2 specification (Diagram Interchange and Object Constraint Language).

* Pilone, Dan and Neil Pitman (2005). UML 2.0 in a Nutshell, O'Reilly Media, ISBN 0596007957 (this is the best book Daniel K. Schneider bought, better than the first edition which wasn't very clear).