Before going to learn what is UML, let’s learn about what is a model and the use of models:
Contents
What is a model?
A model is a simplified representation of a thing. The model captures the important aspects of the thing being modeled and leaves out the rest of the details. The benefit of models is that they can be represented in a medium (2D or 3D etc) we like.
A model of a software system can be developed using a modeling language like UML. The model will have both semantics and notation and can take various forms that include both pictures and text. The model is intended to be easy to use for certain purposes than the final system.
What are models for? (Need for models)
Models are used for the following purposes:
- To capture and precisely state the requirements and domain knowledge so that all the stakeholders may understand and agree on them.
- To think about the design of a system.
- To capture design decisions in a mutable form separate from the requirements.
- To generate usable work products.
- To organize, find, filter, retrieve, examine and edit information about large system.
- To explore multiple solutions economically.
- To master complex systems.
Unified Modeling Language (UML)
UML is a language for visualizing, specifying, constructing and documenting the artifacts of a software intensive system or simply you can say that UML is a language for modeling software systems.
UML was developed by Grady Booch, James Rumbaugh and Ivar Jacobson who belong to Rational Corporation. UML is a language, not a methodology to develop software systems.
History of UML
- In 1993 Booch was working in Rational Corporation along with other members.
- In 1994, Rumbaugh joined Rational. The first attempt of unification was made to combine Booch’s concepts, Rumbaugh’s OMT and CRC.
- In 1995, Jacobson joined Rational. Another unification attempt was made to combine Booch’s concepts, Rumbaugh’s OMT and Jacobson’s Objectory. This unification was named as Unified Modeling Language (UML).
- In 1996, proposal was made to Object Management Group (OMG) for recognizing UML as a standard language.
- In 1997, OMG recognized UML as a standard language.
- In 2000, ISO recognized UML as a standard language. The version of UML was 1.0.
- In 2004, another major upgrade was made to UML’s specification which is known as UML 2.0.
- The latest version of UML till date is UML 2.4.1 published in Aug 2011.
Why Unified?
UML is unified across several domains:
- Across historical methods and notations (Booch’s methodology, OMT and Objectory).
- Across the development life cycle phases.
- Across application domains.
- Across implementation languages and platforms.
- Across development platforms.
- Across internal concepts.
Reading(s):
Comparison of diagramming methods
Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.
Would you give some examples for better understanding.
Thank you for this excellent course.
I could not understand these two purposes of a model correctly. would you please explain them more?
To capture design decisions in a mutable form separate from the requirements.
To generate usable work products.
Thank you so much.
To capture design decisions in a mutable form separate from the requirements.
If you consider the example of UML for modeling a software system, the design (which is based on requirements) is represented as diagrams. Based on the diagrams, we can make certain design decisions like what classes will be used in the code?, Is there any need to create interfaces?, which classes will be part of MVC or MVP or any other architectural pattern? etc.
To generate usable work products.
Well the design diagrams are later forward engineered to produce code and hence we get a usable work product.