Class and Object diagrams in UML
                              (Unified Modeling Language)

                                                                                                     http://www.paxcel.net




                                                                                                          By:-
                                                                                          Tanjot Singh Sandhu


                                                                                     Paxcel technologies. www.paxcel.net
This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
UML Background

   UML is a standard language for designing and
    documenting a system in an object-oriented manner.
   UML includes a set of graphic notation techniques to
    create visual models of object-oriented software-
    intensive systems.
   The standard is managed, and was created, by the
    Object Management Group (OMG).
   UML versions - UML 1.0, 1.1 1.2, 1.3, 1.4, and 1.5
   UML 2.0 – adopted by OMG in 2005.
   UML 2.3 - formally released in May 2010.
   UML 2.4.1 - formally released in August 2011.

                                                                                                    Paxcel technologies. www.paxcel.net
               This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Technical aspects of UML
   Building block of UML
             Things
                     Structural Things (Class, Interface, Collaboration, Use case,
                                              Active class, Component, Node)
                     Behavioral things (Message , State)
                     Grouping things (Package)
                     Annotational things (Notes)

        –   Relationships
               •      Dependency (represented as a dashed directed line)
               •      Association (rendered as solid line)
               •      Generalization (represented as a solid line with a hollow
                      arrowhead pointing to the parent)
               •      Realization (represented as a dashed line with a hollow
                      arrowhead pointing to the parent)




                                                                                                   Paxcel technologies. www.paxcel.net
              This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Technical aspects of UML (Continued)

    Diagrams
     •     Structural/ Static
                   –        Class Diagram
                   –        Object Diagram
                   –        Component Diagram
                   –        Deployment Diagram
     •     Behavioral/ Dynamic
                   –        Use case Diagram
                   –        Sequence Diagram
                   –        Collaboration Diagram
                   –        Statechart Diagram
                   –        Activity Diagram




                                                                                              Paxcel technologies. www.paxcel.net
         This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Class Diagram
   Class diagram represents a set of classes, interfaces and
    their relationships.
   It can be used to model Collaboration of classes,
    Database schema.




                                                                                                     Paxcel technologies. www.paxcel.net
                This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Class Visibility
Visibility applies to attributes or operations, and specifies
  the extent to which other classes can use a given
  class‟s attributes or operations.

Three levels of visibility are possible:

1. Public level - usability extends to other classes +
2. Protected level - usability is open only to classes
  that
inherit from original class #
3. Private level - only the original


                                                                                                    Paxcel technologies. www.paxcel.net
               This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Association in Class diagrams

   By grouping and relating between the classes we create
    module and these are termed as Association.
   In order to associate them we need to draw solid arrowed
    lines between the classes as shown in the below figure.
   Example – A Person works for a Company.




                                                                                                      Paxcel technologies. www.paxcel.net
                 This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Association Properties

   Name
 Name of the association
   Role
 The specific role of the association
   Multiplicity
 Indicates the number of objects that are connected
   Type
 Plain association, aggregation, composition
   Direction
