Lesson 1 - Introduction to UML
UML (Unified Modeling Language) is a set of graphical notations that is used in software development. In the field of analysis and design, it has become a standard and therefore it's important that programmers have some knowledge of it. UML is used in many papers, documentations, and so on. But mostly, it can serve as a useful tool to make an information system design and development easier.
With the increasing popularity of the object-oriented programming, the new way to look at information systems from different perspectives was searched. Lots of specifications and standards for drawing objects and other application components was created. But we won't bother with those in here, of course. During the 1990s, Rational Software succeeded in creating the UML standard by unifying several existing methodologies. Over time, it turned out that large corporations have shown great interest in such a standard to be created and maintained. The reasons why are simple: one standard makes communication much easier, there is no need to learn different languages for each project and documentation for various projects is understandable for everyone. The cost of communication and training would be reduced rapidly. This led to creation of an international consortium with a little odd name, OMG (as the Object Management Group) that oversees the UML specifications. It's an open institution featured with companies such as IBM, Rational Software, Microsoft, Oracle, HP, and others. They all together create the UML language.
Importance of UML
It's a well-known fact that the complexity of information systems is growing. Those days when the whole system was programmed just by one person are irretrievably gone. We need to design the system first, we cannot just sit down and write some code anymore. When implementing the information system, we need to work in a team of programmers, since one is certainly not enough. There must be really good communication among the team members. Moreover, it's necessary to react to changes in our client's requirements. It can be very difficult to estimate the cost of the system in the early stages of its development. UML is one of the tools that help us solve these problems. It'll help us in the analysis phase, when we're communicating with the client and finding out what we're actually going to program. And it'll help us in the design phase, when we're dealing with the question how we're going to program it.
UML can generally be used in three ways:
1. UML as a sketch
We can use simplified UML diagrams as a sketch. Typically, these are hand-drawn diagrams on a whiteboard or in a workbook. We use them when dealing with the client when showing the problem in graphical form improves communication and understanding. We are human, and the graphical form is much easier to understand for us than text. Of course, we are also sketching the system parts while discussing them in our team.
Diagrams have a very important feature and that is abstraction. Each diagram is actually a particular point of view on the system, from a specific perspective. We show only what's important at the moment and hide the rest of the system. UML diagrams improve communication and reduce the risk of misunderstanding among programmers and the client which would result in a poorly designed system.
2. UML as a blueprint
UML as a blueprint is much more detailed than a sketch. Diagrams are created in CAD tools and serve as an implementation plan for programmers. These diagrams improves orientation in the system and therefore, communication among team members as well as implementation of the system is much easier. Once the project is done, the diagrams serve as the documentation for the project. Since UML is a standard, even a programmer without previous knowledge of the code will be able to understand the system.
3. UML as a programming language
The third way to use UML is as a programming language. We can generate code templates from detailed UML diagrams that serve as a basis for implementation. In databases, these models are regularly used to generate the database creation scripts.
UML currently consists of 14 diagrams
The diagrams are divided into two basic groups:
- Structural Diagrams - Describe the structure of the system, its parts.
- Behavioral Diagrams - Describe the behavior of the system, how it works.
There is one separate group in the behavioral diagrams:
- Interaction diagrams - Describe the interactions between different parts of the system.
Each diagram has its purpose. We should always create diagrams because we need them and they provide value to us. Creating diagrams only because somebody told us they should exist is usually just a waste of time.
We strongly recommend using the online tool https://www.draw.io to draw UML diagrams. You can select shapes for UML diagrams in the toolbar on the left. In the right bar, you can style and color them. If, for some reason, you still prefer desktop applications, we recommend https://www.modelio.org. Both of these tools are completely free of charge.
In this course, we'll go through all the UML diagrams, step by step, on real-life examples. We'll learn to use them in the process of software development, i.e. from identifying system requirements from the client to the deployment of the finished system. We'll focus mainly on the usage of UML in practice.
In the next lesson, UML - Use Case Diagram, we'll start with Use Case diagrams.