UML Specification

Syntax

diagrams, elements, graphs.

Semantics (Informal)

A system, S, consists of descriptions (of classes and relationships) and (possible) instances of those descriptions (at time t).

A model M represents/specifies a System S.

M contains elements.

Elements include classifiers and instance specifications.

A classifier represents a description. (Description specification?)

A classifier is a collection of features (feature specifications?)

An instance specification represents an instance.

An instance specification is a collection of slots.

A slot holds a value that instantiates some feature.

If an instance specification has slots for all of the features of some classifier, then the instance specification instantiates the classifier.

Note, that we can replace system by domain.

Examples of systems: software, hardware, organizational, social.

Examples of descriptions include types, functions/goals/tasks, procedures, roles, collaborations, entities, concepts.

Another Approach

An object contains variables and can execute some methods.

A variable is an object that can store another object. It has methods for storing and retrieving.

A method is an object with parameters (variables) that can be executed. Executing a method produces some result object (possibly null). A method must be executed by some object.

A package is an object that contains other objects.

A class is an object that contains variable and method declarations.

A declaration is an object that can execute a newInstance method. This method returns a variable or method.

A class also contains a newInstance method.

An interface is an object that contains operation declarations.

An object is an instance of a class if it can execute the classes’ methods and if its variables instantiate the classes’ variable declarations.

An object is an instance of an interface if it can execute methods that match the interface’s declared operators.

A class A extends a class B if the declarations of B are a subset of the declarations of A.

A class A implements an interface B if the method declarations of A match the operator declarations of B.

An operator is an object that contains a name, a list of parameters, and a return type.

A parameter is a variable.

A variable is a named object that contains another object.

A method is an object that has a name, list of parameters, return type, and a statement.

A statement  is an object that can be executed.