Software design with UML
Unified Modeling Language (UML) is standardized language which helps software engineers to graphically illustrate software model of a system.
UML provides a set of diagrams to specify and visualize the artifacts of an object-oriented software system. UML 2.4 has 14 types of diagrams divided into two categories – structural and behavioral (fig.1).
Since structure diagrams represent the structure, they are used extensively in documenting the software architectire of systems. The most popular and used structure diagram is Class digram. Class diagrams are the backbone of almost every object-oriented class. They describe the static structure of the system by showing the system’s classes, their attributes, and the relationships among the classes (fig. 2).
The other structural diagrams also describe the system model but more general as package diagrams which are a subset of class diagrams and relations are more easily displayed when we have more classes. Component diagram describes how a software system is split up into components and shows the dependencies among these components.
Behavior diagrams describe the functionality if software systems and what must happen in the system by different actions. Among the most used behavior diagrams are use case and sequence diagrams.
Use case diagrams model the functionality of system using actors and their goals presented as use cases (fig. 3).
Sequence diagram shows how objects communicate with each other in terms of a sequence of messages. Also indicates the lifespans of objects relative to those messages (fig. 4).
UML state machine diagram is also frequently used to describe the states and the transitions of the objects from the system.