Direction can also be shown for a association


                                                                                                  Paxcel technologies. www.paxcel.net
             This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Association Multiplicity
   One class can be linked to instances of many other
    classes.
          That is, it indicates how many objects of one class relate to one
           object of another class. It is indicated by a single number or a range
           of numbers.
   Thus, multiplicity can be termed as classes having
    multiple associations.




                                                                                                       Paxcel technologies. www.paxcel.net
                  This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Multiplicity Example




   A teacher teaches 1 to 3 courses (subjects).
   Each course is taught by only one teacher.
   A student can take between 1 to 5 courses.
   A course can have 10 to 300 students.




                                                                                                   Paxcel technologies. www.paxcel.net
              This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Aggregation Relationships
   Aggregation is a whole/part relationship. In below
    example, Window is the whole, and Shape is part of
    Window.
   Aggregation is represented with a hollow/ open diamond.
   Ends of a relationship are referred to as its “roles”. Notice
    that the role at the Shape end of the aggregation is
    marked with a “*”. This indicates that the Window contains
    many Shape instances.




                                                                                                       Paxcel technologies. www.paxcel.net
                  This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Aggregation Relationships
   Aggregation is a whole/part relationship. In below
    example, Window is the whole, and Shape is part of
    Window.
   Aggregation is represented with a hollow/ open diamond.
   Ends of a relationship are referred to as its “roles”. Notice
    that the role at the Shape end of the aggregation is
    marked with a “*”. This indicates that the Window contains
    many Shape instances.




                                                                                                       Paxcel technologies. www.paxcel.net
                  This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Aggregation vs Composition

   Both refer to member object but the existence of member
    object (without the containing class or object or after the
    lifetime of the containing class or object) makes the
    difference.
   Aggregation is also known as a 'has a' relationship
    because the containing object has a member object and
    the member object can survive or exist without the
    enclosing or containing class or can have a meaning after
    the lifetime of the enclosing object also.
   Example ('has a'): Room has a table and the table can
    exist without the room. The table can have meaning
    without the room also.

                                                                                                      Paxcel technologies. www.paxcel.net
                 This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Aggregation vs Composition (Continued)

   Composition is also known as a 'is a part of' relationship
    because the member object is a part of the containing
    class.
   Member object cannot survive or exist outside the
    enclosing or containing class or does not have a meaning
    after the lifetime of the enclosing object.
   Example ('is a part of'): IMEI no. is a part of the Mobile.
    IMEI no. cannot exist without the mobile and the IMEI no.
    has no meaning after the lifetime of the mobile.




                                                                                                      Paxcel technologies. www.paxcel.net
                 This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Example - Aggregation vs Composition

   Aggregation




   As you can see, Person does not manage the lifetime of
    Address. If Person is destroyed, the Address still exists.


                                                                                                       Paxcel technologies. www.paxcel.net
                  This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Example - Aggregation vs Composition

   Composition




   If we were going to model a car, it would make sense to
    say that an engine is part-of a car.
   Within composition, the lifetime of the part (Engine) is
    managed by the whole (Car), in other words, when Car is
    destroyed, Engine is destroyed along with it.
   As you can see in the example code above, Car manages
    the lifetime of Engine.

                                                                                                       Paxcel technologies. www.paxcel.net
                  This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Inheritance Relationships

   Depicted by a hollow triangular arrowhead.
   One or more lines proceed from the base of the arrowhead
    connecting it to the derived classes.




                                                                                                      Paxcel technologies. www.paxcel.net
                 This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Dependency Relationships

   Sometimes the relationship between two classes is very
    weak. They are not implemented with member variables
    at all. Rather they might be implemented as member
    function arguments.
   Consider, for example, the Draw function of the Shape
    class. Suppose that this function takes an argument of
    type DrawingContext.
   Represented as dashed-arrow line.




                                                                                                     Paxcel technologies. www.paxcel.net
                This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
An abstract class and interface in UML
   Stereotype – Type/ word or string within two surrounding
    characters “«»”, called guillemets (pronounced Gee-may).
   Interface is represented by stereotype, «type» in the class
    diagram.
   Abstract classes are represented by „{abstract}‟ as shown
    in figure.




                                                                                                      Paxcel technologies. www.paxcel.net
                 This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Some of the commonly used stereo types while writing UML:

<<Application>>:- Used to represent a UI system in a application.
<<Database>> :- represents a database in a application.
<<Table>> :- A table with in database.
<<Library>> :- A reusable library or function.
<<File>> :- Physical file on a folder.
<<Executable>> :- A software component which can be executed.
<<Web services>> :- Represents a web service.
<<JDBC>> :- Java database connectivity , a JAVA API to connect to
  database.
<<ODBC>> :- Open database connectivity , a Microsoft API to connect to
  database.




                                                                                                      Paxcel technologies. www.paxcel.net
                 This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Object Diagram
   Class diagrams shows the types and how they are linked.
   Object diagram gives a pictorial representation of class
    diagram at any point of time.
   We represent object with Object Name: Class Name.
   Property is represented by „PropertyName=Value‟.
   We can show multiplicity as different objects of same class.
   Other UML entities, such as an aggregation or composition
    symbol (a diamond) may also appear on an object diagram.
   Note: - Object diagrams should only be drawn to represent
    complicated relationship between objects. It‟s possible that
    it can also complicate your technical document as lot. So
    use it sparingly.

                                                                                                       Paxcel technologies. www.paxcel.net
                  This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Object Diagram (Continued)

   Draw an object diagram to illustrate a real-life example of
    a class and its relationships.
   Object diagrams can help clarify classes and inheritance
    and are sometimes drawn while planning classes.
   Helpful in understanding the system from practical
    perspective.
   Assist non-programming stakeholders who may find class
    diagrams too abstract.
   An object can also be thought of as the description of an
    individual within a group.
   Hence “CheckingAccount” might be defined as a UML
    class and “John‟s checking account at Agency Bank”
    would be illustrated as an object diagram (on next slide).
                                                                                                      Paxcel technologies. www.paxcel.net
                 This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
