http://home.hit.no/~hansha/?page=software_development poke.com - and - The Software
http://geek Development . Available: Process geek&poke (SDLC) O. Widder. (2013). Hans-Petter Halvorsen IT System
B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/ Planning Deployment Maintenance
Testing The Software Development Requirements Lifecycle Analysis (SDLC) Implementation
Design 4 5 The Development Process The Development Process involves different phases, e.g.: In this case the overall Requirements are given by the Teacher in the The Requirements may be Assignment. given by the Customer Requirements The details are written by you!
Design The Design phase is important, but make sure you have time left for all the other tasks as Are the Design wrong? Go well) back and correct it! Implementation
Errors? Improve your code and fix the bugs Testing Make sure everything work as expected
When you are finished, you deploy and test the solution Deployment on the Customer Site 6 Functionality Requirements Initial User Interface Planning Technology Platform Selection Technical Architecture Support Requirements Installation Project Plan Application Architecure Detailed Specifications System Interface Deployment/ Design Maintenance Design
Deployment Finalize User Interface
Acceptance Test Plans Testing
Application Code Development System Testing Testing Implementation System Interface Development
Unit Testing RegressionTesting Integration Testing Integration with existing Apps poke.com - and - http://geek . Available: geek&poke O. Widder. (2013). 8 Software Releases Start
Alpha Release
Beta Releases
RC (Release Candidate)
RTM (Release To Manufacturing)
Finished Note! other terms are also used 9 Software Releases
Before the software 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 (after the software is released) • Patches (small fixes) • SP - Service Packs (lots of small fixes and pathes bundle together), SP1, SP2, R1, R2, .. … Start Planning next Release 10 Teams and Roles
Customer/Stakeholders • Customer/Stakeholders • Project Manager • Software Architect Collaboration! • Software Designer • Developer Software Architect Software Tester • Tester • etc. Project Manager
Software Designer Programmer
11 Software Teams
12 Software Team
Stakeholders
Project Manager Software Tester
UX Designer System Engineer
Programmer
Software Architect
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-time job. Project Planning and Management
Project Planning Tools: Gantt Chart, Backlog, Task Board, Burn Down Chart, etc.
B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/ 14 How to work in the project period
Project Working with Documentation Management Project Tasks (Report, etc.) Start
Finish
Important: Work with these activities in parallel!!! 15 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? • etc.
16 Deadlines As a software developer you need to deal with lots of deadlines during the software project!
Proper Project Planning and Management makes it easier to fulfill these deadlines
17 Software Phases
Hans-Petter Halvorsen Software Phases
Requirements
Deployment Design
Testing Implementation Software Development Process – Requirements & Design
• The Requirements is normally given by the Customer • SRS – Software Requirements Specification document Software Requirements & Design Requirements (WHAT): • WHAT the system should do • Describe what the system should do with Words and Figures,etc. • SRS – Software Requirements Specification Software Design (HOW): • HOW it should do it • Examples: GUI Design, UML, ER diagram, CAD, etc. • SDD – Software Design Document Many dont separate SRS and SDD documents, but include everything in a Requirements document. In practice, requirements and design are inseparable. Software Development Process - Design
How the Software will work • Technical Design (Platform, Architecture, etc.) • UX Design (User eXperience, GUI/HMI)
22 Software Development Process
Requirements
Plan what you are going to do Design Implementation before you actually do it
• Make sure to have the Design ready before you start the Implementation (Coding) • Flow Charts, UML, Database Modelling, etc. • Create Detailed Requirements • GUI/HMI – Start by designing your GUI on the “paper”
23 Software Development Process - Testing
Document Test Planning Tests Perform Tests Results
24 Software Development Process - Testing
Always test your application! • Test it yourself • Test it on other computers and environments • Make sure others test your application • Eat Your Own Dog Food
25 Software Development Process - Deployment
Software deployment is all of the activities that make a software system available for use. • Make sure the Software is well tested • The Software should be easy to install
26 Software Development Methods/Processes
How we approach the different phases in software development (Requirements, Design, Implementation, Testing, Deployment) differ depending on what kind of Software Development method we choose.
A short overview of the most used/known methods are given on the next slides.
Hans-Petter Halvorsen Software Development Methods
• Waterfall model • Spiral model • V model • Iterative and Incremental development • Rapid application development (RAD) • Test Driven Development (TDD) • Agile development – eXtreme Programming (XP) – Scrum (the most popular Agile method) • Lean software development • Kanban • etc.
28 29 Software Development Methods
Traditional Plan-driven Agile Methods Methods
eXtreme Programming Scrum V-Model Waterfall (XP) Method
Lean Software Feature Driven Development Development (FDD)
Test Driven Kanban Spiral model Development (TDD) 30 Software Development Methods
Traditional Plan-driven Methods Agile Methods
eXtreme Programming (XP) Waterfall Method Scrum
Feature Driven Development (FDD) V-Model Test Driven Development (TDD) Spiral model Lean Software Development Kanban Even if we use different software development methods, we deal with the same phases like Requirements, Design, Coding, Testing and Deployment – but they may have different priority and may be done in different manners and order, etc. 31 Plan-driven vs. Agile Plan-based development
Requirements Requirements Design and engineering specification implementation
Requirements change requests
Agile development
Requirements Design and engineering implementation
I. Sommerville, Software Engineering: Pearson, 2010. 32 Waterfall method • Sequential process • The Phases Requirements, Design, Implementation, Testing, Deployment and Maintenance poke.com
- need to be followed in that order. and
- • In a strict Waterfall model, after each phase is finished, it proceeds to the next one.
http://geek • Cons: – impossible for any non-trivial project to finish a phase of a
. Available: software product's lifecycle perfectly before moving to the next phases
geek&poke – For example, clients may not know exactly what requirements they need before reviewing a working prototype and commenting on it O. Widder. (2013). 33 The Waterfall Model Planning to create a new Software
Finished Requirement A Sequential Process
Finished Not Finished? -Go back and Fixit! Design
Finished Not Finished? Implementation -Go back and Fixit!
Finished Not Finished? -Go back and Fixit! Testing
You cannot go to next phase before Deployment Not Finished? finsihed the previous phase -Go back and Fixit! Maintenance
Software Finished V-model
35 V-model
• An extension of the waterfall model • More flexible
• “The V-Model reflects a project management view of software development and fits the needs of project managers, accountants and lawyers rather than software developers or users.”
36 Spiral model
37 Spiral model
• Some key aspecta from Waterfall and RAD • Iterative risk analysis • Suitable for large-scale complex systems
38 Agile Software Development
Hans-Petter Halvorsen 40 Agile
• A group of software development methods • Iterative approach • Self-organizing and cross-functional Teams Examples: • eXtreme Programming (XP) • Scrum • Kanban
41 Agile
Focus on Programmig Focus on Process
XP Timebox-based Flow-based
Scrum Kanban
42 Scrum
Daily Scrum Meetings
Sprint Review
43 Scrum
• A Framework for Software Development • Agile Software Development method • Simple to understand • Flexible • Exremely difficult to master! • Self-organizing Teams (3-9 persons) • Scrum Team: – Product Owner – Scrum Master – Development Team
44 Kanban
• Kanban is based on Lean and Toyota production priciples – Just-in-Time principle • Kanban has fewer “rules” than scrum • Kanban is flow-based, while Scrum is Timebox- based (Sprints) • Limit WIP (Work in Progress) • Less focus on Esitmation
45 Kanban board (Task board)
https://kanbanflow.com
Similiar to the Taskboard used in Scrum 46 eXreme Programming (XP)
• An Agile method • Pair Programming • Code Reviews • Unit Testing • Standup Meetings
47 eXreme Programming (XP)
48 TDD
49 Finally…
“There are no right or wrong software processes” Ian Sommerville
But someone may be better than other in a given situation It is better to use a software development metod than using none
50 Summary
Learn from your previous mistakes!
51 References
• I. Sommerville, Software Engineering: Pearson, 2010. • Wikipedia. (2013). Scrum Development. Available: http://en.wikipedia.org/wiki/Scrum_(development) • Wikipedia. (2013). Agile Software Development. Available: http://en.wikipedia.org/wiki/Agile_software_development • CoreTrek. (2013). Scrum i et nøtteskall. Available: http://www.coretrek.no/scrum-i-et-noetteskall/category642.html • S. Adams. Dilbert. Available: http://dilbert.com • O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com • B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/
52 Hans-Petter Halvorsen, M.Sc.
University College of Southeast Norway www.usn.no
E-mail: [email protected] Blog: http://home.hit.no/~hansha/