UML and Software Development
Process
□ Software Development Activities
□ Object-Oriented Analysis and Design
□ Software Development Processes
□ UML and Software Development Processes
OOAD
55
Main Software Development Activities
Requirements
Analysis Design
Gathering
Design the solution /
Define requirement Define the conceptual model
software plan
specification
Implementation Integration and Test Deployment
Code the system based on Prove that the system meets
Installation and training
the design the requirements
Maintenance
Post-install review
Support docs
Active support
OOAD
56
Analysis emphasizes an investigation of the
problem and requirements, rather than a solution.
During object-oriented analysis, there is an
emphasis on finding and describing object or
concepts in the problem domain.
If a cash register system at the supermarket is desired
How will it be used?
What are its functions?
OOAD
57
Design emphasizes a conceptual solution in
software that fulfils the requirements and “guides”
the implementation.
During object-oriented design, there is an
emphasis on defining software objects and how
they collaborate to fulfil the requirements.
Database schema
Class diagram
Package diagram
Design specification of the cash register system
OOAD
58
OOAD
59
Software development process is a series of
software development activities that a software
program goes through when developed
es
ss
e
oc
pr
t
en
pm
lo
ve
de
e
ar
tw
of
S
OOAD
60
Ad-hoc Coding “process”
□ Does not scale to large size project
□ Does not scale to large development teams
OOAD
61
Waterfall process
Requirements
Specification
Analysis
Sequential
Design
Implementation
Integration and
Test
□ An phase is begun only when the previous has finished
□ No return to previous phase
OOAD
62
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
Source: Applied Software Measurement, Capers Jones, 1996.
OOAD
63
Iterative and Agile
Development Processes
OOAD
64
Facts of life
□ Requirements change, changes break existing design.
□ Coding up a design suggests flaws in design
□ Testing identifies flaws in code - which could be design flaws
□ Maintenance requires not only fixes but new features
Source: ?
OOAD
65
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
Source: ?
OOAD
66
Early coding, early testing of partial system
in repeating cycles.
Development begins before all
requirements are defined in detail.
Source: ?
Feedback is used to clarify evolving
specification.
OOAD
67
Benefits
□ Early rather than late mitigation of high risks
□ Early visible progress
□ Managed complexity - the team is not overwhelmed by
Less project failure, better productivity,
“analysis paralysis” or very long and complex steps
□ Early feedback, user engagement, and adaptation, leading to a
and lower defect rates
redefined system that more closely meets the real needs of the
stakeholders
□ Feedback can also improve development process itself
OOAD
68
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
OOAD
69
Scrum
OOAD
70
UML can be used in many software development process
es
ss
e
oc
pr
t
en
+
pm
lo
ve
de
e
ar
tw
of
S
OOAD
71
UML diagrams can be applied to several activities
Requirements Analysis Design
Use-case •
Class, object • •
Activity • ο
State • •
Interaction ο •
Component •
Deployment •
ο : possible usage
• : recommended usage
OOAD
72