Necessity of models
A model is a simplification(blueprints) of reality.
Model helps us to understand (visualize) better the system we are developing.
Building models of complex systems helps us to understand it in its fullness.
Object oriented modeling
In software, the two ways by which we can approach a model are through – algorithmic perspective and object- oriented perspective. The algorithmic perspective is not suitable when there is frequent requirement changes and also when system grows it will be difficult to maintaining such systems. These problems doesn’t affect the other because of mainly objects(has identity, state & behaviour) and class. eg:- c++ and c.
Introducing UML(Unified Modelling Language)
UML is a language for, Visualizing, Specifying, Constructing & Documenting.
They are the artifacts (one of many kinds of tangible products formed during s/w development examples includes use cases, class diagrams) of a software intensive system.
How visualizing done in UML? As it enables us to represent(modelize) what we think using various ways available in UML(including diagrams, notes etc….). The idea(data) loss is avoided( sometimes what we think may not appear in the code, so the model helps in visualizing everything). UML helps in representing data that can only be inferred (eg:class hierarchy- able to understand more with diagrams than with the explanations alone) using its models. The model written by a developer is easily understood by another developer or tool.
How specifying done in UML? In developing and deploying a software- intensive system in UML each small details are specified clearly.
How constructing done in UML? Mapping a model in UML to a programming language like java, c++, VB, tables in relational database / persistent store of object- oriented database is possible. Here both forward engineering(model to language) and reverse engineering is possible.
How documenting done in UML? The UML addresses the documentation of a system’s architectures and all of its details(through annotations as you know).
Where UML is applied?
From simple to complex software developments including enterprise information systems, banking and financial services, telecommunications, defense, scientific …. and also in non software fields(workflow in legal system , design of hardware’s).
The only way to learn UML is by writing models in it.
Reading assignment (page 3 – 17 ) from The Unified Modeling Language User Guide by Grady Booch, James Rambaugh,Ivar Jacobson .A.W