The Unified Modeling Language (UML)

The Unified Modeling Language (UML) is a popular communication tool in the software industry. It uses diagrams and brief descriptions to help developers visualize, construct, and document components (or artifacts) of a software system. UML can be used to captureknowledge (semantics) about a subject and express knowledge (syntax) regarding the subject for the purpose of communication. As a modeling language it can be used to communicate “what” is required of a system, and “how” a system may be implemented. Contradict to many beliefs, UML is NOT a process but it is often used to enables processes.

UML is often used during requirements phase to facilitate better understanding of users’ needs. Both developers and users can find it easy to learn, to review, and detect errors in the early phase of software development. Developers could apply “Use Case Diagram”to capture functional requirements of a system and define the scope of the project. The key of use case modeling is in the text portion of a use case model, but most people still consider the diagrams as the focus. The “Class Diagram” is probably the most widely used UML diagrams since it is easy to explain to users. The “Activity Diagram” is good for modeling workflow and time sequences of interactions. They are the glue that bind together many different views of a system into a single diagram. The “Object Diagram” is similar to class diagrams but it also include sample values for quality attributes which is helpful to illustrate concrete examples. “Sequence diagram” can be used to illustrate the passing of messages back and forth between objects. “Deployment diagram” can be used to explain the different hardware devices in a system, and the software components installed on each one.

I often encourage students to use UML as a main tool for communication with customers and users during Capstone projects. It can be used to describe the system from different perspectives: the perspective of the customer and the perspective of the software system itself. Since UML is very easy to learn, you can start use it by following some simple examples. The best way to start is to use few the UML diagrams in a small project then spread the use in other projects, each time add more types then you can learn UML quickly. I do encourage students to explore this tool and begin to use in your next project.

Detail description of UML can be found at: www.uml.org. The web site for UML from the Object Management Group.

The best book on UML is: UML Distilled by Martin Fowler (Addison Wesley, ISBN 0-321-19368-7). It is an excellent introduction to UML, and it is short, easy to read, easy to learn.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University