1
Hans-‐Pe(er Halvorsen, M.Sc.
The So5ware
Development
Process
(SDLC)
O. W
idde
r. (2013).
ge
ek
&pok
e
. A
vai lab le : h( p: // ge ek -‐an d-‐ po ke .c om
IT System
Requirements
Analysis
Design
ImplementaWon
TesWng
Maintenance
Planning
The So5ware
Development
Lifecycle
(
SDLC
)
The Development Process
Design
ImplementaWon
TesWng
Requirements
Deployment
In this case the overall Requirements are given by the Teacher in the
Assignment.
The details are wri(en by you!
The Development Process involves different phases, e.g.: The Requirements may be
given by the Customer
When you are finished, you deploy and test the soluWon on the Customer Site
Make sure everything work as expected
The Design phase is important, but make sure you have Wme le5 for all the other tasks as well)
Are the Design wrong? Go back and correct it!
Errors? Improve your code and fix the bugs
Requirements
Design
ImplementaWon
TesWng
Deployment/
Maintenance
System TesWng
FuncWonality Requirements
IniWal User Interface
Technology Plaaorm SelecWon Technical Architecture Project Plan
Detailed SpecificaWons
Finalize User Interface ApplicaWon Architecure
System Interface Design
Test Plans
Unit TesWng IntegraWon with exisWng Apps
ApplicaWon Code Development
System Interface Development Acceptance
TesWng InstallaWon
RegressionTesWng IntegraWon TesWng
Deployment
Support
O. W
idde
r. (2013).
ge
ek
&pok
e
. A
vai lab le : h( p: // ge ek -‐an d-‐ po ke .c om
So5ware Releases
9
Alpha
Release
Beta
Releases
RC
(Release Candidate)
RTM
(Release To Manufacturing)
Note! other terms are also used Start
So5ware Releases
Before the so5ware is released
•
Alpha
Release(s) (Internal release, not public)
•
Beta
Release(s)
(“Developer Preview”, “Consumer
Preview”)
•
RC
-‐ Release Candidate(s) (“Release Preview”)
•
RTM
– Release To Manufactoring
Maintenance (a5er the so5ware is released)
•
Patches
(small fixes)
•
SP
-‐ Service Packs (lots of small fixes and pathes
bundle together)
, SP1, SP2, R1, R2, ..
…
Teams and Roles
•
Customer/Stakeholders
•
Project Manager
•
So5ware Architect
•
So5ware Designer
•
Developer
•
Tester
•
etc.
11
So5ware Designer Programmer
So5ware Tester
Project Manager So5ware Architect
Collabora?on!
So5ware Tester
System Engineer
Project Manager
Programmer
So5ware Team
So5ware Architect UX Designer
Stakeholders
A System Engineer is a general person that could be a Programmer, Architect, Designer, Tester in different phases in the project, or he could be a tester in one project and a programmer in another project – all in one person. That is usually the case in small companies, while in larger companies these roles (designer, tester, programmer) could be a full-‐Wme job.
Project Planning and Management
B. Lund. (2013). Lunch. Available: h(p://www.lunchstriper.no, h(p://www.dagbladet.no/tegneserie/lunch/
Project Planning Tools:
GanH Chart
, Backlog, Task Board,
Burn Down Chart, etc.
15
Finish Start Project
Management
Documenta?on (Report, etc.) Working with
Project Tasks
Important: Work with these ac?vi?es in parallel!!!
Brainstorming/Kick Off
A Project should always start with a Brainstorming
•
Involve
all in the group
•
Discuss what you are going to do in the project
•
How are you going to solve the project?
Exercise – Brainstorming
•
Have a short brainstorming within the team
–
Who are going to solve the different parts
–
What kind of Frameworks are you going to use
–
What kind of development tools shall you use
–
Etc.
•
Write a short note and and (2-‐3 pages)
Deadlines
As a so5ware developer you need to deal with lots of deadlines during the so5ware project!
So5ware Phases
19
Hans-‐Pe(er Halvorsen, M.Sc. Requirements
Design
ImplementaWon
TesWng Deployment
So5ware Development Process
–
Requirements & Design
•
The Requirements is normally given by the
Customer
•
SRS – So5ware Requirements SpecificaWon
So5ware Requirements & Design
Requirements (WHAT):
•
WHAT
the system should do
•
Describe what the system should do with Words and
Figures,etc.
•
SRS
– So5ware Requirements SpecificaWon
SoZware Design (HOW):
•
HOW
it should do it
•
Examples: GUI Design, UML, ER diagram, CAD, etc.
•
SDD
– So5ware Design Document
Many dont separate SRS and SDD documents, but include everything in a
Requirements document.
So5ware Development Process -‐
Design
How the So5ware will work
•
Technical Design (Plaaorm, Architecture,
etc.)
So5ware Development Process
23
Design
Implementa?on
•
Make sure to have the Design ready before
you start the ImplementaWon (Coding)
•
Flow Charts, UML, Database Modelling, etc.
•
Create Detailed Requirements
•
GUI/HMI – Start by designing your GUI on the
“paper”
Plan what you are going to do
Requirements
So5ware Development Process -‐
Tes?ng
So5ware Development Process -‐
Tes?ng
25
Always test your applicaWon!
•
Test it yourself
•
Test it on other computers and environments
•
Make sure others test your applicaWon
So5ware Development Process -‐ Deployment
So5ware deployment is all of the acWviWes that
make a so5ware system available for use.
•
Make sure the So5ware is well tested
So5ware Development
Methods/Processes
27
How we approach the different phases in so5ware development (Requirements,
Design, ImplementaWon, TesWng, Deployment) differ depending on what kind of
So5ware Development method we choose.
A short overview of the most used/known methods are given on the next slides.
So5ware Development Methods
•
Waterfall model
•
Spiral model
•
V model
•
IteraWve and Incremental development
•
Rapid applicaWon development (RAD)
•
Test Driven Development (TDD)
•
Agile development
–
eXtreme Programming (XP)
–
Scrum
(the most popular Agile method)
•
Lean so5ware development
So5ware Development Methods
Tradi?onal Plan-‐driven
Methods
Agile Methods
Waterfall Method
V-‐Model Scrum
eXtreme Programming
(XP)
Lean So5ware
Development Development (FDD) Feature Driven
So5ware Development Methods
31
Tradi?onal Plan-‐driven Methods Agile Methods
Waterfall Method
V-‐Model
Scrum eXtreme
Programming (XP)
Lean So5ware Development
Feature Driven Development (FDD)
Even if we use different so5ware development methods, we deal with the same phases like Requirements, Design, Coding, TesWng and Deployment – but they may have different
priority and may be done in different manners and order, etc.
Plan-‐driven vs. Agile
32
Requirements specification Requirements engineering Design and implementation Requirements change requests Plan-based development Agile development Requirements
engineering implementationDesign and
Waterfall method
33
O. W
idde
r. (2013).
ge
ek
&pok
e
. A
vai lab le : h( p: // ge ek -‐an d-‐ po ke .c om
•
SequenWal process
•
The Phases Requirements, Design,
ImplementaWon, TesWng,
Deployment and Maintenance
need to be followed in that order.
•
In a strict Waterfall model, a5er
each phase is finished, it proceeds
to the next one.
•
Cons:
–
impossible for any non-‐trivial
project to finish a phase of a
so5ware product's lifecycle
perfectly before moving to the
next phases
–
For example, clients may not
know exactly what requirements
they need before reviewing a
working prototype and
The Waterfall Model
Requirement
Design
ImplementaWon
TesWng
Maintenance
Deployment
So5ware Finished Planning to create a new So5ware
A SequenWal Process
You cannot go to next phase before
finsihed the previous phase
Finished
Finished
Finished
Finished
Not Finished? -‐Go back and Fixit!
Not Finished? -‐Go back and Fixit!
Not Finished? -‐Go back and Fixit!
Not Finished? -‐Go back and Fixit!
V-‐model
V-‐model
•
An extension of the waterfall model
•
More flexible
•
“The V-‐Model reflects a project management
view of so5ware development and fits the
needs of project managers, accountants and
lawyers rather than so5ware developers or
users.”
Spiral model
Spiral model
•
Some key aspecta from Waterfall and RAD
•
IteraWve risk analysis
39
Agile So5ware Development
Agile
41
•
A group of so5ware development methods
•
IteraWve approach
•
Self-‐organizing and cross-‐funcWonal Teams
Examples:
•
Scrum
Scrum
Daily Scrum MeeWngs
Scrum
•
A Framework for So5ware Development
•
Agile So5ware Development method
•
Simple to understand
•
Flexible
•
Exremely difficult to master!
•
Self-‐organizing Teams (3-‐9 persons)
•
Scrum Team:
–
Product Owner
–
Scrum Master
–
Development Team
eXreme Programming (XP)
•
An Agile method
•
Pair Programming
•
Code Reviews
•
Unit TesWng
eXreme Programming (XP)
Exercise
– So5ware Development Methods
•
Make a list with Pros and Cons using the
different methods
•
Use about 20 minutes
“There are no right or wrong so5ware
processes”
Ian Sommerville
It is be(er to use a so5ware
development metod than using none
But someone may be be(er than
other in a given situaWon
Summary
49
References
•
I. Sommerville,
So-ware Engineering
: Pearson, 2010.
•
Wikipedia. (2013).
Scrum Development
. Available:
h(p://en.wikipedia.org/wiki/Scrum_(development)
•
Wikipedia. (2013).
Agile So-ware Development
. Available:
h(p://en.wikipedia.org/wiki/Agile_so5ware_development
•
CoreTrek. (2013).
Scrum i et nø;eskall
. Available:
h(p://www.coretrek.no/scrum-‐i-‐et-‐noe(eskall/category642.html
•
S. Adams.
Dilbert
. Available:
h(p://dilbert.com
•
O. Widder. (2013).
geek&poke
. Available:
h(p://geek-‐and-‐poke.com
•
B. Lund. (2013).
Lunch
. Available:
h(p://www.lunchstriper.no, h(p://www.dagbladet.no/tegneserie/
Hans-‐PeHer Halvorsen, M.Sc.
Telemark University College
Faculty of Technology
Department of Electrical Engineering, Informa?on Technology and Cyberne?cs