A common question that arises for new software developers or computer science students when undergoing training is what is UML? UML is an acronym for Unified Modeling Language. It is a standard graphical modeling language used to capture various aspects of a software engineering project. UML specifications have been documented by the Object Management Group. Created in mid 1990s, today UML is extensively used in almost all middle to large software development projects. Since its inception, UML has been continuously evolving and coming out with newer versions. UML 2.4.1 was officially released in 2011. Many UML development tools are available for quick creation of project models. Some of them are Umbrello, Eclipse and MagicDraw.
Why Visual Modeling Is Important?
For developing large enterprise software the developer team cannot shoot up with writing code. Once the client has comprehensively discussed the functional requirements of the software, the developers should be extremely clear with the modules, classes, interfaces, data and work flows involved in the project. For small projects this is often done by listing and describing these aspects. But with large and complex software a huge number of such essential aspects make it very difficult to give a clear understanding of them, by merely listing them out. This is where visual models come to play. Visual models ensure optimized number and scope of modules, correct interfacing between modules and capture of all of the user’s requirements.
Introduction To UML
We already know that visual modeling is essential for any middle to large software project. The most important feature about any visual model you create is that it should be a standard model which can clearly convey the idea to every member of the project cohort. UML has been there for more than a decade. UML 2.0 has thirteen recognized diagrams for representing any enterprise application. These diagrams have been classified into three categories namely – Structure, Behavior and Interaction diagrams.
Structure Diagrams in UML
They represent the entities present in the software system. These may be components, modules, packages, classes, instances etc. Component diagrams represent the logical partitions of the system into modules and how they relate with each other. Class diagrams depict the attributes and functions of the classes present. Object diagrams show the attribute values of class instances. Package diagrams represent how the classes have been bound together. A deployment diagram shows the terminals, database servers, web servers, browsers etc. and their interconnectedness. It may also include language specific software components such as Java beans, JDBC, Data Access Objects etc.
Behavior Diagrams in UML
They essentially include diagrams which depict the operational flow of various processes present in the system. These may be Use Case
Diagrams (UCAD), Activity Diagrams or State Machines. Use Case and Activity diagrams generally visualize the workflows associated with system processes. The Use Case diagrams project how users of each kind interact with the system. ‘Actors’ is often the aggregated term used for users and other external components which can serve input. State Machines visualize the user inputs and the corresponding state transitions where a state is a possible situation the system may land into.
Interaction Diagrams in UML
As pronounced by the name itself, interaction diagrams show how different components connect with each other. These diagrams focus on interfaces between two entities and the flow of data among them. They may also keep a track of time spent in performing operations with the help of graphs. Communication diagram shows interaction of an object with every other object in terms of message exchanges. Sequence diagrams represent the occurrences of interactions in a chronological order.
Standard Colors in UML
Usage of standard colors in UML diagrams makes even intricate models well readable. Usually four light shades such as yellow, pink, light blue, light green are used. Same colored shapes have same purpose. For example, every yellow shape in a model may represent a user or some other input agency.