Professional Documents
Culture Documents
Introduction
Importance of Modeling
A model is a simplification of reality.
Why do we model?
We build model, so that we can better understand the system, we are
developing.
Through modeling, we can achieve four aims:
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 system.
Models give us a template that guides us in constructing a system.
Models document the decisions we have made.
Shashank Mouli Satapathy
Introduction
UML
UML
The Unified Modeling Language (UML) is a family of graphical notations, backed by single meta-model, that help in describing and
designing software systems, particularly software systems built using the object-oriented (OO) style .
The Unified Modeling Language (UML) is a graphical language for
creating diagrams that are useful in the software development process.
The UML provides a set of standard graphical symbols and the rules
for combining them.
The Unified Modeling Language has quickly become the de-facto
standard for building Object-Oriented software.
Shashank Mouli Satapathy
Introduction
OMG
OMG
Introduction
Definition
Definition
Introduction
Definition
Definition(Contd..)
UML is a language for Visualizing : The UML is much more
than just a bunch of graphical symbols. Rather, behind each symbol
in UML notation, there is a well defined semantics available.
UML is a language for Specifying : Specifying means building models that are precise, unambiguous and complete. UML addresses the specification of all important analysis, design and implementation decisions that must be made in developing and deploying
a s/w system.
UML is a language for Constructing : UML is not visual
programming language, but its models can be directly connected to
a variety of programming language. This means that it is possible to
map from a model in UML to a programming language (like JAVA,
C++ etc).
Shashank Mouli Satapathy
Introduction
Definition
Definition(Contd..)
UML is a language for Documenting :
Requirements
Architecture
Design
Source code
Project Plans
Test
Prototype
Releases
Introduction
Application Areas
Conceptual Model
Conceptual Model
10
Conceptual Model
Things
Things are the most important building blocks of UML. Things can be:
Structural
Behavioral
Grouping
Annotational
11
Conceptual Model
Things
Structural Things
The Structural things define the static part of the model.
They represent physical and conceptual elements.
The various structural things are :
Class : It is a set of objects that share the same attributes, operations, relationship and semantics.
12
Conceptual Model
Things
Structural Things(Contd..)
Collaboration : A larger pattern of behaviors and actions. Example: All classes and behaviors that create the modeling of a moving
tank in a simulation.
13
Conceptual Model
Things
Structural Things(Contd..)
Active Class : Like a class but its represents behavior that runs
concurrent with other behaviors, i.e. threading.
14
Conceptual Model
Things
Behavioural Things
A behavioral thing consists of the dynamic parts of UML models.
The two types of behavioral things are :
Interaction : A behavior made up of a set of messages exchanged
among a set of objects in a particular context to accomplish a specific purpose.
15
Conceptual Model
Things
Grouping Things
16
Conceptual Model
Things
Annotational Things
Annotational things can be defined as a mechanism to capture remarks, descriptions, and comments of UML model elements.
There is only one annotational thing available :
Note : It is used to render comments, constraints etc of an UML
element.
17
Conceptual Model
Relationship
Relationship
It is another most important building block of UML. It shows how
elements are associated with each other and this association describes the functionality of an application.
There are four kinds of relationships available :
Dependency : A semantic relationship in which a change on one
thing (the independent thing) may cause changes in the other thing
(the dependent thing).
18
Conceptual Model
Relationship
Relationship(Contd..)
19
Conceptual Model
Relationship
Relationship(Contd..)
Generalization : Simply put this describes the relationship of a
parent class (generalization) to its subclasses (specializations).
20
Conceptual Model
Diagrams
Diagrams
21
Conceptual Model
Diagrams
UML Diagrams(Contd..)
UML 1.x includes the following NINE diagrams :
1
Activity Diagram
Class Diagram
Statechart Diagram
Sequence Diagram
Collaboration Diagram
Component Diagram
Deployment Diagram
Object Diagram
22
Conceptual Model
Diagrams
UML 2.x
UML has matured significantly since UML 1.1. Several minor revisions (UML 1.3, 1.4, and 1.5) fixed shortcomings and bugs with the
first version of UML, followed by the UML 2.0 major revision that
was adopted by the OMG in 2005.
UML versions 2.1.1 and 2.1.2 appeared in 2007, followed by UML
2.2 in February 2009. UML 2.3 was formally released in May 2010.
UML 2.4.1 was formally released in August 2011. UML 2.5 was
released in October 2012 as an In process version and has yet to
become formally released.
23
Conceptual Model
Diagrams
24
Conceptual Model
Diagrams
25
26
27
28
29
Tool Support
UML Tools
StarUML - StarUML is an open source project to develop fast,
flexible, extensible, featureful, and freely-available UML/MDA platform running on Win32 platform.
ArgoUML - ArgoUML is the leading open source UML modeling
tool and includes support for all standard UML diagrams.
MagicDraw UML - It is a visual UML, SysML, BPMN, and
UPDM modeling tool with team collaboration support. Designed
for business analysts, software analysts, programmers, and QA engineers.
GenMyModel - An online UML modeling tool
UML Tools List @ Wiki - Comprehensive list of UML Tools
and Utilities.
Shashank Mouli Satapathy
30
Tool Support
31
Useful Resources
Useful Resources
32
Standards
Standards
Two types of standards:
De-Jure
De-facto
De-jure standards, or standards according to law , are endorsed by a formal standards organization. The organization ratifies
each standard through its official procedures and gives the standard
its stamp of approval.
De-facto standards, or standards in actuality , are adopted
widely by an industry and its customers. They are also known as
market-driven standards. These standards arise when a critical mass simply likes them well enough to collectively use them.
Market-driven standards can become de jure standards if they are
approved through a formal standards organization.
Shashank Mouli Satapathy
33
SRS
SOFTWARE REQUIREMENT
SPECIFICATION
34
SRS
Sample SRS
Sample SRS
R 1: Withdraw cash
Description: The withdraw cash function first determines the type of
account that the user has and the account number from which the user
wishes to withdraw cash. It checks the balance to determine whether
the requested amount is available in the account. If enough balance is
available, it outputs the required cash, otherwise it generates an error
message.
R 1.1: Select withdraw amount option
Input: Withdraw amount option
output: User prompted to enter the account type
R 1.2: Select account type
Input: User option from any one of the following: savings / current.
Output: Prompt to enter amount
Shashank Mouli Satapathy
35
SRS
Sample SRS
36
UML Diagrams
UML DIAGRAMS
37
UML Diagrams
38
UML Diagrams
39
UML Diagrams
Actor :
An actor is an idealization of an external person, process, or thing
interacting with a system, subsystem, or class.
An actor characterizes the interactions that outside users may have
with the system.
Each actor interacts with one or more use cases by exchanging messages.
40
UML Diagrams
41
UML Diagrams
42
UML Diagrams
43
UML Diagrams
Activity Diagram
Activity Diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and
concurrency.
It also captures the dynamic behaviour of the system.
Activity diagrams deals with all type of flow control by using different elements like fork, join etc.
44
UML Diagrams
Activity Diagram
45
UML Diagrams
Activity Diagram
46
UML Diagrams
Activity Diagram
Swimlanes :
It is often useful to organize the activities in a model according to
responsibility.
For example, by grouping together all the activities handled by one
business organization.
This kind of assignment can be shown by organizing the activities
into distinct regions separated by lines in the diagram.
Because of their appearance, each region is called a swimlane.
47
UML Diagrams
Activity Diagram
48
UML Diagrams
Activity Diagram
49
UML Diagrams
Class Diagram
Class Diagram
A class is the description of a concept from the application domain
or the application solution.
The static view is displayed in class diagrams, so called because
their main focus is the description of classes.
Classes are drawn as rectangles. Lists of attributes and operations
are shown in separate compartments. The compartments can be
suppressed when full detail is not needed.
Relationships among classes are drawn as paths connecting class
rectangles.
A class diagram from the box office application is provided in the
next slide.
50
UML Diagrams
Class Diagram
51
UML Diagrams
Class Diagram
Statechart Diagram
52
UML Diagrams
Class Diagram
53
UML Diagrams
Sequence Diagram
Sequence Diagram
54
UML Diagrams
Sequence Diagram
55
UML Diagrams
Collaboration Diagram
Collaboration Diagram
A collaboration diagram shows the roles in the interaction as a
geometric arrangement.
The messages are shown as arrows attached to the relationship lines
connecting classifier roles.
The sequence of messages is indicated by sequence numbers prepended
to message descriptions.
One use of a collaboration diagram is to show the implementation
of an operation.
The collaboration shows the parameters and local variables of the
operation, as well as more permanent associations.
When the behavior is implemented, the message sequencing corresponds to the nested calling structure and signal passing of the
program.
Shashank Mouli Satapathy
56
UML Diagrams
Collaboration Diagram
57
UML Diagrams
Component Diagram
Component Diagram
A component is a physical unit of implementation with well-defined
interfaces that is intended to be used as a replaceable part of a
system.
Each component embodies the implementation of certain classes
from the system design.
Well-designed components do not depend directly on other components but on interfaces that components support. In that case, a
component in a system can be replaced by another component that
supports the proper interfaces.
A component is drawn as a rectangle with two small rectangles on
its side. It may be attached by solid lines to circles that represent
its interfaces.
A component diagram shows dependencies among components.
Shashank Mouli Satapathy
58
UML Diagrams
Component Diagram
59