System analysis and design
SYSTEM ANALYSIS AND DESIGN
• Nguyen Thanh Binh, Nguyen Quang Vu, Le Viet Truong,
Vo Van Luong, Nguyen Ngoc Huyen Tran
• Faculty of Computer Science
1
System analysis and design
•Chapter 2
An overview of Unified modeling language
2
System analysis and design
An overview of Unified modeling language
• Modeling concept
• Object-oriented modeling techniques
• History of UML
• Brief introduction to UML
• Notions
• Diagrams
• Views
System analysis and design
Model and modeling
• A model is a simplification of reality. We build models so we can
better understand the system we are developing.
• Modeling is the process of building models to represent a
system
• Modeling
• helps us to visualise a system as it is or as we want it to
be
• allows us to specify the structure or behaviour of a
system
• gives us a template that guides us in constructing a
system
• documents the decision we have made
4
System analysis and design
Model and modeling: Example
5
System analysis and design
Model and modeling: Example
6
System analysis and design
Object-oriented modeling techniques
• Object-oriented modeling techniques are processes/methodologies/approaches for software
modeling and designing
• 1975 - 1990: several object-oriented techniques are developed
• 1990 - 1994: there are more than 50 object-oriented modeling techniques
• Best-known techniques
• OOD (Object-Oriented Design)
• OOSE (Object-Oriented Software Engineering)
• OMT (Object Modeling Technique)
13
System analysis and design
OMT technique
• Developed by Jim Rumbaugh (1991)
• Consists of 3 main types of models
• Object model: Object diagram
• Dynamic model: State diagram
• Functional model: Data flow diagram
OMT Data flow Diagram
OMT Object Diagram OMT State Diagram
14
System analysis and design
OOD technique
• Developed by Grady Booch (1991)
• Consists of
• Static view
• Class diagram
• Object diagram
• Module diagram
• Dynamic view
• State transition diagram
• Process diagram
• Interaction diagram
15
System analysis and design
OOSE technique
• Developed by Ivar Jacobson (1992)
• Consists of 5 models
• Requirements model: Problem domain diagram, Use-case diagram
• Analysis model: Analysis diagram
• Design model: State transition diagrams, Interaction diagrams
• Implementation model
• Test model
16
System analysis and design
History of UML
• Too many object-oriented modeling techniques
• Need for standardisation
• Unification of modeling techniques
• In 1994
• Rumbaugh and Booch unified their approaches for the UML project at Rational Software
• In 1995
• The first version was released under the name “Unified Method” v0.8
• In 1996
• Jacobson joined the team
• In 1997
• The birth of UML v0.9 integrating OOSE
• The first conference of the UML is organized
• In 2005, UML 2.0 is released
• New diagrams, enhancement of existing diagrams
• In September, 2013, UML v.2.5 RTF - Beta 2
• In June, 2015, UML v.2.5
17
System analysis and design
History of UML
• Contributions to UML
HP Fusion
Description of operations, Harel
numbering messages Finite state machine
Gamma
Framework, patterns
Wirfs-Brock
Responsabilities
Booch
OOD
Rumbaugh Shlear-Mellor
OMT Life cycle of objects
Jacobson
OOSE
Embley
Myers Singleton classes,
Pre and post-conditions
Odell
Classification Composite objects
18
System analysis and design
Introduction to UML
• UML (Unified Modeling Language) is a modeling language
• consisting of the vocabulary, syntax and semantics
• allowing to represent a system at different levels: conceptual, physical
• consisting of vocabulary and rules to describe different models representing a system
• UML
• is neither a methodology nor a process
• allows freedom of design
• can be combined with several development processes
19
System analysis and design
Introduction to UML
• UML is a language of visualisation
• using graphical representations
• providing a better view of the system (thanks to graphical representations)
• UML is a language of specification
• allowing to specify a system without ambiguity
• allowing to specify a system at different stages: analysis, design, deployment
• UML is a language of construction
• allowing to simulate the system
• UML models are easily transformed into source code
• UML is a language of documentation
• allowing to describe all the development stages of the system
• Built models are complete documents of the system
20
System analysis and design
Introduction to UML: the diagrams
• Consisting of 10 main diagrams
• Requirements modeling
• Use-case diagrams
• Static structural modeling
• Class diagrams
• Object diagrams
• Dynamic behavioral modeling
• Activity diagrams
• State diagrams
• Interaction diagrams
• Sequence diagrams
• Communication diagrams
• Architectural modeling
• Package diagrams
• Component diagrams
• Deployment diagrams
21
System analysis and design
Introduction to UML: Use-case diagram
• Showing the possible uses of a system
• Describing the static view of the system according to users perspective
• Being very important to understand the functions of the system
UserManagement
• Example add user
delete user
<< include >> find user
admin
modify user
22
System analysis and design
Introduction to UML: class diagram
• Describing the classes and their relationship
• Describing the static view of the system
• Example
Polygon
Parallelogram Triangle
Rectangle Lozenge
Square
23
System analysis and design
Introduction to UML: object diagram
• Describing a set of objects and their relationship
• An object diagram represents the same information that a class diagram but at the instance level of
classes
• Describing the static view of the system
• Example
Class diagram University Faculty
CS:Faculty
VKU:University CE:Faculty
Object diagram
DE:Faculty
24
System analysis and design
Introduction to UML: activity diagram
• Describing the information flows in the system
• Modeling the dynamic view of the system
• Example: Making coffee
25
System analysis and design
Introduction to UML: state diagram
• Describing the internal behaviour of the system
• Modeling the dynamic view of the system
• Example
“Online Shopping Account” State Diagram
26
System analysis and design
Introduction to UML: interaction diagram
• Describing the behaviours of the system by the interactions between the composing objects
• modeling the dynamic view of the system
• The interaction diagram is an extension of the object diagram by describing the interactions
between objects
• Consisting of two types of diagrams
• Sequence Diagram describes the interactions between objects with the emphasis on
sequencing of messages
• Communication Diagram describes the interactions between objects with the emphasis
on the structure of objects
27
System analysis and design
Introduction to UML: interaction diagram
• Sequence Diagram example
:Document :Fax :TelephoneLine
call()
call()
invitedSound
compose(num)
compose connected
send(page) transfer(page)
“Sending Fax” Sequence Diagram
28
System analysis and design
Introduction to UML: interaction diagram
• Communication diagram example
1.1: call()
1: call() 1.3: compose(num)
3: send(page) 3.1: transfer(page)
:Document :Fax :TelephoneLine
2: connected() 1.2: invitedSound()
1.4: connected
“Sending Fax” Communication diagram
29
System analysis and design
Introduction to UML: Package diagrams
• Packages
• Universal element is used to organize classes, or some other group into a group
• Package diagrams
• Displays packages and the relationships between packages.
• Example
System
Client Product
DB
Interface
3
System analysis and design
Introduction to UML: component diagrams
• Describe the organisation of different components of the system
• The static view of the organisation of the system
• Example
“Online Shopping Website” Component Diagram
31
System analysis and design
Introduction to UML: deployment diagrams
• Describing the physical organisation of different components (machines) of the system (material)
An example of deployment diagram of JEE web application
32
System analysis and design
Introduction to UML: extension mechanism
• Built-in extension mechanism
• Stereotypes
• Tagged values
• Notes
• Constraints
• OCL textual language
33
System analysis and design
Introduction to UML: general mechanisms
• Stereotype
• is a built-in extension mechanism
• expands the vocabulary of UML
• is used to create new types of UML elements that derive from the existing kinds but which
are adapted to a given problem
• there are predefined stereotypes in UML
• Notation
• “name of stereotype”
• Possibility to introduce an icon
« utility »
« Actor »
Customer Maths
Customer
« subsystem » « datatype »
User Interface Float
34
System analysis and design
Introduction to UML: general mechanisms
• Tagged values
• Another extension mechanism
• Provide additional information on the elements of UML
• Pairs of type {name = value}
• Example
Class
{author = NTB,
version = 2.0}
35
System analysis and design
Introduction to UML: general mechanisms
• Notes
• are comments attached to one or more modeling elements
• provide additional information on modeling elements
• belong to the view, not the models
36
System analysis and design
Introduction to UML: general mechanisms
• Constraints
• are restrictions that limit the use of an element or the element semantic
• are expressed in natural language
• are expressed in OCL (Object Constraint Language)
• Example
Rectangle BankAccount
width:int {width > 0}
length:int {length > 0}
{xor}
Individual Organism
37
System analysis and design
Introduction to UML: views
• A system is modelled by 5 different views in the UML
Static view Architectural view
User Views
Dynamic view Deployment view
38
System analysis and design
Introduction to UML: views
• Diagrams and views
Static view Architectural view
Class diagrams Package diagrams
Object diagrams Component diagrams
Users view
Use-case diagrams
Dynamic view Deployment view
Interaction diagrams Deployment diagrams
State diagrams
Activity diagrams
39