UML

Unified Modeling Language

Within the Information Technology world, It is useful to ¨model¨ in simple drawings a system of software.

The basis of this modeling language in the software context is the Object Oriented Programming paradigm.

Object Oriented concepts in detail

  • Objects
    • Represents something in the real or "unreal" world, for example
      • Ball
      • House
      • Triangle
  • Class
    • Is the blue print of an object, a sort of squeleton that will be used when a new object is created
  • Abstraction
    • Represents the Behavior of an entity
      • For example in the context of a Ball
        • All balls rolls
  • Encapsulation
    • A mechanism that shield the properties of an object and provides an API in order to access or modify them
  • Inheritance
    • A mechanism of reutilization and relationship among objects
      • Sample
        • An object of type Bar tender inherits from the class Employee, since every bar tender is an employee
  • Polymorphism
    • A mechanism through which an object that inherits other can impersonate it

The purpose of Object Oriented Programming Analysis and Design

  • Identifying the objects of a system
  • Identify their relationships
  • Make a design that can be converted to executables using OO languages

So the stages are

  1. Analysis
  2. Design
  3. Implementation

UML Building Blocks

Those are

  • Things
  • Relationships
  • Diagrams

Things

  • Structural
    • ​Static part of the UML
      • Class
      • Interface
      • Collaboration
        • Define interaction between elements
      • Use Case
        • Set of actions performed by a system for a specific goal
      • Component
        • Describe physical part of a system
      • Node
        • Physical element that exists at run time
  • Behavioral
    • Dynamic part of the UML
      • Interaction
        • Message
      • State machine
        • Define the sequence of state an object goes through in response to events
  • Grouping
    • Package
      • Gather structural and behavioral things
  • Annotational
    • Note
      • Used to comments and notes

Relationships

  • Dependency
    • A relation between two things in which change in one element affect the other
  • Association
    • Set of links that connects elements of a UML model and describes how many object are  taking part in that relationship
  • Generalization
    • Describe Inheritance, which is the connection among a specialized element with a generalized one
  • Realization
    • Describe interfaces, which is the connection among an element that defines behavior and other that implements it

Diagrams

  • Class Diagram
  • Object Diagram
  • Use Case Diagram
  • Sequence Diagram
  • Collaboration Diagram
  • Activity Diagram
  • Statechart Diagram
  • Deployment Diagram
  • Component Diagram

UML Architecture

There are 4 concepts that center their attention in a Use Case, which represents a given functionality

  • Design
    • Define the collaboration of entities
  • Implementation
    • Define which components make the whole system
  • Process
    • Define the flow of the system
  • Deployment
    • Define and represent the physical nodes of the system

Types of UML modeling

  • Structural Modeling
    • Gather the static features
      • Class diagram
      • Object diagram
      • Deployment diagram
      • Package diagram
      • Composite structure diagram
      • Component diagram
  • Behavioral Modeling
    • Define the interaction in the system, shows the dynamic nature of the system
      • Activity diagrams
      • Interaction diagrams
      • Use case diagrams
  • Architectural Modeling
    • Represents the overall framework of the system. It contains both structural and behavioral elements.
    • Considered as the blue print of the entire system
    • Package diagram lies in this category