SlideShare a Scribd company logo
Introduction to UML
Venkat Srinivasan
Dept. of CSE
Unified modeling language basics and slides
Unified modeling language basics and slides
Unified modeling language basics and slides
• Model is an abstract representation of
a system, constructed to understand
the system prior to building or
modifying it.
• It is a simplified representation of
reality
• Modeling is used during many phases
of the software life cycles.
Triangle for success
Tools
cannot exist
alone
Language (Notation)
Process Tools
Computer System
Business Process
Order
Item
Ship via
“Modeling captures essential
parts of the system.”
Dr. James Rumbaugh
Visual Modeling is
modeling
using standard graphical
notations
What is Visual Modeling?
Use Case Analysis is a technique to capture
business process from user’s perspective
Visual Modeling Captures
Business Process
Visual Modeling is a
Communication Tool
Use visual modeling to capture business objects and logic
Use visual modeling to analyze and design
your application
Visual Modeling
Manages Complexity
User Interface
(Visual Basic,
Java)
Business Logic
(C++, Java)
Database Server
(C++ & SQL)
Model your system
independent of
implementation language
Visual Modeling Defines Software
Architecture
Multiple Systems
Visual Modeling
Promotes Reuse
Reusable
Components
Three Important Features of the
Iterative Approach
• Continuous integration
– Not done in one lump near the delivery
date
• Frequent, executable releases
– Some internal; some delivered
• Attack risks through demonstrable progress
– Progress measured in products, not
documentation or engineering estimates
Risk
Transition
Inception
Elaboration
Construction
Preliminary
Iteration
Architect.
Iteration
Architect.
Iteration
Devel.
Iteration
Devel.
Iteration
Devel.
Iteration
Transition
Iteration
Transition
Iteration
Post-
deployment
Waterfall
Time
Risk Profile of an Iterative
Development
Risk Management
Phase-by-Phase
• Inception
– Bracket the project’s risks by building a proof of
concept
• Elaboration
– Develop a common understanding of the system’s
scope and desired behavior by exploring scenarios
with end users and domain experts
– Establish the system’s architecture
– Design common mechanisms to address system-
wide issues
Risk Management
Phase-by-Phase (cont.)
• Construction
– Refine the architecture
– Risk-driven iterations
– Continuous integration
• Transition
– Facilitate user acceptance
– Measure user satisfaction
• Post-deployment cycles
– Continue evolutionary approach
– Preserve architectural integrity
Initial Project Risks
Initial Project Scope
Revise Overall
Project Plan
• Cost
• Schedule
• Scope/Content
Plan Iteration N
• Cost
• Schedule
Assess Iteration N
Risks Eliminated
Revise Project Risks
• Reprioritize
Develop Iteration N
• Collect cost and
quality metrics
Define scenarios to
address highest risks
Iteration N
Risk Reduction Drives
Iterations
Inception Elaboration Construction Transition
Iteration 1 Iteration 2 Iteration 3
Iteration Planning
Rqmts Capture
Analysis & Design
Implementation
Test
Prepare Release
“Mini-Waterfall” Process
Use Cases Drive the
Iteration Process
The Iteration Life Cycle: A
Mini-Waterfall
• Results of previous iterations
• Up-to-date risk assessment
• Controlled libraries of models,
code, and tests
Release description
Updated risk assessment
Controlled libraries
Iteration Planning
Requirements Capture
Analysis & Design
Implementation
Test
Prepare Release
Selected scenarios
Detailed Iteration Life
Cycle Activities
• Iteration planning
– Before the iteration begins, the general objectives of
the iteration should be established based on
• Results of previous iterations ( if any)
• Up-to-date risk assessment for the project
– Determine the evaluation criteria for this iteration
– Prepare detailed iteration plan for inclusion in the
development plan
• Include intermediate milestones to monitor
progress
• Include walkthroughs and reviews
Detailed Iteration Life
Cycle Activities (cont.)
• Requirements Capture
– Select/define the use cases to be
implemented in this iteration
– Update the object model to reflect additional
domain classes and associations discovered
– Develop a test plan for the iteration
Copyright © 1997 by Rational Software Corporation
Detailed Iteration Life
Cycle Activities (cont.)
• Analysis & Design
– Determine the classes to be developed or updated in
this iteration
– Update the object model to reflect additional design
classes and associations discovered
– Update the architecture document if needed
– Begin development of test procedures
• Implementation
– Automatically generate code from the design model
– Manually generate code for operations
– Complete test procedures
– Conduct unit and integration tests
Detailed Iteration Life
Cycle Activities (cont.)
• Test
– Integrate and test the developed code with the rest of
the system (previous releases)
– Capture and review test results
– Evaluate test results relative to the evaluation criteria
– Conduct an iteration assessment
• Prepare the release description
– Synchronize code and design models
– Place products of the iteration in controlled libraries
Work Allocation Within an Iteration
• Work to be accomplished within an iteration is
determined by
– The (new) use cases to be implemented
– The rework to be done
• Packages make convenient work packages for
developers
– High-level packages can be assigned to teams
– Lower-level packages can be assigned to individual
developers
• Use Cases make convenient work packages for test and
assessment teams
• Packages are also useful in determining the granularity
at which configuration management will be applied
– For example, check-in and check-out of individual
Iteration Assessment
• Assess iteration results relative to the evaluation criteria
established during iteration planning:
– Functionality
– Performance
– Capacity
– Quality measures
• Consider external changes that have occurred during
this iteration
– For example, changes to requirements, user needs,
competitor’s plans
• Determine what rework, if any, is required and assign it
to the remaining iterations
Selecting Iterations
• How many iterations do I need?
– On projects taking 18 months or less, 3 to 6
iterations are typical
• Are all iterations on a project the same
length?
– Usually
– Iteration length may vary by phase. For
example, elaboration iterations may be
shorter than construction iterations
Copyright © 1997 by Rational Software Corporation
The First Iteration
• The first iteration is usually the hardest
– Requires the entire development environment and
most of the development team to be in place
– Many tool integration issues, team-building issues,
staffing issues, etc. must be resolved
• Teams new to an iterative approach are usually overly-
optimistic
• Be modest regarding the amount of functionality that can
be achieved in the first iteration
– Otherwise, completion of the first iteration will be
delayed,
– The total number of iterations reduced, and
– The benefits of an iterative approach reduced
There Is No Silver Bullet
• Remember the main reason for using the iterative life
cycle:
– You do not have all the information you need up front
– Things will change during the development period
• You must expect that
– Some risks will not be eliminated as planned
– You will discover new risks along the way
– Some rework will be required; some lines of code
developed for an iteration will be thrown away
– Requirements will change along the way
Development Cycle
• The development cycle is split into phases.
• Phases are split into iterations.
• Activities are grouped by disciplines.
Why Model
• Blueprint for large developments
• Solve problems before building systems
• Construct parts that fit together
• Plan
• Manage resource
• Adapt to change
Models help
• “Visualize” the system
• Agreement with customers
• Agreement with sponsors
• Estimation
• Costing
• Scalability and reliability planning
Can be built by one person
Requires
Minimal modeling
Simple process
Simple tools
Architecting a dog house
Architecting a house
Built most efficiently and timely by a team
Requires
Modeling
Well-defined process
Power tools
Modeling a house
When not to model?
• Trivial systems
• Over-modelling of modest systems
• Over-modelling of large systems
– diagrams for diagrams sake
– excessive detail
Types of models
• Static model – snapshot of a system’s
parameters at rest or at specific point in
time (e.g) class diagram
• A dynamic model can be viewed as
collection of procedures or behavior of a
system over time. It shows how business
objects interact to perform tasks.
Defining UML
Modeling with UML
Analyzing UML’s Strengths and
Weaknesses
• Describing the Modeling Process
• Defining the Syntax of UML
• Clarifying with an Example
OUTLINE
Unified Modeling Language is a
standard language for writing
software blueprints
WHAT IS UML?
Defining UML Modeling with UML Analyzing UML
Examples
WHO DEVELOPED IT?
Object
Management
Group
Grady Booch James Rumbaugh
Ivar Jacobson
Defining UML Modeling with UML Analyzing UML
Examples
Booch Jacobson Rumbaugh
“The 3 Amigos”
Unified modeling language basics and slides
UML TOOLS
Defining UML Modeling with UML Analyzing UML
Examples
Rational Rose - IBM
ArgoUML – Tigris
http://argouml.tigris.org/
Visual paradigm suite
WHY MODEL?
Visualizing
Specifying
Constructing
Documenting
Defining UML Modeling with UML Analyzing UML
Examples
PRESCRIBED PROCESS
Object – Oriented
(although not limited)
Use Case Driven
Architecture-centric
Iterative and Incremental
Defining UML Modeling with UML Analyzing UML
Examples
ARCHITECTURE CENTRIC
Design
View
Deployment
View
Process
View
Implementation
View
Use Case
View
Design
View
Use Case
View
Defining UML Modeling with UML Analyzing UML
Examples
End-user
Functionality
Analysts/
Designers
structures Programmers
Software management
System topology
Delivery, installation
communication
Performance
Scalability
Throughput
System Integrators
SYNTAX AND DIAGRAMS
Things Relationships
Diagrams
• Structural
• Realization
• Annotational
• Grouping
• Behavioral
• Generalization
• Association
• Dependency
class
Window
size
open()
waiting
state
Business
rules
package
Return
copies
notes
dependency
association
Generalization
Realization
Defining UML Modeling with UML Analyzing UML
Examples
Unified modeling language basics and slides
There are about 9 types of diagrams in UML1.5
Sequence
Diagrams
Dynamic views Static views
Collaboration
Diagrams
Activity
Diagrams
Statechart
Diagrams
Class
Diagrams
Object
Diagrams
Component
Diagrams
Deployment
Diagrams
Model
Some part of
the model might
not be visible on
any diagram
Use Case
Diagrams
Workflows and Models
Requirements
Design
Implementation
Test
Analysis
Use Case
Model
Design
Model
Deploym.
Model
Impl.
Model
Analysis
Model
Test
Model
UML diagrams provide
views into each model
Each workflow is
associated with one or
more models.
Use Case Model
Use Case
Diagrams
Collaboration
Diagrams
Component
Diagrams
Deployment
Diagrams
Object
Diagrams
Statechart
Diagrams
Sequence
Diagrams
Class
Diagrams
Activity
Diagrams
Use Case
Model
Design
Model
Depl.
Model
Impl.
Model
Analysis
Model
Test
Model
Analysis & Design Model
Use Case
Diagrams
Collaboration
Diagrams
Component
Diagrams
Deployment
Diagrams
Object
Diagrams
Statechart
Diagrams
Sequence
Diagrams
Class
Diagrams
Activity
Diagrams
Use Case
Model
Design
Model
Depl.
Model
Impl.
Model
Analysis
Model
Test
Model
Incl. subsystems
and packages
Deployment and Implementation Model
Use Case
Diagrams
Collaboration
Diagrams
Component
Diagrams
Deployment
Diagrams
Object
Diagrams
Statechart
Diagrams
Sequence
Diagrams
Class
Diagrams
Activity
Diagrams
Use Case
Model
Design
Model
Depl.
Model
Impl.
Model
Analysis
Model
Test
Model
Incl. active classes
and components
Test Model
Use Case
Diagrams
Collaboration
Diagrams
Component
Diagrams
Deployment
Diagrams
Object
Diagrams
Statechart
Diagrams
Sequence
Diagrams
Class
Diagrams
Activity
Diagrams
Use Case
Model
Design
Model
Depl.
Model
Impl.
Model
Analysis
Model
Test
Model
Test model refers to
all other models and
uses corresponding
diagrams
SYNTAX AND DIAGRAMS
Static Dynamic
Class
Object
Component
Deployment
Use Case
Sequence
Collaboration
Statechart
Activity
Defining UML Modeling with UML Analyzing UML
Examples
SYNTAX AND DIAGRAMS
Defining UML Modeling with UML Analyzing UML
Examples
Use Case
Diagrams
Collaboration
Diagrams
Sequence
Diagrams
Class
Diagrams
State
Diagrams
Activity
Diagrams
Deployment
Diagrams
Component
Diagrams
SYSTEM DESCRIPTION
Defining UML Modeling with UML Analyzing UML
Examples
On-line Grade Record
• Computerized system in which
teachers record and update
grades and students access their
personal grade records
USE CASE DIAGRAM
Defining UML Modeling with UML Analyzing UML
Examples
Student
Teacher
Log in
Save Grades
Load Grades
View Grades
Record Grades
Update Grades
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
<<include>>
ACTIVITY DIAGRAM
Defining UML Modeling with UML Analyzing UML
Examples
Teacher Website
Logon
Validate
Validate(UID,PWD)
Not Validated Validated
[valid]
[invalid]
Display
Logon Error
Choose
Student
Load Student
Information
Load Student
…
SEQUENCE DIAGRAM
Defining UML Modeling with UML Analyzing UML
Examples
Teacher
Web Interface Log
Login Teacher
Log Logon Attempt
Log Successful Logon
[successful logon]
Log Unsuccessful Logon
[unsuccessful logon]
Lookup Student
[successful logon]
Log Student Lookup
Logout Teacher
[successful logon]
COLLABORATION DIAGRAM
Defining UML Modeling with UML Analyzing UML
Examples
1:
LoadClass(Name)
:Teacher :Student
:Class :FileSystem
1.1: LoadStudents()
1.2: LoadClassInfo()
1.3: LoadRoom()
2: AddStudent(Name)
CLASS DIAGRAM
Defining UML Modeling with UML Analyzing UML
Examples
Teacher
- Username
- Password
- Classes
+ AddClass()
+ RemoveClass()
+ ChangePassword(in
OldPassword: String, in
NewPassword: String) :
Boolean
{if (oldPassword = Password
Attribute) then
Password Attribute =
NewPassword
Return Value = True
Else
Return Value = False}
CLASS DIAGRAM
Defining UML Modeling with UML Analyzing UML
Examples
Teacher
Online User
Website
+ Logon()
+ View()
Grades
+ RecordGrades()
+ UpdateGrades()
- SaveGrades()
- LoadGrades()
Maintains >
1 1..*
Displays
>
Uses >
STATE DIAGRAM
Defining UML Modeling with UML Analyzing UML
Examples
Ready Saving
Saved Error
Success Failure
SaveGrade
UML first pass: Sequence
diagram
:LCDDisplay
blinkHours()
blinkMinutes()
refresh()
commitNewTime()
:Time
incrementMinutes()
stopBlinking()
:Watch
pressButton1()
pressButton2()
pressButtons1And2()
pressButton1()
:WatchUser
Object
Message
Activation
Sequence diagrams represent the behavior as interactions
Actor
Lifeline
UML first pass: Class diagrams
1
2
push()
release()
1
1
blinkIdx
blinkSeconds()
blinkMinutes()
blinkHours()
stopBlinking()
referesh()
LCDDisplay Battery
load
1
2
1
Time
now
1
Watch
Class
Association
Multiplicity
Attribute
Operations
Class diagrams represent the structure of the system
state
PushButton
UML first pass: Statechart diagrams for
objects with interesting dynamic behavior
BlinkHours
BlinkMinutes
IncrementHrs
IncrementMin.
BlinkSeconds IncrementSec.
StopBlinking
[button1&2Pressed]
[button1Pressed]
[button2Pressed]
[button2Pressed]
[button2Pressed]
[button1Pressed]
[button1&2Pressed]
[button1&2Pressed]
State
Initial state
Final state
Transition
Event
Represent behavior as states and transitions
• Show aspects of model
implementation, including source
code structure and run-time
implementation structure
• Kinds
–component diagram
–deployment diagram
Implementation Diagrams
• Shows the organizations and
dependencies among software
components
• Components include
–source code components
–binary code components
–executable components
Component Diagram
Components
Dictionary
Spell-check
Synonyms
mymailer: Mailer
+Mailbox
+RoutingList
-MailQueue
Planner
Scheduler
GUI
Reservations
Update
Component Diagram
• Shows the configuration of run-time
processing elements and the
software components, processes and
objects that live on them
• Deployment diagrams may be used
to show which components may run
on which nodes
Deployment Diagram
AdminServer:HostMachine
Joe’sMachine:PC
:Scheduler reservations
:Planner
«database»
meetingsDB
Deployment Diagram
Node1
Node2
«cluster»
x y
«cluster»
x y
«become»
«database»
w z
Deployment Diagram (cont’d)
UML’s STRENGTHS
Defining UML Modeling with UML Analyzing UML
Examples
UML is a language which directs us to:
• Visualize
• Specify
• Plan
• Document
Organize,
Structure and
Communicate
UML’s STRENGTHS
Defining UML Modeling with UML Analyzing UML
Examples
Which compels us to be:
• More Precise
• More Complete
• Less Ambiguous
Its easy to read and if accepted would
be a language that everyone understood
UML’s WEAKNESSES
Defining UML Modeling with UML Analyzing UML
Examples
There is a big difference between:
Compels and Ensures
• There is insufficient means
for test and verification
(For instance: there is no mean to specify relational tables)
Defining UML
Modeling with UML
Analyzing UML’s Strengths and
Weaknesses
• Describing the Modeling Process
• Defining the Syntax of UML
• Clarifying with Examples
SUMMARY
Booch, G. et al., The Unified Modeling
Language User Guide, Addison-Wesley,
Toronto, 1998
Roff, J.T., UML A Beginner’s Guide,
McGraw Hill/Osborn, Toronto, 2003
BIBLIOGRAPHY

