Funding for 'IT Lab' Project, Phase 1: Progress of sticker sales. Purchase a sticker to help us reach our target.Updated: 2010-02-28 11:53
10.7%
Introduction to UML

By Anupama Weerabahu

After a short break, we are back with the Business Analysis article in your favourite Free Online IT Magazine, the DiGIT. Today we will get an introduction to UML, which used extensively for systems modeling.

What is UML?

Unified Modeling Language (UML) is a standardized general-purpose modeling language, which is managed, and was created by, the Object Management Group. This is a well-liked and widely accepted standard in the field of software systems engineering. In fact UML has the capabilities to be applied to the design of hardware systems too. This also promises an easy path to hardware/software co-design. Nevertheless this is still not been popular as UML for software.

UML includes a set of graphical notation techniques to create visual models of software-intensive systems. UML follows the object oriented concepts and methodology. So object oriented systems are generally modeled using this pictorial language. Eventually, these diagrams help all the parties involved in the software product life cycle to understand the system in terms of the structure and the behaviour of the system.

UML Diagrams

Diagrams are the heart of UML. These diagrams are broadly categorized as structural and behavioural diagrams. The static and dynamic nature of a system is visualized by using these diagrams.Structural diagrams are consists of static diagrams like class diagram, object diagram where they depicts the static view of the system. Behavioral diagrams are consists of dynamic diagrams like sequence diagram, collaboration diagram etc, which depicts the behavior of the system.

There are 8 types of diagrams in UML which are used to represent the system in different perspectives.

  • Use case diagrams
  • Class diagrams
  • Object diagrams
  • Component diagrams
  • Deployment diagrams
  • <Interaction diagrams
  • Statechart diagrams
  • Activity diagrams

Lets us now identify the available types of diagrams in UML. Some of these might be used by the Business Analysts extensively for requirements elicitation, analysis and modeling.

Use Case Diagram;

  • Use case diagram is used to capture the dynamic nature or the behaviour of a system. It consists of use cases, actors and their relationships.
  • Use case diagram is used at a high level design to capture the requirements of a system. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases.
  • As an organizing mechanism, a set of consistent, coherent use cases promotes a useful picture of system behavior, a common understanding between the customer/owner/user and the development team. Thus use case diagrams are used heavily by the Business Analysts during the analysis stage and to gather the requirements.
  • Although the use case diagrams are not a good candidate for forward and reverse engineering but still they are used in a slightly differently way to model it.
  • In-depth discussion of Use cases and its applicability in System Modeling will be presented in the next Business Analysis article.

Class diagrams:

  • Class diagrams are the most popular UML diagrams used by the object oriented community. It describes the objects in a system and their relationships.
  • Class diagram is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, and the relationships between the classes.
  • A single class diagram describes a specific aspect of the system and the collection of class diagrams represents the whole system.
  • Class diagrams are the only UML diagrams which can be mapped directly with object oriented languages. So it is widely used by the developer community.

Object Diagram:

  • An object diagram is an instance of a class diagram and it focuses on some particular set of object instances and attributes and the links between the instances. So the basic elements are similar to a class diagram. Object diagrams are consists of objects and links.
  • It captures the instance of the system at a particular moment.
  • A correlated set of object diagrams provides insight into how an arbitrary view of a system is expected to evolve over time.
  • Object diagrams are more concrete than class diagrams, and are often used to provide examples, or act as test cases for the class diagrams.
  • Object diagrams are used for prototyping, reverse engineering and modeling practical scenarios.

Component Diagram:

  • Component diagrams are special kind of UML diagram to describe static implementation view of a system. It depicts how components are wired together to form larger components and or software systems.
  • Component diagrams consist of physical components like libraries, files, folders etc.
  • This diagram is used from implementation perspective. More than one component diagrams are used to represent the entire system.
  • Forward and reverse engineering techniques are used to make executables from component diagrams.

Deployment Diagram:

  • Component diagrams are used to describe the static deployment view of a system and serves to model the physical deployment of artifacts on deployment targets. These diagrams are mainly used by system engineers, where as deployment diagrams consist of nodes and their relationships.
  • An efficient deployment diagram is an integral part of software application development.

Interaction Diagram

  • Interaction diagrams are used for capturing dynamic nature of a system. Sequence and collaboration diagrams are the interaction diagrams used for this purpose.
  • Sequence diagrams are used to capture time ordering of message flow and collaboration diagrams are used to understand the structural organization of the system.
  • Typically, an interaction diagram captures the behaviour of a single case by showing the collaboration of the objects in the system to accomplish the task.  These diagrams show objects in the system and the messages that are passed between them.
  • Generally a set of sequence and collaboration diagrams are used to model an entire system.

Statechart Diagram

  • Statechart diagrams are one of the five diagrams used for modeling dynamic nature of a system. These diagrams are used to model the entire life cycle of an object. Activity diagram is a special kind of Statechart diagram.
  • State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction
  • State of an object is defined as the condition where an object resides for a particular time and the object again moves to other states when some events occur. Each diagram usually represents objects of a single class and track the different states of its objects through the system.
  • Statechart diagrams are also used for forward and reverse engineering.

Activity Diagram

  • Activity diagram is another important diagram to describe dynamic behaviour. Activity diagram consists of activities, links, relationships etc.
  • It is the technique for showing workflows of stepwise activities and actions, with support for choice, iteration and concurrency. Activity diagram shows the overall flow of control and describes the flow control from one activity to another without any messages.
  • These diagrams are used to model high level view of business requirements and are typically used for business process modeling. They consist of:
     Initial node.
    Activity final node.
    Activities
  • hese diagrams will be used b y Business Analysts heavily, in the requirements gathering and analysis phases.

Why opt for UML or why not?

There are advantages and limitations in everything and this is the same for UML too. Here I would like to point out some advantages and disadvantages that I see in using UML for software development projects.

The UML diagrams are designed in such a way that they can be used for strong communication. UML is useful if the team is working in a distributed development team, or there is high level of interaction with a customer's development team, because then UML can be used to specify system contracts and to establish better communication.

UML provides the standard. If we do not have a standard for the software development, it is very likely that final product will be riddled with problems. When a team uses a specific standard, they will have high levels of communication and UML is a tool that can allow us to maintain this standard.

Beside these advantages, UML lacks support for database modelling and also UML is not very strong for GUI stuff.

Previous Article

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options