Object Diagram... continued

   Object diagrams use notation very similar to class
    diagrams.




                                                                                                     Paxcel technologies. www.paxcel.net
                This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
References
   http://en.wikipedia.org/wiki/Unified_Modeling_Language
   http://www.dotnetfunda.com/articles/article143.aspx
   http://www.dotnetfunda.com/articles/article145.aspx
   http://www.careerride.com/UML-FAQs.aspx
   http://www.objectmentor.com/resources/articles/umlClassDiagrams.pdf
   http://www.altova.com/umodel/object-diagrams.html
   http://design-antony.blogspot.in/2007/07/aggregation-vs-composition.html
   http://www.c-
    sharpcorner.com/UploadFile/pcurnow/compagg07272007062838AM/compagg.asp
    x




                                                                                                        Paxcel technologies. www.paxcel.net
                   This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.

Introduction to UML

  • 1.
    Class and Objectdiagrams in UML (Unified Modeling Language) http://www.paxcel.net By:- Tanjot Singh Sandhu Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 2.
    UML Background  UML is a standard language for designing and documenting a system in an object-oriented manner.  UML includes a set of graphic notation techniques to create visual models of object-oriented software- intensive systems.  The standard is managed, and was created, by the Object Management Group (OMG).  UML versions - UML 1.0, 1.1 1.2, 1.3, 1.4, and 1.5  UML 2.0 – adopted by OMG in 2005.  UML 2.3 - formally released in May 2010.  UML 2.4.1 - formally released in August 2011. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 3.
    Technical aspects ofUML  Building block of UML Things  Structural Things (Class, Interface, Collaboration, Use case, Active class, Component, Node)  Behavioral things (Message , State)  Grouping things (Package)  Annotational things (Notes) – Relationships • Dependency (represented as a dashed directed line) • Association (rendered as solid line) • Generalization (represented as a solid line with a hollow arrowhead pointing to the parent) • Realization (represented as a dashed line with a hollow arrowhead pointing to the parent) Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 4.
    Technical aspects ofUML (Continued) Diagrams • Structural/ Static – Class Diagram – Object Diagram – Component Diagram – Deployment Diagram • Behavioral/ Dynamic – Use case Diagram – Sequence Diagram – Collaboration Diagram – Statechart Diagram – Activity Diagram Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 5.
    Class Diagram  Class diagram represents a set of classes, interfaces and their relationships.  It can be used to model Collaboration of classes, Database schema. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 6.
    Class Visibility Visibility appliesto attributes or operations, and specifies the extent to which other classes can use a given class‟s attributes or operations. Three levels of visibility are possible: 1. Public level - usability extends to other classes + 2. Protected level - usability is open only to classes that inherit from original class # 3. Private level - only the original Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 7.
    Association in Classdiagrams  By grouping and relating between the classes we create module and these are termed as Association.  In order to associate them we need to draw solid arrowed lines between the classes as shown in the below figure.  Example – A Person works for a Company. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 8.
    Association Properties  Name Name of the association  Role The specific role of the association  Multiplicity Indicates the number of objects that are connected  Type Plain association, aggregation, composition  Direction Direction can also be shown for a association Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 9.
    Association Multiplicity  One class can be linked to instances of many other classes.  That is, it indicates how many objects of one class relate to one object of another class. It is indicated by a single number or a range of numbers.  Thus, multiplicity can be termed as classes having multiple associations. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 10.
    Multiplicity Example  A teacher teaches 1 to 3 courses (subjects).  Each course is taught by only one teacher.  A student can take between 1 to 5 courses.  A course can have 10 to 300 students. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 11.
    Aggregation Relationships  Aggregation is a whole/part relationship. In below example, Window is the whole, and Shape is part of Window.  Aggregation is represented with a hollow/ open diamond.  Ends of a relationship are referred to as its “roles”. Notice that the role at the Shape end of the aggregation is marked with a “*”. This indicates that the Window contains many Shape instances. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 12.
    Aggregation Relationships  Aggregation is a whole/part relationship. In below example, Window is the whole, and Shape is part of Window.  Aggregation is represented with a hollow/ open diamond.  Ends of a relationship are referred to as its “roles”. Notice that the role at the Shape end of the aggregation is marked with a “*”. This indicates that the Window contains many Shape instances. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 13.
    Aggregation vs Composition  Both refer to member object but the existence of member object (without the containing class or object or after the lifetime of the containing class or object) makes the difference.  Aggregation is also known as a 'has a' relationship because the containing object has a member object and the member object can survive or exist without the enclosing or containing class or can have a meaning after the lifetime of the enclosing object also.  Example ('has a'): Room has a table and the table can exist without the room. The table can have meaning without the room also. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 14.
    Aggregation vs Composition(Continued)  Composition is also known as a 'is a part of' relationship because the member object is a part of the containing class.  Member object cannot survive or exist outside the enclosing or containing class or does not have a meaning after the lifetime of the enclosing object.  Example ('is a part of'): IMEI no. is a part of the Mobile. IMEI no. cannot exist without the mobile and the IMEI no. has no meaning after the lifetime of the mobile. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 15.
    Example - Aggregationvs Composition  Aggregation  As you can see, Person does not manage the lifetime of Address. If Person is destroyed, the Address still exists. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 16.
    Example - Aggregationvs Composition  Composition  If we were going to model a car, it would make sense to say that an engine is part-of a car.  Within composition, the lifetime of the part (Engine) is managed by the whole (Car), in other words, when Car is destroyed, Engine is destroyed along with it.  As you can see in the example code above, Car manages the lifetime of Engine. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 17.
    Inheritance Relationships  Depicted by a hollow triangular arrowhead.  One or more lines proceed from the base of the arrowhead connecting it to the derived classes. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 18.
    Dependency Relationships  Sometimes the relationship between two classes is very weak. They are not implemented with member variables at all. Rather they might be implemented as member function arguments.  Consider, for example, the Draw function of the Shape class. Suppose that this function takes an argument of type DrawingContext.  Represented as dashed-arrow line. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 19.
    An abstract classand interface in UML  Stereotype – Type/ word or string within two surrounding characters “«»”, called guillemets (pronounced Gee-may).  Interface is represented by stereotype, «type» in the class diagram.  Abstract classes are represented by „{abstract}‟ as shown in figure. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 20.
    Some of thecommonly used stereo types while writing UML: <<Application>>:- Used to represent a UI system in a application. <<Database>> :- represents a database in a application. <<Table>> :- A table with in database. <<Library>> :- A reusable library or function. <<File>> :- Physical file on a folder. <<Executable>> :- A software component which can be executed. <<Web services>> :- Represents a web service. <<JDBC>> :- Java database connectivity , a JAVA API to connect to database. <<ODBC>> :- Open database connectivity , a Microsoft API to connect to database. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 21.
    Object Diagram  Class diagrams shows the types and how they are linked.  Object diagram gives a pictorial representation of class diagram at any point of time.  We represent object with Object Name: Class Name.  Property is represented by „PropertyName=Value‟.  We can show multiplicity as different objects of same class.  Other UML entities, such as an aggregation or composition symbol (a diamond) may also appear on an object diagram.  Note: - Object diagrams should only be drawn to represent complicated relationship between objects. It‟s possible that it can also complicate your technical document as lot. So use it sparingly. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 22.
    Object Diagram (Continued)  Draw an object diagram to illustrate a real-life example of a class and its relationships.  Object diagrams can help clarify classes and inheritance and are sometimes drawn while planning classes.  Helpful in understanding the system from practical perspective.  Assist non-programming stakeholders who may find class diagrams too abstract.  An object can also be thought of as the description of an individual within a group.  Hence “CheckingAccount” might be defined as a UML class and “John‟s checking account at Agency Bank” would be illustrated as an object diagram (on next slide). Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 23.
    Object Diagram... continued  Object diagrams use notation very similar to class diagrams. Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.
  • 24.
    References  http://en.wikipedia.org/wiki/Unified_Modeling_Language  http://www.dotnetfunda.com/articles/article143.aspx  http://www.dotnetfunda.com/articles/article145.aspx  http://www.careerride.com/UML-FAQs.aspx  http://www.objectmentor.com/resources/articles/umlClassDiagrams.pdf  http://www.altova.com/umodel/object-diagrams.html  http://design-antony.blogspot.in/2007/07/aggregation-vs-composition.html  http://www.c- sharpcorner.com/UploadFile/pcurnow/compagg07272007062838AM/compagg.asp x Paxcel technologies. www.paxcel.net This is the exclusive property of Paxcel Technologies. This may not be reproduced or given to third parties without their consent.