Chapter 3 - Introduction To UML

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

CHAPTER THREE

BASICS OF UML AND UML CASE TOOLS

3.1. BASICS OF UML

UML (Unified Modeling Language) is a standard language for specifying, visualizing,


constructing, and documenting the artifacts of software systems. UML was created by the Object
Management Group (OMG) and UML 1.0 specification draft was proposed to the OMG in
January 1997. It was initially started to capture the behavior of complex software and non-
software system and now it has become an OMG standard. This tutorial gives a complete
understanding on UML. To learn UML No specific skill is required as a prerequisite to
understand the learning material in this tutorial. The reader must be enthusiastic to acquire
knowledge on UML.

OMG is continuously making efforts to create a truly industry standard.


• UML stands for Unified Modeling Language.
• UML is different from the other common programming languages such as C++, Java,
COBOL, etc.
• UML is a pictorial language used to make software blueprints.
• UML can be described as a general-purpose visual modeling language to visualize,
specify, construct, and document software system.
• Although UML is generally used to model software systems, it is not limited within this
boundary. It is also used to model non-software systems as well. For example, the process
flow in a manufacturing unit, etc.

UML is not a programming language but tools can be used to generate code in various languages
using UML diagrams. UML has a direct relation with object-oriented analysis and design. After
some standardization, UML has become an OMG standard.

UML is controlled by the Object Management Group (OMG) and is the industry standard for
graphically describing software.
− A language whose vocabulary and rules focus on the conceptual and physical
representation of a system.
− UML defines structural and behavioral things and diagrams.
− UML is the language of blueprints for software.
OOSAD by: Sinodos G. Chapter 3 1|Page
− It is a graphical language for visualizing, specifying, documenting, constructing
models that are precise, unambiguous, and complete and possibly to be mapped
into a programming language
− It is intended for software-intensive systems

UML has been chosen as the basis for the notation and semantics in Real-time
Perspective because:
− It is fast becoming an industry standard, and has the support of most major
methodologists and methodology companies Standardized notation without
sacrificing specialized model data.
− It is a common language that can be used from product conception to delivery, from
system to detailed design levels. UML offers all of the major object-oriented
techniques including use cases, Class Diagrams, Object Sequence Diagrams etc.
− Reduced learning curve across projects
− Increased domain and design model reuse
− Increased customer involvement /understanding of problem translation to product
solution

UML is not a method or methodology (Method = Notation (E.g., UML) + Process). It is just a
notation. UML does not dictate a particular process; it can be used to record the resulting domain
and design models, independent of the process.

3.2. Goals of UML


A picture is worth a thousand words, this idiom absolutely fits describing UML. Object-oriented
concepts were introduced much earlier than UML. At that point of time, there were no standard
methodologies to organize and consolidate the object-oriented development. It was then that UML
came into picture.

There are a number of goals for developing UML but the most important is to define some general-
purpose modeling language, which all modelers can use and it also needs to be made simple to
understand and use.

UML diagrams are not only made for developers but also for business users, common people, and
anybody interested to understand the system. The system can be a software or non-software
system. Thus, it must be clear that UML is not a development method rather it accompanies with
OOSAD by: Sinodos G. Chapter 3 2|Page
processes to make it a successful system. In conclusion, the goal of UML can be defined as a
simple modeling mechanism to model all possible practical systems in today’s complex
environment.

3.2.1. The Need for Standardization


− There are many methods and notations competing with each other that users are
distracted by the decisions they need to make.
− Existing methods are already converging since these methods pick up ideas from
other sources.
− A single, common language is desirable because it can be used for all development
methods, used throughout the project lifecycle, and used for different application
technologies.

3.2.2. The Unification


− Based on the fact that differences between the various methods were becoming smaller.
− The method wars did not move OOT any longer.
− Jim Rumbaugh and Grady Booch decided at the end of 1994 to unify their work
within a single method: the Unified Method.
➢ Definition of a universal language for O-O modeling
➢ Unified Method 0.8 Oct. 1995

− A year later they were joined by Ivar Jacobson and the Unified Method was
transformed into UML- the Unified Modeling Language

3.2.3. OO Analysis and Design


There are three basic steps where the OO concepts are applied and implemented. The steps
can be defined as:
- OO Analysis → OO Design → OO implementation using OO languages

• OO Analysis,
− during the OO analysis the most important purpose is to identify objects and
describe them in a proper way. If these objects are identified efficiently, then the
next job of design is easy. The objects should be identified with responsibilities.
Responsibilities are the functions performed by the object. Each and every object

