SAD - Ch3 - UML and Software Development Process
SAD - Ch3 - UML and Software Development Process
ANALYSIS AND
DESIGN
Nguyen Thanh Binh, Nguyen Quang Vu, Le Viet Truong, Nguyen Thi Hanh, Vo Van
Luong, Le Thi Bich Tra
Faculty of Computer Science
UML and Software
Development Process
• Software Development Activities
• Object-Oriented Analysis and Design
• Software Development Process
• UML and Software Development Process
Main Software Development Activities
Requirements
Design
Gathering Analysis
Design the solution /
Define requirement Define the conceptual model
software plan
specification
Maintenance
Post-install review
Support docs
Active support
3
Object-Oriented Analysis and Design
Package diagram
5
Object-Oriented Analysis and Design
6
Software development process
es
e ss
oc
t pr
en
Requirements
Specification
pm
Analysis
lo
ve
Design
de
Implementatio
n
e
Integration and
ar
Test
w
ft
Deployment
So
Maintenance
7
Ad-hoc Coding “process”
• Does not scale to large size project
• Does not scale to large development teams
8
Waterfall process
Requirements
Specification
Analysis
Sequential
Design
Implementati
on
Integration
and
Test
Deployment
• An phase is begun only when the previous has finished
• No return to previous phase Maintenance
9
Critique of Waterfall process
• Responds poorly to changes and problems
• Substantial upfront document
• Assumes fixed specification - may not be what customer wants
• Fixes come very late - costlier to fix later time
10
Iterative and Agile Development
Processes
Facts of life
12
Philosophy
• Embrace change
• Don’t do too much, too soon
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
13
Early coding, early testing of partial system
in repeating cycles.
Development begins before all
requirements are defined in detail.
Feedback is used to clarify evolving
specification.
14
Benefits
15
Agile software development methods
• Adaptive software development (ASD)
• Agile modeling
• Agile Unified Process (AUP)
• Crystal Clear Methods
• Disciplined agile delivery
• Dynamic Systems development method (DSDM)
• Extreme programming
• Feature-driven development (FDD)
• Lean software development
• Kanban
• Scrum
16
Scrum
17
UML can be used in many software development
process
es
e ss
oc
pr
+
t
en
Requirements
Specification
pm
Analysis
lo
ve
Design
de
Implementation
e
Integration and
ar
Test
w
ft
Deployment
So
Maintenance
18
UML diagrams can be applied to several
activities
Class, object • •
Activity • ο
State • •
Interaction ο •
Component •
Deployment •
ο : possible usage
• : recommended usage
19