Unified Modeling Language - People



Unified Modeling Language

Overview:

Unified Modeling Language, UML for short, is the international standard notation for Object-Oriented Analysis and Design (OOAD). It is a standardized specialization language that can be used for Object Modeling. It has been defined by the Object Management Group (OMG) and has already become the de-facto standard for designing Object-Oriented Software Applications. In the field of software engineering, the UML is a standardized specification language for object modeling. UML is a general-purpose modeling language that includes a graphical notation used to create an abstract model of a system, referred to as a UML Model.

Introduction to UML:

According to the OMG specification, "The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. UML offers a standard way to write a system's blueprints, including conceptual things, such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components."

The UML is purely process independent, i.e., it is not tied up with a SDLC (Software development life cycle) process. The basic purpose behind UML modeling is visualizing, constructing, specifying and documenting a system. It should be noted that UML is a standard; it is not a methodology, process or a procedure. Rather, we use UML as a standard that uses some predefined standard notations with a view to modeling and defining a software system, to document it and define the artifacts involved.

UML is not restricted to modeling software. UML is also used for business process modeling, systems engineering modeling and representing organizational structures. UML has been a catalyst for the evolution of model-driven technologies, which include Model Driven Development (MDD), Model Driven Engineering (MDE), and Model Driven Architecture (MDA).

Goals of UML:

The UML was invented primarily to address the challenges faced in the design and architecture of complex systems. The basic objectives or goals behind UML modeling are:

• Define an easy to use and visual modeling language for modeling a system's structure

• Provide extensibility

• Be language and platform independent so that it can be used for modeling a system irrespective of the language and platform in which the system is designed and implemented

• Incorporate the best possible practices at par with the industry standards

• Provide support for Object Orientation, design and apply frameworks and patterns

UML Diagrams:

In UML there are various models that define the notation and semantics for a wide variety of domains. The UML models depict how the classes and objects in a system interact with one another. UML diagrams are used to provide a graphical representation of the system being modeled. UML 2.0 defines thirteen diagrams that are broadly classified into three categories with each category containing one or more diagrams that fall under that category. These categories are:

1) The Structural Diagrams

The Structural Diagrams relate to the static structure of a system, i.e., they represent elements that are static in nature. These diagrams are fundamental to the UML modeling of a system and portray the static structure of the system as a whole. The Structural Diagrams are comprised of the following:

• The Class diagram

• The Component diagram

• The Composite Structure diagram

• The Deployment diagram

• The Object diagram

• The Package diagram

2) The Behavioral Diagrams

The Behavioral Diagrams model how the system functions. These comprise of:

• Use Case Diagram

• Activity Diagram

• State Machine Diagram

3) The Interaction Diagrams

These diagrams represent how flow of data and control takes place in the system that is being modeled. They are a subset of the Behavioral Diagrams. These include:

• Communication Diagram

• Sequence Diagram

• UML Timing Diagram

• Interaction Overview Diagram

UML Modeling:

The basic purpose behind UML modeling is visualizing, constructing, specifying and documenting a system. UML is a modeling language and a universally accepted standard used to provide a structure to the entire system, manage complexities of the system and cut down on the development costs. However, most of the software projects developed around the globe do not follow any specific modeling technique to avoid the perceived risk and complexity in Object Oriented modeling of large systems. The semantics defined in the language are based on the software systems; they do not have complete support for systems of other domains. Moreover, the UML is still incomplete in its support for components. "While modeling software is useful, it will not solve all design issues. Smart people and a good methodology are a must. But if used correctly, UML and the modeling process can help improve quality, completeness, and scalability and reduce production time in many software projects."

The Building Blocks of UML Modeling:

The three major building blocks of UML are:

1.      The Elements of the model

2.      The Associations between the elements of the model

3.      The UML Diagrams

The basic elements of an UML model are the classes, the interfaces and the components. A class may be defined as a self contained unit that encapsulates a collection of data and methods that operate on the data resulting on an isolation of the contents of this encapsulated from any external interface. An interface is a contract which can be used to define a protocol of behavior. It can be implemented by any class anywhere in the class hierarchy.

UML Modeling Tools:

• Rational Rose: supports UML 1.x

• JUDE: JUDE is a unique UML modeling tool which supports object-oriented software design in Java combined with Mind Map.

• GDpro 5.0

The highlights of UML 2.0 functionality:

1) The new developments in UML 2.0 can be grouped into the following categories:

2) A significantly increased degree of precision in the definition of the language.

3) An improved language organization

4) Significant improvements in the ability to model large-scale software systems

5) Improved support for domain-specific specialization

6) Overall consolidation, rationalization, and clarifications of various modeling concepts

7) Nested Classifiers: In UML, almost every model building block you work with (classes, objects, components, behaviors such as activities and state machines, and more) is a classifier. In UML 2.0, you can nest a set of classes inside the component that manages them, or embed a behavior (such as a state machine) inside the class or component that implements it. This capability also lets you build up complex behaviors from simpler ones, the capability that defines the Interaction Overview Diagram.

8) Improved Behavioral Modeling: In UML 1.X, the different behavioral models were independent, but in UML 2.0, they all derive from a fundamental definition of a behavior.

9) Improved relationship between Structural and Behavioral Models: UML 2.0 lets you designate that a behavior represented by (for example) a State Machine or Sequence Diagram is the behavior of a class or a component. 

That is, the new language goes well beyond the Classes and Objects well-modeled by UML 1.X to add the capability to represent not only behavioral models, but also architectural models, business process and rules, and other models used in many different parts of computing and even non-computing disciplines. 

During the upgrade process, several additions to the language were incorporated into it, including the Object Constraint Language (OCL) and Action Semantics. 

Conclusion:

The Unified Modeling Language is an internationally accepted standard that is used for Object Oriented Modeling and can be used to represent a model that adopts the best software engineering practices.

References:

• Grady Booch, et al: The Unified Modeling Language User Guide, Addison-Wesley 

• James Rumbaugh, et al: The Unified Modeling Language Reference Manual,  Addison-Wesley

• The UML Center – UML Information, UML Events, Articles and Publications, Industry Links, UML Tools.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download