OOSAD by: Sinodos G. Chapter 3 3|Page


has some type of responsibilities to be performed. When these responsibilities are
collaborated, the purpose of the system is fulfilled.
• OO Design
− During this phase, emphasis is placed on the requirements and their fulfilment. In
this stage, the objects are collaborated according to their intended association.
After the association is complete, the design is also complete.

• OO Implementation: -
− In this phase, the design is implemented using OO languages such as Java, C++,
etc.

3.2.4. Role of UML in OO Design


UML is a modeling language used to model software and non-software systems. Most of the UML
diagrams are used to model different aspects such as static, dynamic, etc. Now whatever be the
aspect, the artifacts are nothing but objects.

The relation between OO design and UML is very important to understand. The OO design is
transformed into UML diagrams according to the requirement. Before understanding the UML in
detail, the OO concept should be learned properly. Once the OO analysis and design is done, the
next step is very easy. The input from OO analysis and design is the input to UML diagrams.

3.3. Building Blocks of UML


A conceptual model can be defined as a model which is made of concepts and their
relationships. A conceptual model is the first step before drawing a UML diagram. It helps to
understand the entities in the real world and how they interact with each other. The conceptual
model of UML can be mastered by learning the following three major elements: -
• UML building blocks
• Rules to connect the building blocks
• Common mechanisms of UML

The building blocks of UML can be defined as −


− Things
− Relationships
− Diagrams

OOSAD by: Sinodos G. Chapter 3 4|Page


3.3.1. Things
Things are the most important building blocks of UML. Things can be −
• Structural
• Behavioral
• Grouping
• A notational

A. Structural Things
− define the static part of the model. They represent the physical and conceptual elements.
Following are the brief descriptions of the structural things.
− Example:
• a Class structure, t h e interface structure,
• T h e collaboration, use case, active class, component, and a node

B. Behavioral Things: -
− It consists of the dynamic parts of UML models. Following are the behavioral
things
− Includes the dynamic, represent behavior over time and space
− Example: Interaction, State machine
C. Grouping things –
− defined as a mechanism to group elements of a UML model together. There is only one grouping
thing available

− Example: Package − Package is the only one grouping thing available for gathering structural and
behavioral things.
D. Annotational thing –
− Refer to the explanatory parts of UML
− defined as a mechanism to capture remarks, descriptions, and comments of UML
model elements. Note - It is the only one Annotational thing available.
− A note is used to render comments, constraints, etc. of an UML element.

3.3.2. Relationships
− tie things together
− It shows how the elements are associated with each other and this association
describes the functionality of an application.
− There are four kinds of relationships available.

OOSAD by: Sinodos G. Chapter 3 5|Page


Dependency: a relationship b/n two things in which change in one element also affects the other.
Example: car uses fuel
Association: basically, a set of links that connects the elements of a UML model. It also
describes how many objects are taking part in that relationship.

Generalization: Generalization can be defined as a relationship which connects a specialized


element with a generalized element. It basically describes the inheritance relationship in the
world of objects.

Realization: Realization can be defined as a relationship in which two elements are connected.
One element describes some responsibility, which is not implemented and the other one
implements them. This relationship exists in case of interfaces.

3.3.3. Diagrams
The graphical representation of a set of elements called a diagram. It Help to visualize a system
from different perspectives. The UML Diagram is composed of many model elements that
represent the different parts of a software system. The UML elements are used to create diagrams,
which represent a certain part, or a point of view of the system. The following types of diagrams
are supported by UML

• Use Case Diagrams


− show actors (people or other users of the system), use cases (the scenarios when they
use the system), and their relationships
− it shows system's users (also known as actors) and their interactions with the system
− represents the scope of your system
• Package diagram
− shows the arrangement and organization of model elements in middle to large scale
project. It can show both structure and dependencies between sub-systems or
modules, showing different views of a system
• Class Diagrams
− show classes and the relationships between them
OOSAD by: Sinodos G. Chapter 3 6|Page
− Shows the static structure of a system
• Sequence Diagrams
− show objects and a sequence of method calls they make to other objects.
• Collaboration Diagrams
− show objects and their relationship, putting emphasis on the objects that participate
in the message exchange
• Interaction Diagrams
➢ State Diagrams
− show states, state changes and events in an object or a part of the system
➢ Activity Diagrams
− show activities and the changes from one activity to another with the events
occurring in some part of the system
• Component Diagrams
− show the high-level programming components (such as KParts or Java Beans).
• Deployment Diagrams
− show the instances of the components and their relationships.
• Entity Relationship Diagrams
− show data and the relationships and constraints between the data.

