Universal Modeling Language
often used to depict the design of software, especially software
written with Object Oriented Programming in mind

Object Oriented Analysis, Design & Programming with UML | Udemy

Basic

Software complexity

Algorithmic Decomposition

  • Focus on operations rather than data
  • Doesn’t scale well
  • Doesn’t map to real world

OO Decompose

  • View system as a set of autonomous objects
  • Objects collaborate with each other
  • Data has prime importance and is hidden
  • Maps closely to real-world problem domain

Object Characteristics

  • Object is and entity, real or abstract, identifiable, in some problem domain
  • Characteristics:
    • state
    • identity
    • behaviour
  • Their blueprint is represented by a class
  • Objects do not exist in isolation
  • Interdependent, coordinate

OO Analysis

Model

Why not code

  • code is too verbal

Why not natural language

  • lack of precise notation

Advantage

  • Formal
  • Concise
  • Comprehensive
  • Scalable
  • Standard

View Model

Logical View

Process View

Physical View

Development View

Use Case View

Object Model Concepts

Evolution of Languages

  • Software moves closer to problem domain and further away from machine

OO Analysis

OO analysis is a method of analysis that examines the requirements from the perspective of the classes & objects found in the vocabulary of the problem domain
- Grady Booch

  • Investigation of problems and requirements rather than solution
  • Focuses on what the system is supposed to do rather how it will be done
  • Looks at the behaviour of the system independent of its domain
  • Examines the real-world environment in which the system will operate

Analyze

  • Highest level of abstraction

OO Design

OO Design is a method of design encompassing the process of OO decomposition and
a notation for depicting both logical and physical as well as static and dynamic models
of the system under design
- Grady Booch

  • Focus on object oriented decomposition
  • Detail description that specifies how the system is to be built using different technologies

OO Programming

Use Case Diagram

Activity diagram

  • Represents how behaviour is accomplished in high-level actions
  • Shows a business process
  • Similar to flowchart

Swimlane

Interaction Diagram

Logical View Diagram

Development View