2. Contents
2
Contents Slide No.
Introduction 3-4
Main features/functions/characteristics 5-9
Real World Examples 10-16
SWOT:Advantage 17-18
SWOT:Weaknesses/Potential Problems 19-20
OPTIONAL Part 21-30
References Recommended 31-37
3. 1.1 Introduction(Basics)
UML stands for Unified Modeling Language.
UML is a graphical language for visualizing, specifying, constructing, and documenting the
artifacts of a software-intensive system.
The UML offers a standard way to write a system's blueprints, including conceptual
things such as business processes and system functions
UML is different from the other common programming languages like C++, Java, COBOL etc.
The UML is used to define a software system; to detail the artifacts in the system, to document
and construct
The UML may be used in a variety of ways to support a software development methodology (such
as the Rational Unified Process) - but in itself it does not specify that methodology or process.
Although UML is generally used to model software systems but it is not limited within this
boundary. It is also used to model non software systems as well like 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
3
4. 1.2 Introduction(History)
Object oriented concepts were introduced
much earlier than UML. So at that time
there were no standard methodologies to
organize and consolidate the object
oriented development. At that point of time
UML came into picture.
UML was created by Object Management
Group (OMG) and UML 1.0 specification draft
was proposed to the OMG in January 1997.
In 1997 UML was adopted as a standard by
the Object Management Group (OMG), and
has been managed by this organization ever
since
In 2005 the Unified Modeling Language
was also published by the International
Organization for Standardization (ISO) as
an approved ISO standard.
4
Reference:https://en.wikipedia.org/wiki/Unified_Modeling_Language
5. 2. Main Features
5
Features Description
Classifications of
UML
Behavior diagrams. Includes
behavioral features of a system or
business process. This includes
activity, state machine, and use
case diagrams as well as the four
interaction diagrams.
Structure diagrams. A type of
diagram that depicts the elements
of a specification that are
irrespective of time. This includes
class, composite structure,
component, deployment, object,
and package diagrams
Reference:http://www.sparxsystems.com/uml-tutorial.html
6. Cont’d
6
Types of
Models in
UML
Functional Model
Showcases the functionality of the system from the user's Point of View.
Object Model
Showcases the structure and substructure of the system using objects
Dynamic Model
Showcases the internal behavior of the system.
Most widely
used UML
Diagrams
Use Case Diagram
Class Diagram
Sequence Diagram
Collaboration Diagram
State Diagram
Note:This is only a subset of diagrams … but are most widely used
7. Cont’d
7
Use Case Diagram (core
components)
Actors: A role that a user plays with respect to the system, including
human users and other systems. e.g., inanimate physical objects
(e.g. robot); an external system that needs some information from
the current system.
Use case: A set of scenarios that describing an interaction between a
user and a system, including alternatives
System boundary: rectangle diagram representing the boundary
between the actors and the system.
Reference:http://www.tutorialspoint.com/uml/uml_overview.htm
8. Cont’d
8
Class diagram Used for describing structure and
behavior in the use cases
Provide a conceptual model of the
system in terms of entities and their
relationships
Used for requirement capture, end-user
interaction
Detailed class diagrams are used for
developers
Sequence
Diagram
Sequence diagrams demonstrate the
behavior of objects in a use case by
describing the objects and the messages
they pass.
The horizontal dimension shows the
objects participating in the interaction.
The vertical arrangement of messages
indicates their order.
Reference:http://www.omg.org
9. Cont’d
9
State Diagrams State Diagrams show the sequences of states an object goes
through during its life cycle in response to stimuli, together
with its responses and actions; an abstraction of all possible
behaviors.
Take the example of online shopping system.
Reference:
10. 3.Real World Examples
10
Examples Description
Information system
Handle large amounts of data with complex
relationships, which are stored in relational
or object databases
Technical system Handle control technical equipment such as
telecommunications, military systems, or
industrial processes. They must handle the
special interfaces of the equipment and have
less standard software than Information
system. The are often real-time system.
Embedded real-time systems Execute on simple hardware embedded in
some other equipment such as a mobile
phone, car, household appliance, etc.
11. Cont’d
11
Distributed System Distributed on a number of machines where
data Is transferred easily from one machine
to another. They require synchronized
communication mechanisms to ensure data
integrity and are often built upon object
mechanisms such as CORBA,
COM/DCOM, or Java Beans/RMI
System software Define the technical infrastructure that other
software uses. Operating system. Databases.
Business system Describe the goals, the resources (human,
computers), the rules (laws, business
strategies, policies), and the actual work in
the business
12. 3.1.Real-Time Embedded Systems
12
The UML was designed as a graphical notation for use with object-oriented systems and
applications. Because of its popularity, now it is emerging in the field of embedded systems
design as a modeling language. The UML notation is useful in capturing the requirements,
documenting the structure, decomposing into objects and defining relationships between objects.
It is a notational language that is very useful in modelling the real-time embedded systems.
Like: designing of electromechanical systems that are controlled by multi-processors
Low-Current Sytems Prototyping
Bikes Modeling
Motors Modeling Etc.
Reference:http:/www.engineering.com
13. 3.2.Real-Time Information system
13
Accounts Systems
Business Management Systems
Health Care Systems
Social Networking Systems
Softwares developed for database management
Security systems
Brain Mapping Systems
Reference:http:/www.engineering.com
14. 3.3.Real Time Technical Systems
14
Complicated Technical systems need modeling
Example In Amazon there are Robots not man power for packaging
They used UML for creating prototypes
Like :
Robots
Aircrafts
Rockets are complex technical
Systems designed through
UML
Reference:http:/technoworld.com
15. 3.4.Real Time Distributed systems
15
telephone networks and cellular networks,
computer networks such as the Internet,
wireless sensor networks,
routing algorithms;
World wide web and peer-to-peer networks,
massively multiplayer online games and virtual reality communities,
distributed databases and distributed database management systems,
network file systems,
Reference:http:/www.w7cloud.com
16. 3.4.Real World Applications of UML in Fields
16
Enterprise information systems
Banking and financial services
Telecommunications
Defense
Transportation
Retail
Science and Research
Distributed Web-based services
Agriculture
Reference:http:/engineeringworld.com
17. 4. SWOT: Advantages and Benefits
17
# Advantages Brief explanation
1 Easy to Organize Use case diagrams help to organize the requirements. The
notations for a use case represents a cohesive set of interaction
between the user and the system. By simply referring to a use case
, a complex set of interactions can be accessed easily thereby
simplifying the discussions
2 Reduces
documentation
Use case documents complete the functional requirement. Thus
for the projects using use case diagrams no additional document
needed.
3 Use case diagram is
strength
The ability to show an abstract actor that deals with the common
user is one of the major strength of use case diagrams.
4 Cost Efficient The right decisions are made before you are
given poorly written code. Less overall costs
18. Cont’d
18
5 Easy to Understand UML breaks the complex system into discrete pieces that can be
understood easily
Complex system can be understood by the disparate developers
who are working on different platforms
6 Standards UML is the current standard for programming in object-oriented
programming languages. When creating classes and other objects
with relationships between each other, UML is what is used to
visually describe these relationships. Because it is used as a standard,
it is widely understood and well known. This makes it easy for a new
programmer to step into a project and be productive from day one.
7 Planning Tool UML helps to plan a program before the programming takes place.
In some tools used to model UML, the tool will generate code based
on the classes set up in the model. This can help reduce overhead
during the implementation stage of any program.
Additionally, a UML model diagram is easy to change, whereas
reprogramming a section of code can be tedious and time-
consuming.
19. 5.SWOT:Weaknesses/Potential Problems
19
# Advantages Brief explanation
1 Specification Still no specification for modeling of user interfaces.
2 Poor for distributed systems No way to formally specify serialization and object
persistence. E.g. no way to specify that an object resides on
a server process and shared among instances of a running
process.
3 Synchronizing code with
models is difficult
Using multiple models/diagrams makes it difficult to keep
them consistent with each other and the code and much
code has to be added by hand
4 Unclear Who Benefits UML is not advantageous to software developers, mainly
because software developers work with code, not pictures
or diagrams. UML diagrams may be beneficial to project
managers or executives to illustrate how a software tool
will work, but it might be easier to draw the diagram out on
a whiteboard or piece of paper, rather than take the time to
learn the UML language.
20. Cont’d
20
5 Too Much Emphasis on Design UML places much emphasis on design, which can be
problematic for some developers and companies
Companies cannot solve every problem with a
software tool using a UML diagram -- eventually, they
just have to start coding and testing
6 Time One disadvantage some developers might find when
using UML is the time it takes to manage and maintain
UML diagrams. To work properly, UML diagrams must
be synchronized with the software code, which requires
time to set up and maintain, and adds work to a
software development project. Small companies and
independent developers might not be able to handle the
added amount of work required to synchronize the
code.
21. 6. List of Open Source(Optional)
21
# Source tool Exact Web address
to download that
tool
OPTIONAL: Test tool and provide your evaluation of
this tool
1 ArgoUML
http://argouml.tig
ris.org/
The diagramming features are easy to use and provides
useful assistance in the formatting / aligning process.
The nicer aspects of ArgoUML lie in its design assistance
features.
The design evaluation and checklists provides valuable
help to make sure that your models are well formed. This
will be specifically attractive for people that are learning
UML diagrams or don't use them continuously.
22. Cont’d
22
2 UMLet http://www.umlet.c
om/
UMLet is a UML tool aimed at providing a fast way of
creating UML diagrams. UML elements are modified
using text input instead of pop-up dialogs. Users can easily
tailor UMLet to their modeling needs. UMLet supports a
variety of UML diagram types: class diagrams, use case
diagrams, sequence diagrams, state diagrams, deployment
diagrams, activity diagrams
3 StarUML http://staruml.io/ StarUML supports many shorthands in Quick Edit to
create elements and relationships at once
StarUML is compatible with UML 2.x standard and
supports totally 11 kinds of UML diagrams
4 Umbrello https://umbrello.kd
e.org/
Umbrello UML Modeller is a Unified Modelling
Language (UML) diagram program based on KDE
Technology.
UML allows you to create diagrams of software and other
systems in a standard format to document or design the
structure of your programs.
23. Cont’d
23
www.rational.com Rational Rose By IBM Rational Rose supports an
internal scripting and
extension language
BasicScript. BasicScript is
compliant with the VBA
(Visual Basic for Applications)
language. VBA is considered
to be the standard Microsoft
Windows extension and
scripting language for
applications. Applications like
Microsoft Office, Visio,
AutoCAD for NT, and many
other Windows applications
all use VBA as their extension
language
http://www.borland.com/togethe
r/index.html
TogetherSoft Control Center,
Borland
25. 6.1.(Optional)Why AgroUML?
25
• Systems: platform independent (Java Runtime Environment)
• Exports to: XMI, PNG, SVG, GIF, JPEG, EPS, PS
Supports:
o Class Diagram
o Use Case Diagram
o Sequence Diagram
o Collaboration Diagram
o State Diagram
o Activity Diagram
o Deployment Diagram
• Code generation for: C++, C#, Java, PHP4, PHP5, SQL
• Code reverse engineering (Code to UML): Java, C++, C#, IDL (including relationships)
• Code generation from UML Code to UML Exports to XMI UI a bit crowded, harder for
beginners
Reference: http://argouml.tigris.org/
26. 6.2.(Optional)Why UMLet?
26
• Systems: platform independent (Java Runtime Environment)
• Exports to: PNG, PDF, SVG, JPEG, EPS, BMP
• Supports:
o Class Diagram
o Use Case Diagram
o Interaction Diagram
o State Diagram
o Activity Diagram
o Deployment Diagram
o Context Diagram
o code reverse engineering (Code to UML): Java (only classes, no relationships)
It also works as eclipse plugin no code generation from UML not very user friendlySummary:
This tool offers no functionality which could not also be found in most other UML tools. But it is more difficult to use, so I
would not personally recommend it.
Notes: attributes, operations, etc. cannot be changed via GUI, but via a custom Properties file (which may be edited directly in the
GUI, but you do need to learn the layout of this file, which means reading the documentation)
Reference: http://www.umlet.com/
27. 6.3.(Optional)Why StarUML?
27
Features of StarUML are as follows:
Accurate UML standard model
Open software model format
True MDA support
Excellent extensibility
Software model verification function
Useful Add-Ins
Reference: http://staruml.sourceforge.net
28. 6.4.(Optional)Why Umbrello?
28
Umbrello UML Modeller supports the following types:
Class Diagram
Sequence Diagram
Collaboration Diagram
Use Case Diagram
State Diagram
Activity Diagram
Component Diagram
Deployment Diagram
Entity Relationship Diagram
Reference: http://umbrello.kde.org/
29. 6.5.(Optional)Why Rational Rose?
29
Capture information visually and directly - provides a visual modeling language to improve
creation of database applications.
Evolve database design into the application’s logic - allows you to visualize the database
architecture and how it ties to the application.
Integrate database design with development - unifies the project team by providing common UML
model execution and notation.
Reference: http://www-03.ibm.com/software/products/en/datamodeler
30. 6.6.(Optional)Why TogetherSoft(TCC) ?
30
Togethersoft is a very good product that combines the design and development environment.
But Togethersoft's target is Java, which is unique in this industry, and it does a very good job as
well. I would say, from a pure object modeling point of view.
TCC has an integrated Java development environment.
Togethersoft Control Center isn't just a UML modeling tool. It is a full development platform that
supports the software development process from requirements through testing. It supports bi-
directional updates between UML models and project source, so changes that you make to a
model simultaneously update the corresponding project source (and vice-versa).
It can retro-engineer an existing project from its source which is very handy when you're trying to
understand an undocumented application (which, of course, never happens).
Control Center is built in Java, so it runs under any Java-enabled platform.
TCC has a full-featured editor that is somewhat reminiscent of IntelliJ's IDEA.
Reference: http://codeverge.com/sybase.powerdesigner.general/togethersoft-control-center-
6.0/819005
31. 7. References
31
Topic of articles, papers or
reports
Exact Web address to
download that article
Topics covered
UML Based Object-oriented
Development: Experience with
Inexperienced Developers
https://bib.irb.hr/datoteka/
85049.055_C28.pdf
UML in practise
Development process
Reverse engineering
Experiments with inexperience
developers
Unified Modeling Language
(UML) for Database Systems
and
Computer Applications
http://www.sersc.org/jour
nals/IJDTA/vol5_no1/9.pd
f
UML for database system
Database systems
Uml diagram for DB syatem
Using UML for Automatic
Test Generation
https://www.research.ibm.
com/haifa/projects/verific
ation/mdt/papers/uml4test
gen.pdf
Architecture
The Agedis modelling language
Chooding UML
Target language
Class diagrams
Object diagrams
State diagrams
32. Cont’d
32
UML-Based Integration Testing https://www4.in.tum.de/publ/pa
pers/meisinge00.pdf
Modeling components in UML.
Establishing a Global
Behavioral Model
Test Generation and Execution
Implementatiopn of TnT
Evaluation of example
Software Design Testing Based
on UML Diagrams
http://www.ijarcsse.com/docs/p
apers/Special_Issue/icadet2014/
Lord_38.pdf
The UML
UML Based Software Testing
Related work
Proposed technique
Data extraction from UML
33. 8.1.1 Our Own Conclusion
33
UML amounts to a combination of EER diagrams, statecharts and other diagrammatic notations.
Much of this is useful for conceptual modeling. Some diagrams, however, are appropriate for
software modeling only.
The great contribution of UML is that for the first time ever, there is a modeling standard; this has
led to compatibility and portability of conceptual models.
The great weakness of UML is that it was designed by committee, and some design decisions
were based on political, rather than technical considerations.
Another major weakness of UML is that it is (still largely) informal. Informal models are not
scalable!
Unified Modeling Language - UML.
A modeling language, not a method.
Provides a graphical representation that allows developers and architects to model a software
system before the system is ever built.
Analogy - an architect creating a blueprint before a house or office building is ever built.
34. 8.1.2.Summary
34
The UML does not specify a methodology/process. Therefore, saying ``We use the UML
methodology is incorrect.'‘
Structure Diagram
Class Diagram (shows the static, structural, model elements, mainly classes and types)
Composite Structure Diagram (shows the internal structure and interaction points of a class
or component or use case)
Object Diagram (shows objects and their relationships at a point in time)
Package Diagram (shows the grouping of model elements into packages and the
releationships between packages)
Component Diagram (shows components — e.g., source code, binaries, media — and their
dependencies)
Deployment Diagram (shows the configuration of processing devices and which components
run on them)
35. 8.1.3.Summary
35
Behavior Diagram
Use Case Diagram (shows actors and use cases)
Activity Diagram (shows processes)
State Machine Diagram (shows behavior in terms of state transitions)
Interaction Diagram
Sequence Diagram (shows an interaction by laying out objects across the top and running
their lifelines down the diagram, wit messages exchanged between lifelines to make the
sequence of messages clear)
Communication Diagram (shows an interaction where the layout of objects is arbitrary
and the sequence of messages is shown by numbering them)
Interaction Overview Diagram (groups interaction diagrams into a high level activity
diagram)
Timing Diagram (shows state changes over time)
36. 8.2.1.Our Own Recommendations(Part-A)
36
A)Should companies and businesses invest financial and human resources, deploy and use Unified Modeling Language?
Yes,The good thing about UML is It can model any kind of software(like Linux kernel, open office, any web application, etc)
or only can model a software which uses Object Oriented language(Java, c++, etc).
Only thing is we should decide what kind of modeling methods is used for giant open source projects(Linux kernel, Openoffice.org,
Firefox, Apache http, MySQL, Eclipse, VIM, etc.
Yes,We think modeling is good way to figure out software so, UML need to be used.
Yes,UML is first and foremost a communication tool, it helps you communicate ideas to other people on your team (or to
yourself three months in the future), and as such, should be evaluated based on how easy it can express whatever you have in mind.
Yes,Being language-independent, UML cannot be used to express the expected, idiomatic way to use a given API or module, yet
this is an essential part of the design.
No,Here is a pitfall as well UML cannot easily capture some specific properties of data structures that are relied on by
algorithms
Yes,Finally, languages may have features that are not represented elegantly in UML at all - for instance, Objective Caml module
functors, or closures in any language that has them.
Yes, Engineers use standards for building bridges, so that they do not fall over (at least in developed countries); to ensure that the
purchaser and the supplier mean the same thing when they draw a symbol for a standard bolt; and we use standards in designing
i.e. UML to in the same way.
Yes,For small UML diagrams Gaphor is recommended, and for complex UML tool with a lot of functionality ArgoUML
recommended.Use tools as per the requirements of projects
37. 8.2.2Our Own Recommendations(Part-B)
37
B)Should we (CS/IS Department) recommend Unified Modeling Language for active use in CS/IS curricula, for example, as a
separate DIS or Advanced Topics course?
Yes, A software engineer should know how to choose a right tool for the particular software modeling.
Yes, A software engineer should know UML Modeling Standard.
Yes, A software engineer should have knowledge of all kinds of UML Tools available and their usage.
Yes, UML is being used for fighter aircraft, banks and financial institutions and govt. depts. in developed countries for Information
Modeling, Relational Database Modeling, Function Modeling .
So, people involved in Information Modeling, Relational Database Modeling, Function Modeling and architecting the softwares
of all types should have knowledge in UML
Yes, To represent complex things in simplified manner, UML is primary requirement to learn.
Yes, Learning UML helps promote a deeper understanding of the system, exposing opportunities for simplification and re-use
Manage risk.
Yes, UML is for the communication of the desired structure and behaviour of a system between analysts, architects, developers,
stakeholders and users.
Yes, Learning UML helps visualisation and control of system architecture.
Final words:
As explained in real world examples above all kinds of fields require the usage of UML: Accounts Systems, Business Management
Systems, Health Care Systems, Social Networking Systems, Software's developed for database management, Security systems, Brain
Mapping Systems.