3.4. UML CASE Tools


There exist several CASE Tools supporting Object Oriented modeling with UML.
Benefits of UML CASE tools
1. tools offer benefits to everyone involved in a project:
a. analysts can capture requirements with use case model
b. designers can produce models that capture interactions between objects
c. developers can quickly turn the model into a working application

2. UML case tool, plus a methodology, plus empowered resources enable the
development of the right software solution, faster and cheaper

Tools vary with respect to:


1. UML modelling capabilities
2. project life-cycle support
3. forward and reverse engineering

OOSAD by: Sinodos G. Chapter 3 7|Page


4. data modelling
5. performance
6. price
7. supportability
8. easy of use

Different Criteria for evaluating CASE tools:


1. repository support
2. round-trip engineering
3. HTML documentation
4. UML support
5. data modelling integration
6. versioning
7. model navigation
8. printing support
9. diagrams views
10. exporting diagrams
11. platform

Different UML tools

A. Enterprise Architect
The perfect enterprise-wide solution to visualize, analyses, model, test and maintain all of
your systems, software, processes and architectures. Enterprise Architect is the ideal platform
to help you to stay in control of your workspace, support your colleagues and team, enable
collaboration and build confidence within your most complex projects.
• organization: Sparx Systems
• web-site: http://www.sparxsystems.com.au/

OOSAD by: Sinodos G. Chapter 3 8|Page


Enterprise Architect's built-in requirements management features can be used to:
• Define an organized, hierarchical requirements model
• Trace the implementation of system requirements to model elements
• Search and report on requirements
• Perform impact analysis of proposed changes to requirements

OOSAD by: Sinodos G. Chapter 3 9|Page


B. MagicDraw
• organization: No Magic Inc.
• web-site: http://www.nomagic.com/

C. Poseidon
Bridge Requirements
• is only supported on Microsoft Windows.
• requires the tool to be installed to access its SDK.
− organization: Gentleware
− web-site: http://www.gentleware.com/

OOSAD by: Sinodos Chapter 3 10 | P a g e


D. Rational Rose
• organization: IBM
• web-site: http://www-306.ibm.com/software/rational/

E. Star UML
− A sophisticated software modeler for agile and concise modeling

The main targets of users are:


− Agile and small development teams
− Professional persons
− Educational institutes

Futures of Star UML


− Compatible with UML 2.x standard metamodel and diagrams:
− Class, Object, Use Case, Component, Deployment, Composite Structure, Sequence,
Communication, Statechart, Activity, Timing, Interaction Overflow, Information Flow and
Profile Diagram.
− Support to create Entity-Relationship Diagrams (ERD), Data-flow Diagrams (DFD) and
Flowchart Diagrams.
− Work with same UX in multiple platforms including MacOS, Windows and Linux.
− Diagrams can be exported to PDF for clean printing with printing options like page layout
and sizes.
− You can define your own UML Profile with stereotypes. Each stereotype can have custom
icons.

OOSAD by: Sinodos Chapter 3 11 | P a g e


F. Microsoft Visio
− a popular chart and visualization software. It belongs to the office family, so it can easily
be integrated with other Microsoft office products.

− Visio helps you to create professional diagrams by creating flowcharts, diagrams, org
charts, engineering designs, and more.
− Comprehensive software for professional modeling.
− It is a useful data, process, and engineering modeling tool
− Allows you to build professional-looking diagrams
− Allows you to connect flowcharts and diagrams to real-time data.
− It allows you to work together on diagrams from a web browser, from almost anywhere.
− Offers pre-built templates for Brochures, Budgets, Calendars, Cards, Certificates,
Decoration, Education, Flyers, Health, fitness, Invitations and LettersSupports JPEG, PNG,
PDF and DOC file formats
− Supported Platforms: Android, Windows and iOS

G. Visual Modeling Software

− Microfocus is a visual modeling tool that allows business and software development to
analyze and design software architecture.
− This platform offers you to model enterprise architectures in such a way that requirements,
architectures, and code are always in sync
− Offers Model-driven Architecture and data modeling systems
− Live source technology feature allows you to use programming language source code to
manage elements and eliminate unnecessary work
− Offers pre-built templates for Design and Report
− Seamlessly integrates with Kubernetes, Microsoft Teams, LoadRunner, Git, IBM and Jira
− It provides multiple diagram options cloud storage

OOSAD by: Sinodos Chapter 3 12 | P a g e

You might also like