UML Modelling is crucial for industrial-strength software development.
What is industrial-strength software development?
Something that stays ahead of competition with its competitors!
So why model?
To understand a complex system structure that can be easily reused and modified!
Okay, if you don't understand what I am saying then picture this scenario....
You need to understand passenger services of an airport.....
How do you build a model for such a system?
1) You need to model the business system as an outsider of the system and as a check-in employee of the system. Both an external and internal view.
2) After that you need to make a model for the IT system that is modelled to understand. Both an external and internal view.
3) Followed by how to understand how the IT system interacts with external systems of the passenger services. Such as Baggage Transportation, etc.
A Model doesn't need to be a full blown model of an IT system.
A Model contains the functions under study, and some other things can be omitted, for example - baggage transportation, business airline system, business systems - customs and business systems - catering.
Just include what you need to understand about the IT system to be built and omit the rest.
Now, why do we need to model the business system? Because we need to see the passenger services as a black box? Why Black box? So that we understand how to view the business system as an outsider, for a passenger, for a taxicab transportation.
Why do we need to understand externally and internally? So that we need to model the business system for a check-in employee.
Now, why do we need the external and internal view of an IT system? To understand the check-in representative view and the internal view that contains components of an IT system.
Additionally, you need to just understand the external interfaces of other IT systems.
The views are just black box and white box models about the system under study.
A Model should be built with carefully understanding the system to be build, and must not be an activity carried out in haste.
Models should be made to show the stakeholders of how the system functionality should be understood and must be communicated to important people who are affected by the system.
Industrial-strength software can't be easily mocked and can't be beaten by other competitors and they can easily be changed and the components can be reused.
So, why model? For developing a system that is made by expert engineers that can't be easily beaten and stand the test of crisis in changing and maintenance work. A system that is not modelled is developed by amateurs who just try to develop a system that is up and running under certain period of time and they can't be easily changed and reused.
Modelling is an essential activity and the modelers should not proceed in haste and should continuously evolve their models that can be reused.
Hence, a careful study of software modelling will help you stay ahead in the game for a long time.
This doesn't mean all applications should be modelled.
Use modelling for complex systems. And most of the time the real world is complex to understand.
Hence, modelling is an essential activity to develop a robust software wherever complexity is involved.
A Few Books that mentions the contents of this post are:-
1) UML 2- A project based tutorial.
2) UML 2 and the Unified Process
3) Applying UML and Patterns.
4) Object Oriented Analysis and Design with Applications by Grady Booch.
So, modelling is an essential activity. And you could also model a simple system carefully.
But the real world is full of complexity. So if you want to be an expert engineer, start modelling the right way.
The books are great to give you confidence, and model as many systems as possible.
The whole idea here is to get accustomed to modelling the complexity involved.
So, will you model?
The decision is yours!
All the best!
Know Yourself!