The Unified Modeling Language, or UML, is a set of diagrams to standardize the modeling languages and help to develop software systems so developers can visualize, construct, and document the whole process in a short and standardized way. The UML is a collection of engineering practices to successfully develop complex systems with object oriented or development process features. Because of the graphical notations, teams can collaborate correctly and use those visualizations to validate and create potential designs of the software.
The origins of UML start with Grady Booch and the OMT (Object Modeling Technique), those factors and also more influences by other object-oriented notations made since 1991 the base of what UML is nowadays. Since then it has been changed and validated several times, even in 2013 there was another change to improve it. So, the question is, why is UML so efficient and popular?
Why should you learn it?
There are several primary goals by the UML which companies used in a frequent time to make UML important and transform it into basic knowledge to be a software engineer or even in the business area as a business model process and structure. Thanks to the UML, techniques have been made to manage the complexity of systems and help to increase the scope and scale controls of it, this and other techniques are used by businesses to automate the production of software and improve the quality of it. I find quite interesting the primary goals that Visual Paradigm state in the design of the UML which are the following:
- Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.
- Provide extensibility and specialization mechanisms to extend the core concepts.
- Be independent of particular programming languages and development processes.
- Provide a formal basis for understanding the modeling language.
- Encourage the growth of the OO tools market.
- Support higher-level development concepts such as collaborations, frameworks, patterns and components.
- Integrate best practices.
Now that it is stated that UML diagrams are quite important to have in consideration, there are several diagrams that make possible to look at a system in many different ways. The main focus on diagrams are the stakeholders which will be the ones who analyze the language and must benefit from it. These UML diagrams are divided into two groups which are the structure diagrams and the behavior diagrams. The first one includes the static structure of the system and its abstraction, also the relation between the levels of implementation. The behavior diagrams describe a series of changes to the system over time.
For now, I will explain two structural diagrams and one behavior diagram to have a better understanding of UML and types o diagrams:
As the name says, the class diagrams are based on classes and types of objects that are in the system. The relations between them are made and those relations are static to make an all object-oriented diagram. The types of relationships that are made in the diagram are association, inheritance and aggregations. All of them represent a structural code that can be implement from the diagram which is the main purpose of it.
Often confused as a class diagram, the object diagram exemplifies a graph of instances which marks the difference between the class diagram. In this case, it is needed to a detailed state of a system at a point of time, whereas the class diagram there is no time. So, to have a more concrete definition, an object diagram represents an instance in a particular moment in the system where there are data structures.
Coming from the object diagram one can state that a sequence diagram instead of making an instance of the system, it makes a collaboration based on a time sequence. So, it shows the interactions between objects in a particular scenario of a use case.
If you’re able to do what needs to be done even with an unmotivated mind, you’re a definite winner