More Related Content

PPT
UML Basics Department of CSE, SARANATHAN
PPT
Software development life cycle
PPT
Software process life cycles
PPT
01lifecycles
PPT
01lifecycles(system development life cycle).ppt
PPTX
Object Oriented Analysis
ODP
BIS09 Application Development - III
DOC
Chapter 1,2,3,4 notes
UML Basics Department of CSE, SARANATHAN
Software development life cycle
Software process life cycles
01lifecycles
01lifecycles(system development life cycle).ppt
Object Oriented Analysis
BIS09 Application Development - III
Chapter 1,2,3,4 notes

Similar to Unified modeling language basics and slides (20)

PPSX
Process model rup
PPT
Softeng
PPTX
SE-03.pptx
PPT
Lect3 ch15-unit2
PPT
Process models
PPTX
Introduction to software Engineering slides
PPT
Use of RUP for Small Projects
PDF
Spm life cycle phase
PDF
Introduction to on Object Oriented Technologies and the UML Method
PPTX
software Processes
DOCX
Incremental model
PDF
Software management framework
PPT
Software Life Cylce Model
PPTX
Unit1_Software_EngineeringGGGGGGGGGG.pptx
PPTX
Software Engineering - Lecture 02
PPTX
Lesson 1 - System Development LifeCycles_48b8340c0dd570b721da1199655b765e.pptx
PPT
1-SoftwareEngineeringandBestPractices.ppt
PPT
1-SoftwareEngineeringandBestPractices.ppt
PPT
UML_Training.ppt
PPTX
Software process models shaukat wasi
Process model rup
Softeng
SE-03.pptx
Lect3 ch15-unit2
Process models
Introduction to software Engineering slides
Use of RUP for Small Projects
Spm life cycle phase
Introduction to on Object Oriented Technologies and the UML Method
software Processes
Incremental model
Software management framework
Software Life Cylce Model
Unit1_Software_EngineeringGGGGGGGGGG.pptx
Software Engineering - Lecture 02
Lesson 1 - System Development LifeCycles_48b8340c0dd570b721da1199655b765e.pptx
1-SoftwareEngineeringandBestPractices.ppt
1-SoftwareEngineeringandBestPractices.ppt
UML_Training.ppt
Software process models shaukat wasi
Ad

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
MYSQL Presentation for SQL database connectivity
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
Big Data Technologies - Introduction.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Machine learning based COVID-19 study performance prediction
PDF
Electronic commerce courselecture one. Pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Approach and Philosophy of On baking technology
DOCX
The AUB Centre for AI in Media Proposal.docx
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation_ Review paper, used for researhc scholars
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Big Data Technologies - Introduction.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
The Rise and Fall of 3GPP – Time for a Sabbatical?
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)
Machine learning based COVID-19 study performance prediction
Electronic commerce courselecture one. Pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Understanding_Digital_Forensics_Presentation.pptx
Approach and Philosophy of On baking technology
The AUB Centre for AI in Media Proposal.docx
Ad

