What is UML?

advertisement
The definition and history of creating
the UML
Lection №1
General information about the
discipline
In the autumn semester of 2012-2013 academic year:
 5 lectures;
 6 practical training;
 1 assessment lesson + test;
Rating system of knowledge assessment.
Useful links
 http://sp.susu.ru/ - chair of System
programming
 http://sp.susu.ru/staff/index.html - section
Teacher
 http://ivanovaon.susu.ru/ - Ivanova O.N.
Plan
Literature.
History of the UML.
Principles of object-oriented modeling of
software systems
Literature
1.
2.
3.
4.
5.
6.
7.
Booch G., Rumbaugh J., Jacobson I. The Unified Modeling Language:
Users Guide
Rumbaugh J., Jacobson I., Booch G. The Unified Modeling Language
Reference Manual (2nd Edition)
Quatrani T., Palistrant J, Visual Modeling with IBM Rational Sofrware
Architect and UML
Fowler M. UML Distilled: A Brief Guide to the Standard Object
Modeling Language
Arlow, Jim Neustadt UML 2 and the Unified Process: Practical ObjectOriented Analysis and Design
Jacobson I., Booch G., Rumbaugh J. The Unified Software Development
Process
Larman С. Applying UML and patterns
Booch G., Rumbaugh J., Jacobson I. The Unified
Modeling Language: Users Guide
The book contains reference material,
giving an idea of how you can use UML to
solve a variety of problems of modeling.
The book provides a detailed, step-bystep, describes the process of the
development of software systems on the
basis of this language.
Rumbaugh J., Jacobson I., Booch G. The Unified
Modeling Language Reference Manual (2nd Edition)
This book is a complete guide to language UML. It is
primarily intended for developers, system architects,
project managers, engineers-системщикам,
programmers, analysts, customers, and in General all
those who on a sort of activity has to describe, design
and build complex software systems, and also to
examine in their functioning. The book provides a
comprehensive description of concepts and designs,
UML, including their semantics, notation and purpose.
The material is organized in such a way that the book
was easy to use, despite its volume and completeness
of the content. In addition, the authors tried to further
highlight a number of points, a clear interpretation of
which is not in the standards, as well as explain the
rationale for the adoption of those or other decisions in
the course of the development of language UML.
Quatrani T., Palistrant J, Visual Modeling with IBM
Rational Sofrware Architect and UML
The book is devoted to the instrument
of Rational Software Architect and the
version of the UML 2.0. For example, a
particular system the authors are all
the way from setting the task to
implement the system, introducing the
reader and with the possibilities of the
instrument, and with the possibilities of
the new version of the UML. Along the
way, the authors offer a lot of useful
information about the software
development process, useful methods
of modeling and documentation of
design decisions.
Fowler M. UML Distilled: A Brief Guide to the
Standard Object Modeling Language
The third edition of "UML. Framework" covers
UML 2 version, which is significantly different
from all the previous ones. The main
advantage of the book is a concise and
condensed summary of the essence of UML
and features of application of this language in
the modern software development process.
The book describes all the main types of UML
diagrams, told, for what they are and what
notation are applied in their creation and
reading. This class diagrams, sequence,
objects, packages, deployment, use case,
state, activity, composite structures,
components, review the interaction,
communication and time.
Arlow, J. Neustadt UML 2 and the Unified Process:
Practical Object-Oriented Analysis and Design
The book is a practical guide to the complex process of
object-oriented analysis and design using UML 2. It shows
the place of OO analysis and design in the software
development cycle, as it determines Unified process (UP).
The book contains a lot of practical, powerful and
convenient methods of OO analysis and design, ready for
immediate use. You learn the syntax and semantics of
UML 2 and the relevant aspects of the UP. The book gives
a clear and concise overview of UML and UP from the
point of view of the NGO analyst and designer.
Each Chapter starts with a plan in the form of a chart and
ends with a brief overview, ideal for the control of
mastering of the material. The most important information
issued in the form of notes in the frame. Updated edition
contains more real-life examples and a new section
devoted to the object language limitations (OCL).
Jacobson I., Booch G., Rumbaugh J. The Unified
Software Development Process
The book describes the unified process of
creating complex software systems,
including the use of unified modeling
language UML is a standard method of
visualization, development, documentation
and transfer of artifacts of software
systems, - so and all phases of the
preparation and management of the
process.
Larman С. Applying UML and patterns
The book helps to understand the approach of
evolutionary definition of requirements and
case-law, the simulation of the subject area,
the design on the basis of duties, and also the
most important principles of object-oriented
design and multi-tiered architecture. With the
help of this book you will be able to get
acquainted also with the GoF design patterns
and GRASP, iterative methods, flexible
approach to the use of the unified process and
many other topics.
History of the UML
1975-1988: object-oriented modeling
languages, a new genre of object-oriented
programming languages and increasingly
complex applications
1989-1994: increasing of object-oriented
methods (from fewer then 10 to more than
50), “method wars”. Booch, Jacobson's
OOSE, Rumbaugh's OMT, Fusion, ShlaerMellor, and Coad-Yourdon methods.
History of the UML
1995-2003: Grady Booch (Rational
Software Corporation), Ivar Jacobson
(Objectory), and James Rumbaugh
(General Electric) began to adopt ideas
from each other's methods. UML 0.8 … 1
2004-…: UML 2.0.
Principles of object-oriented
modeling of software systems
 Aims of modeling:
 Models help us to visualize a system as it is or as
