Look, Read, Understand, Apply


OOAD - Object Oriented Analysis and Design

Static and Dynamic Models

Static model

A static model is a snapshot of a system’s parameters at rest. It represents the structural or static aspect of the system. Static model assumes an absence of change in data of the system over time. Class diagram is used to represent statical model of the system.

Dynamic model

A dynamic model is viewed as a collection of behaviors which reflects the behavior of a system over time. Dynamic model shows how the objects of the system interact with each other to perform tasks. UML sequence diagrams, collaboration diagrams, activity diagrams are used for creating dynamic models.

First static model of the system is developed showing the structure of objects and their relationships. Then changes to the objects and relationships over time due to the interactions between the objects are examined to develop dynamic model. Dynamic models are important at the time of design and implementation phases of the system development.

Reason for Modeling

Good models play important role in communication among the member of project team and the users. Models are visual representations; they provide several benefits:

  • Clarity: Models allow the visual examination of the system; errors and omissions can be found easily in the models.
  • Familiarity: Models resemble real world problem domain to some extent; users may find them familiar and become comfortable to work with them.
  • Maintenance: Visual notation not only help to find errors or omissions but also helps to correct faults, errors and improve the maintenance of the system.
  • Simplification: they are simple to understand

Unified Modeling Language (UML)

The UML is a tool for specifying, constructing, and documenting the software system and its components. The primary goals for using UML are as follow:

  • Developing meaningful models of the software system
  • Improve and extend the major concepts of the system
  • Independence from particular programming languages and development processes
  • Encourage the growth of OO tools
  • Integrate best practices

Class diagram