Você está na página 1de 45

Software Engineering Methodologies

PETRU MAIOR UNIVERSITY


Dumitru Radoiu
March 2012
Agenda
Why do we need a SE Mehodology?
Waterfall Methodology
Spiral Methodology
Iterative Methodology
Rational Unified Process
Agile Unified Processes (DSDM, XP, SCRUM...)
CMM

Project Management - PM
time
OO Analysis
OO Design OO Implementation
Software Engineering - SE
Coding/Programming
Coding/Programming
Initiation Planning Execution
Monitoring
& Control
Closing
Looks familiar?

He: "I want the system to be fast."
You: "Sure."
He: "And easy to use."
You: "Understandable."
He: "All documents should be then located in one central
repository, like our archive in the basement."
You: "Agreed."
He: "We require every employee to sign a card during check-in
and check-out of the document. But we also must comply to the
latest guidelines XYZ."
You: "OK" (taking notes)

time
Analysis
Design Implementation
Software Engineering SW E
Development/Programming
Development/Programming
Initiation Planning Execution
Monitoring
& Control
Closing
Test Deployment
Project Management - PM
Software Development Life Cycle - SDLC
Development/Programming Methodologies
Microsoft Technologies: .NET, ASP.NET,
C/C++, SQL 2005/2008, WPF, WCF,
Silverlight, SharePoint 3.0, CRM 4.0,
Navision and Axapta
Other: Oracle, AJAX, Java
PM Methodologies
PMBOK
Prince 2
SW Methodologies
Waterfall
V-Shaped SDLC Model
Prototyping
Agile
Scrum (2-4 weeks sprints)
RAD/DSDM
RUP
+ virtual teams adapted variants
Project Mangement, Software Engineering & Development Methodologies
Starting Up
a Project
time
Requirements
Product
Service or
Result
Closing
Initiating a
Project
Business
Case
Directing a Project
Deliverables
Highlight Report
Exception Plan
presented
Managing
Product
Delivery 1

Controlling
Stage 1
Managing
Stage 1-2
Boundarie
s
Stage 1
Managing
Product
Delivery 2

Controlling
Stage 2
Managing
Stage 2-3
Boundaries
Managing
Product
Delivery 3

Controlling
Stage 3
Managing
Stage 3-4
Boundarie
s
Stage 2
Stage 3
Deliverables
Highlight Report
Exception Plan
approved
Project Management Methodologies E.g. PRINCE2
Customer
Quality
Expectations
time
Heavy weight
Light weight
Software Engineering Methodologies
Rational Unified Process
SCRUM
Agile Methodologies:
DSDM, XP, SCRUM
CMMi
Sysgenic is CMMi level 3
certified
Development/Programming Methodologies
Computing organized
around CODE
Ada, Basic, Visual
Basic, Pascal,
Fortran, C
Cobol, RDBMS
Computing organized
around DATA
OO-Languages: C++,
Java, C#
Computing organized
around COMPONENTS
COM, DCOM,
CORBA, EJB
Computing organized
around DOCUMENTS
SGML, HTML, XML,
XHTML
Computing organized
around OBJECTS
Computing organized
around MACHINES
Assemble languages
I
n
i
t
i
a
t
i
o
n

P
l
a
n
n
i
n
g

E
x
e
c
u
t
i
o
n

M
o
n
i
t
o
r
i
n
g

&

C
o
n
t
r
o
l

C
l
o
s
i
n
g

Project Management
Methodology - PMP
Software Engineering
Methodology - SCRUM
Development Methodology
COMPONENT ORIENTED
PROGRAMMING
3D View
Agenda
Why do we need a SE Mehodology?
Waterfall Methodology
Spiral Methodology
Iterative Methodology
Rational Unified Process
Agile Unified Processes (DSDM, XP, SCRUM...)
CMM

Analysis
Design
Implementation
Project
Waterfall Methodology
Waterfall SDLC model is used when:
Requirements are very well known
Product definition is stable
Technology is understood
We are requested to develop a new version
of an existing product
We are requested to port an existing product
to a new platform

