Unified Modeling Language (UML)
Introduction
Unified Modeling Language (UML) is a general-purpose modelling language (not a
programming language). The main aim of UML is to define a standard way to visualize the way
a system has been designed. It is quite similar to blueprint, used in other fields of engineering.
UML helps software engineers, businessmen, and system architects with modelling, design,
and analysis.
Modeling
UML diagrams represent two different views of a system model:
1. Static (or structural) view
   This view emphasizes the static structure of the system using objects, attributes,
   operations, and relationships. Ex: Class diagram, Composite Structure diagram.
2. Dynamic (or behavioural) view
   This view emphasizes the dynamic behaviour of the system by showing collaborations
   among objects and changes to the internal states of objects. Ex: Sequence diagram,
   Activity diagram, State Machine diagram.
Use Case Diagrams
•   Describe WHAT the system will do at a high-level
•   Gather design requirements of a system.
•   As the system is analyzed to gather its functionalities, uses cases are prepared and actors
    identified.
•   Easy to understand, hence can use as a good tool to communicate with users and
    developers explain what the system is intended to do.
Components of a Use Case Diagram
    – Scenario: a specific sequence of actions and interactions between actors and the
      system
    – Use case: Specific task that system performs.
    – Actor: An external entity who is interacting with the system (User roles, external
      systems, devices).
    – System Boundary: Group the use case implemented by the system (or the
      component)
•   Use Case Diagram-core relationship
    – Association: Model bi-directional communication between the actor and the system
       within a specific use case.
    – Generalization: relationship between one general use case and a special use case
      (used for defining special alternatives)
    – Include (composition): How one use case can be decomposed into one or more other
      use cases.
    – Extend: One use case may be used to extend the behaviour of another
                Get Approval
                                      extend
                                                            Modify Oder
                             Use Case Diagram Notation
                                                                          Inclusion use case
                                                                         Dependency
         Association
                            Base use case
Identifying Actors
•   Primary Actors:
    – Who will use the main functionality of the system?
    – Who will need support from the system daily tasks?
    – Who or what has an interest in the result (the value) that the system produces?
•   Secondary Actors:
    – Who will need to maintain, administrate, and keep the system working?
    – With which other systems do the system need to interact/depend on?
Identifying Use Cases
    – Which function does the actor require from system?
    – Dose the actor need to read, create, destroy, modify, or store some kind of
      information in the system?
    – Dose the actor have to be notified about events from the system?
Example-1
Bank ATM
Customer (actor) uses bank ATM to Check Balances of his/her bank accounts, Deposit Funds,
Withdraw Cash and/or Transfer Funds (use cases). ATM Technician provides Maintenance
and Repairs.