we want it to be.
 Models permit us to specify the structure or
behavior of a system.
 Models give us a template that guides us in
constructing a system.
 Models document the decisions we have made.
Principles of object-oriented
modeling of software systems
 Basic principles of modeling:
 The choice of what models to create has a profound
influence on how a problem is attacked and how a solution
is shaped.
 Every model may be expressed at different levels of
precision.
 The best models are connected to reality.
 No single model is sufficient. Every nontrivial system is
best approached through a small set of nearly independent
models.
What is UML?
 The Unified Modeling Language (UML) is a standard language
for writing software blueprints. The UML may be used to
visualize, specify, construct, and document the artifacts of a
software intensive system.
 The UML is only a language and so is just one part of a
software development method.
 Three major elements of model:
 the UML's basic building blocks,
 the rules that dictate how those building blocks may be put
together,
 some common mechanisms that apply throughout the UML.
Building Blocks of the UML
Things (entities)
Relationships
Diagrams
Entites
 Entities are the elements of models.
 All UML entities can be divided into:
 structural entities - nouns UML models, such as class, interface,
cooperation, precedent, the active class, component, unit,
 behavioral entities - verbs UML models, such as interaction, activity,
machines; grouping the essence of the package that is used for grouping
semantically related elements of the model in forming a single whole
modules;
 summary entity - note, which can be added to the model to record
specific information, very much like the sticker.
Structural entities
 Structural entities are the nouns of UML
models. These are the mostly static parts of a
model, representing elements that are either
conceptual or physical.
 Class
 Interface
 Collaboration
 Use case
Relationships in UML
Dependency
Association
Generalization
Realization
Type of relationship
UML syntax
Source – Target
Semantics
Dependency
Source element depends on
the target element and
change last may affect the
first.
Association
Description of the set of
relationships between
objects.
Aggregation
The target element is a part
of the source element.
Composition
Strict (more limited) form of
aggregation/
Type of relationship
UML syntax
Source – Target
Semantics
Inclusion
Source element contains the
target element.
Generalization
The source element is a
specialization of a more
generalized the target
element, and can replace
him.
Realization
The original item is
guaranteed to perform the
contract, a certain target
element.
Diagrams in the UML
 A diagram is the graphical presentation of a set
of elements, most often rendered as a connected
graph of vertices (things) and arcs
(relationships).
 The diagram is not a model!
 The things or relationships can be deleted from
the chart, or even with all the diagrams, but still
they continue to exist in the model.
Diagrams in the UML
 Class diagram
 Object diagram
 Use case diagram
 Sequence diagram
 Collaboration diagram
 Statechart diagram
 Activity diagram
 Component diagram
 Deployment diagram
Class diagrams
 A class diagram shows a set of classes,
interfaces, and collaborations and their
relationships.
 These diagrams are the most common diagram
found in modeling object-oriented systems.
Class diagrams address the static design view of
a system. Class diagrams that include active
classes address the static process view of a
system.
Object diagram
 An object diagram shows a set of objects and
their relationships. Object diagrams represent
static snapshots of instances of the things found
in class diagrams. These diagrams address the
static design view or static process view of a
system as do class diagrams, but from the
perspective of real or prototypical cases.
Use case diagram
 A use case diagram shows a set of use cases and
actors (a special kind of class) and their
relationships. Use case diagrams address the
static use case view of a system. These
diagrams are especially important in organizing
and modeling the behaviors of a system.
Sequence and collaboration
diagrams
 Both sequence diagrams and collaboration diagrams are
kinds of interaction diagrams. An shows an interaction,
consisting of a set of objects and their relationships,
including the messages that may be dispatched among
them. Interaction diagrams address the dynamic view of a
system.
 A sequence diagram is an interaction diagram that
emphasizes the time-ordering of messages; a collaboration
diagram is an interaction diagram that emphasizes the
structural organization of the objects that send and receive
messages. Sequence diagrams and collaboration diagrams
are isomorphic, meaning that you can take one and
transform it into the other.
Statechart diagrams
 A statechart diagram shows a state machine,
consisting of states, transitions, events, and
activities. Statechart diagrams address the
dynamic view of a system. They are especially
important in modeling the behavior of an
interface, class, or collaboration and emphasize
the event-ordered behavior of an object, which
is especially useful in modeling reactive
systems.
Activity diagram
 An activity diagram is a special kind of a
statechart diagram that shows the flow from
activity to activity within a system. Activity
diagrams address the dynamic view of a system.
They are especially important in modeling the
function of a system and emphasize the flow of
control among objects.
Component diagram
 A component diagram shows the organizations
and dependencies among a set of components.
Component diagrams address the static
implementation view of a system. They are
related to class diagrams in that a component
typically maps to one or more classes,
interfaces, or collaborations.
Deployment diagram
 A deployment diagram shows the configuration
of run-time processing nodes and the
components that live on them. Deployment
diagrams address the static deployment view of
an architecture. They are related to component
diagrams in that a node typically encloses one
or more components.
Download