To know the importance of modeling let us assume that you are going to build a dog house, a house for your family and a high rise office for a client. In the case of a dog house you need minimal resources and the satisfaction of the dog is not that important.
In the case of building a house for your family, you need to satisfy the requirements of your family members and the amount resources are non-trivial. In the case of building a high rise office, the amount of risk is very high.
Curiously, a lot of software development organizations start out wanting to build high rises but approach the problem as if they are knocking at a dog house. Sometimes you get lucky, If you have the right people at the right moment and if all the planets align properly, then you might, get your team to create a software product that satisfies its users. This happens very rarely.
Unsuccessful software projects fail in their own unique ways, but all successful software projects are alike in many ways. There are many elements that contribute to a successful software organization; one common element is the use of modeling.
Modeling is a proven and well-accepted engineering technique. We build architectural models of houses and high rises to help their users visualize the final product.
Modeling is not only limited to the construction industry. Modeling is applied in the fields of aeronautics, automobile, picture, sociology, economics, software development and many more. We build models so that we can validate our theories or try out new ones with minimal risk and cost.
What, then is a model? Simply put,
A model is a simplification of reality.
A good model includes those elements that have broad effect and omits those minor elements that are not relevant to the given level of abstraction. A model may be structural, emphasizing the organization of the system, or it may be behavioral, emphasizing the dynamics of the system.
Why do we model? There is one fundamental reason:
We build models so that we can better understand the system we are developing.
Through modeling, we achieve four aims:
- Models help us to visualize a system as it is or as we want it to be.
- Models permit us to specify the structure or behavior of a system.
- Models gives us a template that guides us in constructing a system.
- Models document the decisions we have made.
The larger and more complex the system becomes, the more important modeling becomes, for one very simple reason:
We build models of complex systems because we cannot comprehend such a system in its entirety.
Every project can benefit from modeling. Modeling can help the development team better visualize the plan of their system and allow them to develop more rapidly by helping them build the right thing. The more complex your project, the more likely it is that you will fail or that you will build the wrong thing if you do on modeling at all.
Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.
“The more complex your project, the more likely it is that you will fail or that you will build the wrong thing if you do on modeling at all.”
Is above sentence correct?
For a complex project without proper design, the chances of being it a success is very slim to none.
it should be …if you donot model at all.