Skip to content
🤷

Forgive us! These docs are a work in progress. Some pages may be incomplete or describe features that aren't quite finished yet. Farkitect is in early development and we don't recommend using it for real work just yet. Feel free to explore — just be aware that things are still being built.

M2 UML Class Diagram

A metamodel for UML class diagrams — the most widely used notation for modelling software structure, data models, and type hierarchies.

TypeShapeColourDescription
Classrectangle#B5D4FF (light blue)A UML class with name, attribute, and operation compartments
Interfacerectangle#D4E8FF (lighter blue)A UML interface — a contract defining operations
Attributerectangle (subordinate)#D4E8FFA typed property owned by a Class. Renders inside the attributes compartment
Operationrectangle (subordinate)#D4E8FFA behaviour owned by a Class or Interface. Renders inside the operations compartment

Class renders with three compartments:

  1. Name — class name in bold
  2. Attributes — owned Attribute elements displayed as {name} : {Type}{Visibility? [{Visibility}]:}
  3. Operations — owned Operation elements

Interface renders similarly but with a <<interface>> stereotype.

Attribute:

  • Type (enumeration: String, Integer, Real, Boolean, Date, DateTime, Text)
  • Visibility (enumeration: public, private, protected, package)
  • Is Static (Boolean)

Operation:

  • Return Type (String)
  • Visibility (enumeration)
RelationshipLine StyleMarkersDescription
AssociationsolidnoneGeneral connection between classifiers
Compositionsolidfilled diamond at sourceStrong ownership — part is destroyed with the whole
Generalizationsolidhollow arrow at targetInheritance / “is a”
Realizationdashedhollow arrow at targetImplements an interface
Dependencydashedarrow at targetOne element depends on another

UML Visibility — public, private, protected, package

UML models can be exported to XMI 2.5.1 via File > Export XMI and to Eclipse EMF (.ecore + .xmi) via File > Export for Eclipse EMF.