Difference between revisions of "W2561 UML Class Diagrams"

From Coder Merlin
Line 17: Line 17:
** The lack of an underline indicates ''instance'' scope
** The lack of an underline indicates ''instance'' scope
* A '''relationship''' describes logical connections between entities
* A '''relationship''' describes logical connections between entities
** '''Instance-Level''' relationships
** '''Class-Level''' relationships
** '''Class-Level''' relationships
*** '''Inheritance''' indicates that one of the classes is a specialized form (''subclass'') of the other (''superclass'').  This is also known as an ''is a'' relationship, e.g. "a dog is a mammal".  This is indicated on a diagram by drawing a line from the subclass to the superclass with a hollow triangle on the superclass end.
*** '''Inheritance''' indicates that one of the classes is a specialized form (''subclass'') of the other (''superclass'').  This is also known as an ''is a'' relationship, e.g. "a dog is a mammal".  This is indicated on a diagram by drawing a line from the subclass to the superclass with a hollow triangle on the superclass end.
*** '''Realization''' indicates that one of the classes (the ''client'') realizes (implements) the behavior specified by the other class (the ''supplier'' or ''interface'').  This is indicated on the diagram by drawing a dashed line from the client to the interface with a hollow triangle on the interface end.  The interface itself has an ''<<interface>>'' tag above the "class" name.
*** '''Realization''' indicates that one of the classes (the ''client'') realizes (implements) the behavior specified by the other class (the ''supplier'' or ''interface'').  This is indicated on the diagram by drawing a dashed line from the client to the interface with a hollow triangle on the interface end.  The interface itself has an ''<<interface>>'' tag above the "class" name.
** '''Instance-Level''' relationships

Revision as of 14:49, 11 April 2019

Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder

Research[edit]

Key Concepts[edit]

  • Class Diagrams provide a means for communicating the general, static, conceptual model of an application
  • Classes are represented by a box with with three compartments
    • The top compartment contains the name of the class, capitalized and centered
    • The middle compartment contains the attributes (properties) of the class, left-aligned in camel case
    • The bottom compartment contains the operations (methods) of the class, left-aligned in camel case
      • Abstract operations are indicated by using italics for the operation name
  • An abstract class is indicated by using italics for the class name
  • Visibility notations may be placed in front of the attributes and operations
    • + indicates public access
    • - indicates private access
  • Scope notations may be used to specify the scope of attributes and operations
    • An underline indicates classifier (static) scope
    • The lack of an underline indicates instance scope
  • A relationship describes logical connections between entities
    • Class-Level relationships
      • Inheritance indicates that one of the classes is a specialized form (subclass) of the other (superclass). This is also known as an is a relationship, e.g. "a dog is a mammal". This is indicated on a diagram by drawing a line from the subclass to the superclass with a hollow triangle on the superclass end.
      • Realization indicates that one of the classes (the client) realizes (implements) the behavior specified by the other class (the supplier or interface). This is indicated on the diagram by drawing a dashed line from the client to the interface with a hollow triangle on the interface end. The interface itself has an <<interface>> tag above the "class" name.
    • Instance-Level relationships