History of UML
The latest version of the UML is 2.5.1, declared in December 2017. Some versions of UML which can be classified into the following manner:
Before the introduction of UML version 1.0: UML has its roots in Object-Oriented Programming Methods. It is mainly based on two or three techniques, such as the booch method, the object modeling technique, and object-oriented software engineering. These techniques unified it into a single standardized language.
UML 1.1: This standard was introduced in November 1997. During this first version of UML, it was adopted by OMG (Object management group).OMG is used to manage the UML.
UML 1.3: 1.3 was introduced in March 2000, and the existing model has been updated with the semantic, notations, meta-models of UML.
UML 1.4: In this version, UML has a significant update this time. UML has been scaled up by various services diagrams like stereotypes, visibility, and natural object. It was released in September 2001.
UML 1.5: It was released in March 2003. Various aspects were added to the UML in this version, such as data flow mechanisms, procedures, etc.
UML 1.4.2: It was released in January 2005. At this point of time, UML was adopted as a standard by international standardization organization (ISO).
UML 2.0: It was introduced in August 2005. Various features and aspects were added in the existing diagrams like timing, object package, interaction, etc. Activity and sequence diagrams were also updated with the new features.
UML 2.1: This version released on the date of April 2006. Some difficulties were found in the previous version (2.0), corrections were being made.
UML 2.1.1: 2.1.1 was released on the date of February 2007. Some corrections are done to 2.1, and updated has been introduced in 2.1.
UML 2.1.2: Introduced in November 2007, and in this version previous version was upgraded.
UML 2.2: Released in February 2009. Some of the essential bugs found in 2.1.2 were fixed.
UML 2.3: It was released in May 2010. In this version, 2.2 were refined, and some minor changes were added to the component diagrams.
UML 2.4.1: Introduced in August 2011, the previous version was refined and updated with new features. Some changes in the packages, classes, and stereotypes were made.
UML 2.5: The release date was June 2015. The previous version was updated with some small changes.
NEED for UML
Before starting with the UML, we need to understand the Conceptual Model, which is required in UML. The conceptual model has a great bunch of different kinds of concepts. Before going to model a system, it is necessary to explore the entities and relationships between them.
There are some essential concepts of the object-oriented model, which are very important to learn and understand for UML.
These concepts are as follows:
CLASS: The Real-world is made up of so many things such as people, animals, trees, etc. These things can be grouped and can be further defined as a class. In other words, a class can be introduced as a blueprint of an object. Many similar products and items stored in a group are known as a class. In other languages, class plays a vital role like java.
OBJECT: Objects are described by classes. Objects can be anything around us like a person, a tree, etc. An object can be used to decompose a system into smaller units, which can be helpful to enhance the modularity of the system. An object is also an instance of the class.
INHERITANCE: In this concept, there are two main entities like child class and parent class. The child class inherits the properties and features of the parent class. A parent class can have zero or more child classes. The child-parent relationship can also be represented in a hierarchical structure that provides ease of understanding to everyone.
ABSTRACTION: Abstraction is a mechanism to hide the essential information from the public and explore only the less important details of a particular topic to the public or users. Abstraction hides some part of data from the user and displays it into another part of the data.
POLYMORPHISM: In simple words, “more than one form.” Various objects can respond to the same information in different ways, enabling objects to interact with one another without knowing their type. Polymorphism provides the facility to exist in more than one form.
ENCAPSULATION: In this mechanism, data is bound up together and keeps it as a single unit or component, and this data must be abstract from the outside world.
Object-Oriented Analysis and Design
Object-oriented can be described as an investigation, and to be more specific. It it is the discovery of objects. After that design has come, design means the collaboration of identified objects.
Thus, it is essential to learn and understand Object Oriented analysis and design concepts. It is the most drastic purpose of Object-Oriented analysis is to find objects of a system to be designed or built. This investigation is also done for an existing system. But there is an efficient analysis possible only when we can start thinking in a novel way where objects can be discovered. After that identifying the objects and their relationships, in the last step, the final design is produced.
The goal of Object Oriented analysis and design is described as-
- Objects of a system are identified.
- Their relationships are identified.
- Making a design, transformed into executables with the use of object-oriented language.
Object-oriented concepts can be implemented and executed based on three steps.
Steps can be defined as-
ANALYSIS: During object-oriented analysis, the essential goal is to find objects and accurately discuss them. If these objects are efficiently identified, then the next task of design is not so tough. Responsibilities must be there at the time of the identification of objects. Responsibilities are some of the crucial functions executed through an object. Every object has some responsibility to be featured. When these responsibilities are bound together, the goal of the system is fulfilled.
DESIGN: Object-oriented design is the second and vital step of OO. During the design step, the developers will be more concerned with the requirements and their fulfillment. In this stage, the objects are grouped based on their intended association. The design is supposed to be completed when this association will complete.
Implementation: This step is object-oriented implementation. In this step, the design, which was previously processed via the above two steps (design and analysis) is implemented with the help of object-oriented or OO languages. These languages can be java, c++, etc.