Look, Read, Understand, Apply


OOAD - Object Oriented Analysis and Design

Unified Modeling Language

Unified Modeling Language (UML)

Unified modeling language is a standard way to visualize a software system. UML has several diagrams defined which are used to show structural, and behavioral aspects of a software system and those diagrams help businessmen, end users to clarify their requirements, understand to the software system, and helps software engineer to model, analyze and design software system.

The visualization saves lots of time of software engineers in analysis and design process. End users and managers can understand the visuals that help them to clear about their requirements. Teams can work with each other easily as the blue print of the software is available which is developed using standard notations and is easy to understand.

UML diagrams are classified into:

  • Structural Diagrams:
    • Component Diagrams
    • Object Diagrams
    • Class Diagrams
    • Deployment Diagrams
    • Package Diagrams
  • Behavior Diagrams
    • Use Case Diagrams
    • State Diagrams
    • Activity Diagrams
    • Interaction Diagrams: Sequence Diagrams, Collaboration Diagrams

Structural UML Diagrams

  • Class Diagram:

    Class diagram shows the static structure of a software system; Software is composed of classes and relationship between the classes. Class diagram clearly shows the classes, attributes, and methods of the classes and relationship between classes of the system.

    Class Diagrams are used for

    • showing static view of the system under consideration.
    • Developing software applications using OOP languages.

  • Composite Structure Diagram:

    Composite Diagram is created to show the internal structure of a class. It also shows parts of the class that interact with other parts of the system.

  • Object Diagram:

    Object Diagrams shows the instance of a class diagram.

  • Component Diagram:

    Component Diagram shows how the physical components of the system have been organized. It helps to understand if the functional requirements of the end users are considered or not.

  • Deployment Diagram:

    Deployment Diagrams shows hardware devices of the system and software installed in those hardware devices.

  • Package Diagram:

    A package is collection of related class and a package diagram shows classes related to each other.

Behavior Diagrams

  • Use Case Diagrams:

    A Use case Diagram shows the functionality provided by the system to its users (Actors). A use case represents a scenario where the system is used, it does not show the implementation details.

  • Sequence Diagram:

    A sequence diagram shows the interaction between objects in sequential order.

    Uses of sequence Diagram:

    • To show the details of use case.
    • To view how messages are exchanged between objects.
    • To model function, operation or procedure.

  • Activity Diagram:

    An Activity diagram shows flow of control in a system; it can show steps involved in the execution of some task or a use case.

    To draw Activity Diagram:

    • Identification of initial and final states is necessary.
    • Identification of intermediate activities
    • Identification of conditions, constraints

    Uses of Activity Diagrams:

    • to product dynamic model of system or process
    • To show steps involved in the use case.
    • To show concurrent activities, conditions, constraints.

  • State Machine Diagram:

    State machine diagram shows the dynamic behavior of a class according to time and external inputs. It shows behavior of finite state transitions.