To architect a dog house can be done by one person. It involves a simple process, performed with basic tools such as nails, hammer, saw, tape etc. In few hours you end with a house for dog and can do with no one else's help. Modeling effort is minimal or sometimes unnecessary.
If you want to build a house for your family with same things, is it possible? It requires detailed planning, some sketches etc. Of Course, architecting a house is best achieved by a team. It requires detailed modelling, well-defined processes and powerful tools.
What about a high rise building? Modeling is no doubt a critical part of any construction project!
And software development? Grady Booch said:
"Modeling is a central part of all the activities that lead up to the deployment of good software. We build models to communicate the desired structure and behavior of our system. We build models to visualize and control the system's architecture. We build models to better understand the system we are building, often exposing opportunities for simplification and reuse. And we build models to manage risk."
- Grady Booch, The Unified Modeling Language User Guide (2nd Edition)
Importance of Modeling
Modeling is a proven & well accepted engineering techniques. In building architecture, we develop architectural models of houses & high rises to help visualize the final products. In Unified Modeling Language (UML), a model may be structural, emphasizing the organization of the system or it may be behavioral, emphasizing the dynamics of the system. A model is a simplification of reality, providing blueprints of a system. UML, in specific:
- Permits you to specify the structure or behavior of a system.
- Helps you visualize a system.
- Provides template that guides you in constructing a system.
- Helps to understand complex system part by part.
- Document the decisions that you have made.
We build model so that we can better understand the system we are developing. A model may encompass an overview of the system under consideration, as well as a detailed planning for system design, implementation and testing.
Principles of UML Modeling
1. The choice of model is important
The choice of what models to create has a profound influence on how a problem is attacked and how a solution is shaped. We need to choose your models well.
- The right models will highlight the most critical development problems.
- Wrong models will mislead you, causing you to focus on irrelevant issues.
For Example: We can use different types of diagrams for different phases in software development.
2. Every model may be expressed at different levels of precision
- If you are building a high rise, sometimes you need a 30,000-foot view for instance, to help your investors visualize its look and feel.
- Other times, you need to get down to the level of the studs for instance, when there's a tricky pipe run or an unusual structural element.
3. The best models are connected to reality
All models simplify reality and a good model reflects important key characteristics.
4. No single model is sufficient
Every non-trivial system is best approached through a small set of nearly independent models. Create models that can be built and studied separately, but are still interrelated. In the case of a building:
- You can study electrical plans in isolation
- But you can also see their mapping to the floor plan and perhaps even their interaction with the routing of pipes in the plumbing plan.