Importance of UML to Software Systems

Few decades back, a new stream of systems engineering evolved and was called Software engineering. The resultant systems were called Software systems or Information Systems.

Let's recollect our definition of Software System.

 

"A Software system is a system which designed to automate the complexities of the real world by using the computational (Storage, Processing and Transferring) capability of the hardware like Micro Processors, Databases and high speed networks".

As Software systems are supposed to automate the complexity of real world systems. We know real world systems can be highly complex. This means that the software systems will be at least as complex as the real world systems.

If the real world systems which are highly complex needs modeling for better understanding, then it is quite obvious that even software systems which are atleast equally complex as the real world system also needs modeling.

Unfortunately ... the reality is very different ....Software systems are the only kind of systems wherein huge sky scrapers are built with out any engineering drawings.

And can you guess what happens to these sky scrapers? Its any ones guess one ... the building people land up creating is something which the user never wanted?

Friends lets think ... why does this happen?

Is there no standardized modeling language for Software Systems to help us understand the complexity or we just dont use it?

 

The answer is "There is a Standardised Modeling Language for Software systems.. but the fact is we just dont use it .

Friends ... what do you think is UML?

"UML is a standardized graphical modeling technique used for understanding the complexity of software systems from different perspectives at different levels of granularity".

Although UML has been there for quite some time, the real problem lies in the fact that software companies and engineers just don't use it.

I am just quoting my experience.

Majority of the companies don't use UML as they don't see any value in using the same.One of the primary reasons according to me is that people don't understand why UML is needed.


I have come across engineers and technical managers considering UML and UML Diagrams a waste of time saying that if systems can be created by writing codes then what is the need for drawing these diagrams?

Classification of UML Diagrams along with its reasons

UML Diagrams primarily are of two types

  • Behaviorial Diagrams
  • Structural Diagrams


    Behaviorial Diagrams

    "Behaviorial diagrams are different graphical diagrams meant for understanding the behaviorial complexity of a system from different perspectives at different levels of granularity".

    Use cases, Use case diagrams, Sequence diagrams, Collaboration diagrams, State diagrams, Activity diagrams are different behavioral diagrams.

    Structural Diagrams

    "Structural diagrams are different graphical diagrams meant for understanding the structural complexity of a system from different perspectives at different levels of granularity".

    Class Diagrams, Package Diagrams, Component diagrams and Deployment diagrams are different types of structural diagrams.

    Why Structural/Behavioral Diagrams?

    Let's try to understand why UML diagrams are only classified as Structural and Behavioral Diagrams.

    Software Systems can automate any real world system belonging to any domain (Finance, Healthcare, Insurance, Global Energies, Telecom, and Banking etc).

    Is it possible to think about a standardized graphical modeling technique that can have a standardized unique graphical representation for every single concept belonging to every domain in this world?

    I hope you will agree ... It is technically not practical.

    So the designers of UML, had to find some aspects of the system that should be common across every system in this world. The only aspect that they found common across every system in this world was "That every system in this world will exhibit behaviors and will have an enabling structure which will give that behavior."

    This is the reason why UML diagrams are classified as "Structural" and "Behavioral" diagrams.

    This also points to the fact that UML is extremely powerful and is capable of modeling every real world concept in this world

    This also points to the fact that your software system is capable of automating every complex real world in this world.

    As we know, Component interaction is the technical cause behind implementation of behavior. To model and understand how components interact with each other, we have Interaction Diagrams like Sequence diagrams and Collaboration diagrams.
    Why are UML Diagrams needed?

    First the UML Diagrams are needed by the analyst to understand the structural and behavioral complexity of the traget system to be automated from different perspectives at different levels of granularity.

    Second as there are multiple stakeholders involved in the development of information systems, standardized graphical notations are used to ensure that all the stakeholders understand the system in a single way.

    In our professional lives, many times we have witnessed a situation where we deliver the first version of the system to the customer and his reaction is "this is not what I wanted".

    Why does this happen?

    This happens because we did not completely understand what the customer exactly needed.

    And why did we not understand the customer requirements?

    If analysis using standardized modeling technique was not done, then it is fair to expect that you really understand the problem statement or requirements the right way.

    Is this new with software engineering?

    If we trace the history of different systems engineering, we will find that whenever a new stream of systems engineering emerges, there is a lot of hype in the market. Because of which the customers are unrealistic and impatient along with the system providers.

    But as time passes by customers and system providers start realizing that systems built heuristically without analysis and planning cannot sustain for long and they start following the right analysis and design procedures.

    As a trainer I have started realizing the change and companies have started realizing the importance of UML to the success of the system.


 
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer

www.VPlanSolutions.co.in