Unified modeling language basics and slides

  • 1. Introduction to UML Venkat Srinivasan Dept. of CSE
  • 5. • Model is an abstract representation of a system, constructed to understand the system prior to building or modifying it. • It is a simplified representation of reality • Modeling is used during many phases of the software life cycles.
  • 6. Triangle for success Tools cannot exist alone Language (Notation) Process Tools
  • 7. Computer System Business Process Order Item Ship via “Modeling captures essential parts of the system.” Dr. James Rumbaugh Visual Modeling is modeling using standard graphical notations What is Visual Modeling?
  • 8. Use Case Analysis is a technique to capture business process from user’s perspective Visual Modeling Captures Business Process
  • 9. Visual Modeling is a Communication Tool Use visual modeling to capture business objects and logic Use visual modeling to analyze and design your application
  • 11. User Interface (Visual Basic, Java) Business Logic (C++, Java) Database Server (C++ & SQL) Model your system independent of implementation language Visual Modeling Defines Software Architecture
  • 12. Multiple Systems Visual Modeling Promotes Reuse Reusable Components
  • 13. Three Important Features of the Iterative Approach • Continuous integration – Not done in one lump near the delivery date • Frequent, executable releases – Some internal; some delivered • Attack risks through demonstrable progress – Progress measured in products, not documentation or engineering estimates
  • 15. Risk Management Phase-by-Phase • Inception – Bracket the project’s risks by building a proof of concept • Elaboration – Develop a common understanding of the system’s scope and desired behavior by exploring scenarios with end users and domain experts – Establish the system’s architecture – Design common mechanisms to address system- wide issues
  • 16. Risk Management Phase-by-Phase (cont.) • Construction – Refine the architecture – Risk-driven iterations – Continuous integration • Transition – Facilitate user acceptance – Measure user satisfaction • Post-deployment cycles – Continue evolutionary approach – Preserve architectural integrity
  • 17. Initial Project Risks Initial Project Scope Revise Overall Project Plan • Cost • Schedule • Scope/Content Plan Iteration N • Cost • Schedule Assess Iteration N Risks Eliminated Revise Project Risks • Reprioritize Develop Iteration N • Collect cost and quality metrics Define scenarios to address highest risks Iteration N Risk Reduction Drives Iterations
  • 18. Inception Elaboration Construction Transition Iteration 1 Iteration 2 Iteration 3 Iteration Planning Rqmts Capture Analysis & Design Implementation Test Prepare Release “Mini-Waterfall” Process Use Cases Drive the Iteration Process
  • 19. The Iteration Life Cycle: A Mini-Waterfall • Results of previous iterations • Up-to-date risk assessment • Controlled libraries of models, code, and tests Release description Updated risk assessment Controlled libraries Iteration Planning Requirements Capture Analysis & Design Implementation Test Prepare Release Selected scenarios
  • 20. Detailed Iteration Life Cycle Activities • Iteration planning – Before the iteration begins, the general objectives of the iteration should be established based on • Results of previous iterations ( if any) • Up-to-date risk assessment for the project – Determine the evaluation criteria for this iteration – Prepare detailed iteration plan for inclusion in the development plan • Include intermediate milestones to monitor progress • Include walkthroughs and reviews
  • 21. Detailed Iteration Life Cycle Activities (cont.) • Requirements Capture – Select/define the use cases to be implemented in this iteration – Update the object model to reflect additional domain classes and associations discovered – Develop a test plan for the iteration
  • 22. Copyright © 1997 by Rational Software Corporation Detailed Iteration Life Cycle Activities (cont.) • Analysis & Design – Determine the classes to be developed or updated in this iteration – Update the object model to reflect additional design classes and associations discovered – Update the architecture document if needed – Begin development of test procedures • Implementation – Automatically generate code from the design model – Manually generate code for operations – Complete test procedures – Conduct unit and integration tests
  • 23. Detailed Iteration Life Cycle Activities (cont.) • Test – Integrate and test the developed code with the rest of the system (previous releases) – Capture and review test results – Evaluate test results relative to the evaluation criteria – Conduct an iteration assessment • Prepare the release description – Synchronize code and design models – Place products of the iteration in controlled libraries
  • 24. Work Allocation Within an Iteration • Work to be accomplished within an iteration is determined by – The (new) use cases to be implemented – The rework to be done • Packages make convenient work packages for developers – High-level packages can be assigned to teams – Lower-level packages can be assigned to individual developers • Use Cases make convenient work packages for test and assessment teams • Packages are also useful in determining the granularity at which configuration management will be applied – For example, check-in and check-out of individual
  • 25. Iteration Assessment • Assess iteration results relative to the evaluation criteria established during iteration planning: – Functionality – Performance – Capacity – Quality measures • Consider external changes that have occurred during this iteration – For example, changes to requirements, user needs, competitor’s plans • Determine what rework, if any, is required and assign it to the remaining iterations
  • 26. Selecting Iterations • How many iterations do I need? – On projects taking 18 months or less, 3 to 6 iterations are typical • Are all iterations on a project the same length? – Usually – Iteration length may vary by phase. For example, elaboration iterations may be shorter than construction iterations
  • 27. Copyright © 1997 by Rational Software Corporation The First Iteration • The first iteration is usually the hardest – Requires the entire development environment and most of the development team to be in place – Many tool integration issues, team-building issues, staffing issues, etc. must be resolved • Teams new to an iterative approach are usually overly- optimistic • Be modest regarding the amount of functionality that can be achieved in the first iteration – Otherwise, completion of the first iteration will be delayed, – The total number of iterations reduced, and – The benefits of an iterative approach reduced
  • 28. There Is No Silver Bullet • Remember the main reason for using the iterative life cycle: – You do not have all the information you need up front – Things will change during the development period • You must expect that – Some risks will not be eliminated as planned – You will discover new risks along the way – Some rework will be required; some lines of code developed for an iteration will be thrown away – Requirements will change along the way
  • 29. Development Cycle • The development cycle is split into phases. • Phases are split into iterations. • Activities are grouped by disciplines.
  • 30. Why Model • Blueprint for large developments • Solve problems before building systems • Construct parts that fit together • Plan • Manage resource • Adapt to change
  • 31. Models help • “Visualize” the system • Agreement with customers • Agreement with sponsors • Estimation • Costing • Scalability and reliability planning
  • 32. Can be built by one person Requires Minimal modeling Simple process Simple tools Architecting a dog house
  • 33. Architecting a house Built most efficiently and timely by a team Requires Modeling Well-defined process Power tools
  • 35. When not to model? • Trivial systems • Over-modelling of modest systems • Over-modelling of large systems – diagrams for diagrams sake – excessive detail
  • 36. Types of models • Static model – snapshot of a system’s parameters at rest or at specific point in time (e.g) class diagram • A dynamic model can be viewed as collection of procedures or behavior of a system over time. It shows how business objects interact to perform tasks.
  • 37. Defining UML Modeling with UML Analyzing UML’s Strengths and Weaknesses • Describing the Modeling Process • Defining the Syntax of UML • Clarifying with an Example OUTLINE
  • 38. Unified Modeling Language is a standard language for writing software blueprints WHAT IS UML? Defining UML Modeling with UML Analyzing UML Examples
  • 39. WHO DEVELOPED IT? Object Management Group Grady Booch James Rumbaugh Ivar Jacobson Defining UML Modeling with UML Analyzing UML Examples
  • 42. UML TOOLS Defining UML Modeling with UML Analyzing UML Examples Rational Rose - IBM ArgoUML – Tigris http://argouml.tigris.org/ Visual paradigm suite
  • 44. PRESCRIBED PROCESS Object – Oriented (although not limited) Use Case Driven Architecture-centric Iterative and Incremental Defining UML Modeling with UML Analyzing UML Examples
  • 45. ARCHITECTURE CENTRIC Design View Deployment View Process View Implementation View Use Case View Design View Use Case View Defining UML Modeling with UML Analyzing UML Examples End-user Functionality Analysts/ Designers structures Programmers Software management System topology Delivery, installation communication Performance Scalability Throughput System Integrators
  • 46. SYNTAX AND DIAGRAMS Things Relationships Diagrams • Structural • Realization • Annotational • Grouping • Behavioral • Generalization • Association • Dependency class Window size open() waiting state Business rules package Return copies notes dependency association Generalization Realization Defining UML Modeling with UML Analyzing UML Examples
  • 48. There are about 9 types of diagrams in UML1.5 Sequence Diagrams Dynamic views Static views Collaboration Diagrams Activity Diagrams Statechart Diagrams Class Diagrams Object Diagrams Component Diagrams Deployment Diagrams Model Some part of the model might not be visible on any diagram Use Case Diagrams
  • 49. Workflows and Models Requirements Design Implementation Test Analysis Use Case Model Design Model Deploym. Model Impl. Model Analysis Model Test Model UML diagrams provide views into each model Each workflow is associated with one or more models.
  • 50. Use Case Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model
  • 51. Analysis & Design Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model Incl. subsystems and packages
  • 52. Deployment and Implementation Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model Incl. active classes and components
  • 53. Test Model Use Case Diagrams Collaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Statechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Use Case Model Design Model Depl. Model Impl. Model Analysis Model Test Model Test model refers to all other models and uses corresponding diagrams
  • 54. SYNTAX AND DIAGRAMS Static Dynamic Class Object Component Deployment Use Case Sequence Collaboration Statechart Activity Defining UML Modeling with UML Analyzing UML Examples
  • 55. SYNTAX AND DIAGRAMS Defining UML Modeling with UML Analyzing UML Examples Use Case Diagrams Collaboration Diagrams Sequence Diagrams Class Diagrams State Diagrams Activity Diagrams Deployment Diagrams Component Diagrams
  • 56. SYSTEM DESCRIPTION Defining UML Modeling with UML Analyzing UML Examples On-line Grade Record • Computerized system in which teachers record and update grades and students access their personal grade records
  • 57. USE CASE DIAGRAM Defining UML Modeling with UML Analyzing UML Examples Student Teacher Log in Save Grades Load Grades View Grades Record Grades Update Grades <<include>> <<include>> <<include>> <<include>> <<include>> <<include>>
  • 58. ACTIVITY DIAGRAM Defining UML Modeling with UML Analyzing UML Examples Teacher Website Logon Validate Validate(UID,PWD) Not Validated Validated [valid] [invalid] Display Logon Error Choose Student Load Student Information Load Student …
  • 59. SEQUENCE DIAGRAM Defining UML Modeling with UML Analyzing UML Examples Teacher Web Interface Log Login Teacher Log Logon Attempt Log Successful Logon [successful logon] Log Unsuccessful Logon [unsuccessful logon] Lookup Student [successful logon] Log Student Lookup Logout Teacher [successful logon]
  • 60. COLLABORATION DIAGRAM Defining UML Modeling with UML Analyzing UML Examples 1: LoadClass(Name) :Teacher :Student :Class :FileSystem 1.1: LoadStudents() 1.2: LoadClassInfo() 1.3: LoadRoom() 2: AddStudent(Name)
  • 61. CLASS DIAGRAM Defining UML Modeling with UML Analyzing UML Examples Teacher - Username - Password - Classes + AddClass() + RemoveClass() + ChangePassword(in OldPassword: String, in NewPassword: String) : Boolean {if (oldPassword = Password Attribute) then Password Attribute = NewPassword Return Value = True Else Return Value = False}
  • 62. CLASS DIAGRAM Defining UML Modeling with UML Analyzing UML Examples Teacher Online User Website + Logon() + View() Grades + RecordGrades() + UpdateGrades() - SaveGrades() - LoadGrades() Maintains > 1 1..* Displays > Uses >
  • 63. STATE DIAGRAM Defining UML Modeling with UML Analyzing UML Examples Ready Saving Saved Error Success Failure SaveGrade
  • 64. UML first pass: Sequence diagram :LCDDisplay blinkHours() blinkMinutes() refresh() commitNewTime() :Time incrementMinutes() stopBlinking() :Watch pressButton1() pressButton2() pressButtons1And2() pressButton1() :WatchUser Object Message Activation Sequence diagrams represent the behavior as interactions Actor Lifeline
  • 65. UML first pass: Class diagrams 1 2 push() release() 1 1 blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() LCDDisplay Battery load 1 2 1 Time now 1 Watch Class Association Multiplicity Attribute Operations Class diagrams represent the structure of the system state PushButton
  • 66. UML first pass: Statechart diagrams for objects with interesting dynamic behavior BlinkHours BlinkMinutes IncrementHrs IncrementMin. BlinkSeconds IncrementSec. StopBlinking [button1&2Pressed] [button1Pressed] [button2Pressed] [button2Pressed] [button2Pressed] [button1Pressed] [button1&2Pressed] [button1&2Pressed] State Initial state Final state Transition Event Represent behavior as states and transitions
  • 67. • Show aspects of model implementation, including source code structure and run-time implementation structure • Kinds –component diagram –deployment diagram Implementation Diagrams
  • 68. • Shows the organizations and dependencies among software components • Components include –source code components –binary code components –executable components Component Diagram
  • 71. • Shows the configuration of run-time processing elements and the software components, processes and objects that live on them • Deployment diagrams may be used to show which components may run on which nodes Deployment Diagram
  • 74. UML’s STRENGTHS Defining UML Modeling with UML Analyzing UML Examples UML is a language which directs us to: • Visualize • Specify • Plan • Document Organize, Structure and Communicate
  • 75. UML’s STRENGTHS Defining UML Modeling with UML Analyzing UML Examples Which compels us to be: • More Precise • More Complete • Less Ambiguous Its easy to read and if accepted would be a language that everyone understood
  • 76. UML’s WEAKNESSES Defining UML Modeling with UML Analyzing UML Examples There is a big difference between: Compels and Ensures • There is insufficient means for test and verification (For instance: there is no mean to specify relational tables)
  • 77. Defining UML Modeling with UML Analyzing UML’s Strengths and Weaknesses • Describing the Modeling Process • Defining the Syntax of UML • Clarifying with Examples SUMMARY
  • 78. Booch, G. et al., The Unified Modeling Language User Guide, Addison-Wesley, Toronto, 1998 Roff, J.T., UML A Beginner’s Guide, McGraw Hill/Osborn, Toronto, 2003 BIBLIOGRAPHY