Waterfall Methodology
Fixed By contract
scope
time budget
Estimated
What are the risks?
Agenda
Why do we need a SE Mehodology?
Waterfall Methodology
Spiral Methodology
Iterative Methodology
Rational Unified Process
Agile Unified Processes (DSDM, XP, SCRUM...)
CMM

The Spiral Process Model
Analysis
Design
Implementation
Analysis
Must have functionality
deadline
Project
The Spiral Process Model
Analysis
Design
Implementation
Analysis
Design
Implementation
Nice to have features
Project
The Spiral Process Model
Analysis
Design
Implementation
Analysis
Design
Implementation
Analysis
Design
Implementation
Never used functionality
Project
Spiral SDLC Model when:

When creation of a prototype is appropriate
For medium to high-risk projects
Long-term project commitment unwise
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (R&D)

Agenda
Why do we need a SE Mehodology?
Waterfall Methodology
Spiral Methodology
Iterative Methodology
Rational Unified Process
Agile Unified Processes (DSDM, XP, SCRUM...)
CMM

The Iterative Process Model
Analysis
Design Implementation
Component A Component B Component C
Analysis
Design
Implementation
Analysis
Design
Implementation
Analysis
Design
Implementation
Project
A ready C ready
B ready
Waterfall SDLC model is used when:
Requirements are very well known
Product definition is stable
Technology is understood
We are requested to develop a new version
of an existing product
We are requested to port an existing product
to a new platform

Software Engineering Methodologies
V-Shaped* SDLC Model when:

Requested to develop high reliability
systems
All requirements are known up-front
When requested also to handle changing
requirements beyond analysis phase
Solution and technology are known

*Waterfall + extra V&V; test every phase

Prototyping SDLC when:
Requirements are unstable/not clearly
known
As a clarification of requirements in all
SDLCs
Almost always when developing a GUI
We are requested a proof of concept

RAD SDLC when:
Reasonably well-known requirements
User involved throughout the life cycle
Project can be time-boxed
Functionality delivered in increments
High performance not required
Low technical risks
System can be modularized

Incremental SDLC when:
Need for early benefits as we go
Most of the requirements are known up-front
but are expected to evolve over time
A need to get basic functionality to the
market early
The project has lengthy dev. schedules
On a project with new technology

Software Engineering Methodologies
Spiral SDLC Model when:

When creation of a prototype is appropriate
For medium to high-risk projects
Long-term project commitment unwise
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (R&D)

Agile SDLC when:
We need to speed up or bypass one or more
life cycle phases
Less formalism and reduced scope is
accepted
Used for time-critical applications
We used it only with very disciplined teams
and customers mastering SW W methods

Xtreme Programming SDLC when:
For small-to-medium-sized teams
developing software with vague or rapidly
changing requirements
Coding is the key activity throughout a
software project
Communication among teammates is done
with code
Life cycle and behavior of complex objects
defined in test cases again in code

Agenda
Why do we need a SE Mehodology?
Waterfall Methodology
Spiral Methodology
Iterative Methodology
Rational Unified Process
Agile Unified Processes (DSDM, XP, SCRUM...)
CMM

Inception Elaboration Construction Transition
Major
Milestones
The RUP Model (Unified Process Model)
A
D
I
A
D
I
A
D
I
A
D
I
A
D
I
Identify the
system to
develop
Design in detail
the system
Write the
software
Deliver to the
users
Model 20%
Model 80% Develop 100%
Delivery
Documentation
Training
Fine tuning
Inception - Define the scope of project (20% model)
Elaboration - Plan project, specify features, baseline architecture (80%
model)
Construction - Build the product (100% development)
Transition - Transition the product into end user community
time
Inception Elaboration Construction Transition
Major
Milestones
RUP Model Phases
Inception Elaboration Construction Transition
Major
Milestones
Preliminary
Iteration
Architect.
Iteration
Architect.
Iteration
Devel.
Iteration
Devel.
Iteration
Devel.
Iteration
Transition
Iteration
Transition
Iteration
Inception Elaboration Construction Transition
Releases
RUP Model Iterations
An iteration = a distinct sequence of
activities with an established plan and
evaluation criteria, resulting in an
executable release (internal or external)
Developing the product
Time
Content
t1 t2 t3
p2
p3
p1
- Reduce risk
- Better control
- Client feedback
- Final acceptance
RUP Model: Iterative and Incremental
Project Management
Project Environment
Business Modeling
Implementation
Test
Design
Preliminary
Iteration(s)
Iter.
#1
SW Development Phases
Process Workflows
Supporting Workflows
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Deployment
Change Management
Business Req.
Elaboration Transition Inception Construction
time
A workflow shows all the activities
you might go through to produce a
particular set of artifacts
ONE Iteration ONLY
Production
20% 80%
Operation &
Support
SW development lifetime
SW lifetime in
production
SW lifetime
Portofolio Mngm.
OperationSupport
Ensures high
quality and
high
availability of
SW
Opportunity
for reuse, mng
several
projects
simultaneously
RUP Methodology
Artifacts of the Inception Phase:

Vision document
Stakeholder Needs document (10-20% complete)
Initial project glossary
A business case
A domain model
An initial business model
Use-Case Storyboard
Supplementary Specification document (describes what the system
will do)
User-Interface Prototype
A credible plan for the entire project
A credible initial tailoring of your sw development process
A Plan for the Elaboration Phase
Agenda
Why do we need a SE Mehodology?
Waterfall Methodology
Spiral Methodology
Iterative Methodology
Rational Unified Process
Agile Unified Processes (DSDM, XP, SCRUM...)
CMM

The Agile Manifest
Process and tools Individuals and interactions over
Following a plan Responding to change over
Source: www.agilemanifesto.org
Comprehensive documentation Working software over
Contract negotiation Customer collaboration over
Agile Methodology
Project
Fixed
time and
budget
Use case 1
Use case 2
Use case 3
Use case 4
Use case 5
Use case n
Use case n+1
High priority
Low priority
Release backlog
Fixed By contract
scope
time
budget
Estimated
Agile
AGILE MANIFESTO:
1. People and interactions OVER Processes & Tools
2. Working software OVER Comprehensive documentation
3. Customer collaboration OVER Contract negotiation
Agile Methodology vs. Waterfall
Fixed By contract
scope
time
budget
Estimated
Waterfall
Agile
time
budget
scope
Rather than doing all of one thing at a time...
...Scrum teams do a little of everything all the
time
Analysis
Design Implementation
SCRUM - The Opposite of Waterfall
Product owner
Scrum Master
Team
Roles
Product backlog
Sprint backlog
Burn down charts
Artifacts
Sprint planning
Sprint review
Sprint retrospective
Daily scrum meeting
Ceremonies
SCRUM Framework
Sprint planning meeting
Sprint prioritization
Analyze and evaluate product
backlog
Select sprint goal
Sprint planning
Decide how to achieve sprint
goal (design)
Create sprint backlog (tasks)
from product backlog items
(user stories / features)
Estimate sprint backlog in
hours
Sprint
goal
Sprint
backlog
Business
conditions
Team
capacity
Product
backlog
Techno-
logy
Current
product
Parameters
Daily
15-minutes
Stand-up
Not for problem solving
Whole world is invited
Only team members, ScrumMaster, product owner, can talk
Helps avoid other unnecessary meetings
The daily SCRUM
A sprint backlog
Tasks
Code the user interface
Code the middle tier
Test the middle tier
Write online help
Write the foo class
Mon
8
16
8
12
8
Tues
4
12
16
8
Wed Thur
4
11
8
4
Fri
8
8
Add error logging
8
10
16
8
8
A sprint burndown chart
H
o
u
r
s

H
o
u
r
s

40
30
20
10
0
Mon Tue Wed Thu Fri
Tasks
Code the user interface
Code the middle tier
Test the middle tier
Write online help
Mon
8
16
8
12
Tues Wed Thur Fri
4
12
16
7
11
8
10
16 8
50
Agenda
Why do we need a SE Mehodology?
Waterfall Methodology
Spiral Methodology
Iterative Methodology
Rational Unified Process
Agile Unified Processes (DSDM, XP, SCRUM...)
CMM

Você também pode gostar