Wednesday, April 4, 2007

Introduction to the Unified Modeling Language

You can construct a house using a load of bricks, nails and other hardware. Yet, to construct a good house, you need to have a planned approach with an estimate and blueprint of how you want your house or building to appear. Architects use blueprints to communicate requirements by expressing your expectations in the form of pictures. These models form the basis upon which the entire house is built. These models also act as a control mechanism to check if you are sticking to plans even mid-way during the process of constructing your house.

Likewise, dishing out lines of code is not just enough to build a software application. Yes, you need to build or construct your application. Initially, you need to come up with models that describe the actions and interactions of the system. You also need to specify the internal functioning of the system so that you can change it as necessary to make it more usable for the end user.

Software professionals borrowed the concept of modeling from the engineering community to enhance the software development process.

One of the definitions of the word 'model' according to Dictionary.com is
A representation, generally in miniature, to show the construction or appearance of something.

Models are used to capture and specify the requirements to enhance the ease of understanding for all the parties involved to arrive at an agreement. Engineers construct models of houses and the clients accept or request for changes in the model to avoid problems of failure due to customer dissatisfaction. Architects use models to experiment with possible designs with an aim to innovate while decreasing costs to the optimum. Scientists often use models to master complex systems to clearly explain to everyone and take action on improving the system regardless of the complexity of the system.

Unified Modeling Language

Object Management Group (OMG) is an industry-recognized standardization organization that worked in collaboration with Rational Software Corporation to create the Unified Modeling Language. UML brings together the information systems and technology industry's best engineering practices.

Software blueprints can be written and constructed using Unified Modeling Language. UML is a visual language for modeling and communicating about systems through the use of diagrams and supporting text.

Programmers think and code as soon as the need for the implementation of an idea arises. While writing codes of line is the best way to model, this is not always easily understood by everyone. In object oriented languages, it is difficult for others to understand the classes and their attributes just by looking at the code. Only the developer of the code has an understanding of the classes. UML serves as a common language to aid understanding of the complex classes even to the new members of the team.

UML is a combination of graphical interpretation with well-defined semantics to ensure that different people can interpret the model unambiguously.

UML models can be directly used for construction by connecting to a variety of programming languages. While graphical expression is done using UML, textual expression is done using the various programming languages.

Finally, UML also acts as a source of documenting the various artifacts of the software development process such as - architecture, design, project plans, tests, prototypes, and releases.

Goals of UML

  • UML is intended to be used as a general-purpose language for modeling purposes using object oriented techniques.
  • It is intended to solve issues related to software development such as large scale, distribution, concurrency, and team development.
  • It is aimed to support in the process of software development process by simplifying things while remaining practical.

Simply put, UML is an implementation-independent language to be used regardless of any specific implementation technologies such as Java or .NET.



References:
  • Learning UML
    By
    Sinan Si Alhir
    Publisher : O'Reilly
  • The Unified Modeling Language Reference Model
    By
    James Rumbaugh
    Ivar Jacobson
    Grady Booch
    Publisher: Addison-Wesley