In my last post a explained what use case diagrams is and how it can be used in software development, if you haven’t read it then I recommend checking it out. In this post i’m going to explain what modeling languages is and why it’s important.
A modeling language can be described as a graphical or textual computer language that is used to design and express important information and knowledge about a software system. The goals of modeling languages might vary depending on language and use, but generally they consist of a framework with some set of rules and components that is used to design logical and structured models of a software system. Modeling is in my opinion a crucial part of the software development process because it helps stakeholders and developers understand the structure, system requirements and functions of the software system.
Unified Modeling Language (UML)
UML is one of the most common modeling languages that you will likely encounter as a software engineer. It’s a general-purpose language that describes software components through diagrammatic representations. Use case diagrams which i discussed in the previous post is a good example of a High level UML, but there are many more types. The UML diagrams can be divided into two broad categories Behavioral and Structural UML diagrams.
Behavioral diagrams explains what should happen in the software system. They are used extensively to describe the use and functionality of software systems. Activity diagram is a good example of a behavioral diagram which illustrates the step-by-step workflow of the business activities that are connected to the software system. The use cases diagram mentioned above is also a type of behavioral diagram which represents the user’s interaction with the system.
Structure diagrams focus on the things that must be present in the system that is being modeled such as objects, attributes, operations and relationships. They are used mostly for documenting the software architecture. One of the most common types of structural diagrams is the class diagrams. Class diagrams are very useful for object-oriented programming in languages such as C++ and Java. They show the attributes and methods of the classes and how they’re associated with each other. In my opinion it’s a very usefull tool for modeling both large and small software. This kind of diagram can be used to avoid problems such as code duplication and redundancy by making it clear which class or object should do what and what variables they should store.
“A picture is worth a thousand words”. With a visual representations, both developers and stakeholders can better understand how the software is suppose to work and at the same time discover errors or flaws in the software components and processes before it’s actually developed.
Creating UML diagrams
Creating these kind of diagrams is not hard. There are many efficient easy-to-use tools out there such as:
Personally i have only used Draw.io and Visio for modeling UML diagrams. Visio is a very powerfull tool that packs a lot of useful templates and functions, the problem though is that it’s not free and you have to install it on a computer. When creating simple diagrams i would rather use Draw.io because it browser-based which is more convenient if you work with multiple computers.
If you wanna learn more about how to use draw.io i suggest watching this channel: