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