h(p://home.hit.no/~hansha/?page=so5ware_development O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com The So5ware Development Process (SDLC) Hans- Pe(er Halvorsen, M.Sc. 1
IT System B. Lund. (2013). Lunch. Available: h(p://www.lunchstriper.no, h(p://www.dagbladet.no/tegneserie/lunch/ 2
Deployment Planning Maintenance TesWng ImplementaWon The So5ware Development Lifecycle (SDLC) Requirements Analysis Design
4
5
The Development Process The Development Process involves different phases, e.g.: The Requirements may be given by the Customer Requirements In this case the overall Requirements are given by the Teacher in the Assignment. The details are wri(en by you! Are the Design wrong? Go back and correct it! Design ImplementaWon The Design phase is important, but make sure you have Wme le5 for all the other tasks as well) TesWng Errors? Improve your code and fix the bugs Make sure everything work as expected When you are finished, you deploy and test the soluwon on the Customer Site Deployment 6
InstallaWon Support Deployment/ Maintenance FuncWonality Requirements IniWal User Interface Planning Technology Plaaorm SelecWon Requirements Technical Architecture Project Plan ApplicaWon Architecure Design Detailed SpecificaWons System Interface Design Deployment Finalize User Interface Acceptance TesWng Test Plans System TesWng TesWng ImplementaWon ApplicaWon Code Development System Interface Development IntegraWon TesWng RegressionTesWng Unit TesWng IntegraWon with exiswng Apps
O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 8
So5ware Releases Start Alpha Release Beta Releases RC (Release Candidate) RTM (Release To Manufacturing) Finished Note! other terms are also used 9
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,.. Start Planning next Release 10
Teams and Roles Customer/Stakeholders Project Manager So5ware Architect So5ware Designer Developer Tester etc. So5ware Architect Project Manager Customer/Stakeholders Collabora?on! So5ware Tester So5ware Designer Programmer 11
So5ware Teams 12
So5ware Team Stakeholders Project Manager So5ware Tester UX Designer System Engineer Programmer So5ware 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- Wme job.
Project Planning and Management Project Planning Tools: GanH Chart, Backlog, Task Board, Burn Down Chart, etc. B. Lund. (2013). Lunch. Available: h(p://www.lunchstriper.no, h(p://www.dagbladet.no/tegneserie/lunch/ 14
How to work in the project period Project Management Working with Project Tasks Documenta?on (Report, etc.) Start Finish Important: Work with these ac?vi?es 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
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) Use about 30 minutes
Deadlines As a so5ware developer you need to deal with lots of deadlines during the so5ware project! Proper Project Planning and Management makes it easier to fulfill these deadlines 18
So5ware Phases Requirements Deployment Design TesWng ImplementaWon Hans- Pe(er Halvorsen, M.Sc. 19
So5ware Development Process Requirements & Design The Requirements is normally given by the Customer SRS So5ware Requirements SpecificaWon document 20
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. In pracwce, requirements and design are inseparable. 21
So5ware Development Process - Design How the So5ware will work Technical Design (Plaaorm, Architecture, etc.) UX Design (User experience, GUI/HMI) 22
So5ware Development Process Requirements Design Plan what you are going to do before you actually do it 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 23
So5ware Development Process - Tes?ng Planning Tests Perform Tests Document Test Results 24
So5ware Development Process - Tes?ng Always test your applicawon! Test it yourself Test it on other computers and environments Make sure others test your applicawon Eat Your Own Dog Food 25
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 The So5ware should be easy to install 26
So5ware Development Methods/Processes 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. Hans- Pe(er Halvorsen, M.Sc. 27
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 etc. 28
29
So5ware Development Methods Tradi?onal Plan- driven Methods Agile Methods Waterfall Method V- Model extreme Programming (XP) Scrum Lean So5ware Development Feature Driven Development (FDD) Spiral model Test Driven Development (TDD) 30
So5ware Development Methods Tradi?onal Plan- driven Methods Agile Methods Waterfall Method extreme Programming (XP) Scrum V- Model Feature Driven Development (FDD) Spiral model Lean So5ware Development Test Driven Development (TDD) 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. 31
Plan-based development Plan- driven vs. Agile Requirements engineering Requirements specification Design and implementation Requirements change requests Agile development Requirements engineering Design and implementation I. Sommerville, So-ware Engineering: Pearson, 2010. 32
Waterfall method O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 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 commenwng on it 33
Planning to create a new So5ware The Waterfall Model Requirement Finished A SequenWal Process Not Finished? - Go back and Fixit! Design Finished Not Finished? - Go back and Fixit! ImplementaWon Finished Not Finished? - Go back and Fixit! TesWng Finished You cannot go to next phase before finsihed the previous phase Not Finished? - Go back and Fixit! Deployment Maintenance So5ware Finished
V- model 35
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. 36
Spiral model 37
Spiral model Some key aspecta from Waterfall and RAD IteraWve risk analysis Suitable for large- scale complex systems 38
Agile So5ware Development Hans- Pe(er Halvorsen, M.Sc. 39
40
Agile A group of so5ware development methods IteraWve approach Self- organizing and cross- funcwonal Teams Examples: Scrum extreme Programming (XP) 41
Scrum Daily Scrum MeeWngs Sprint Review 42
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 43
exreme Programming (XP) An Agile method Pair Programming Code Reviews Unit TesWng Standup MeeWngs 44
exreme Programming (XP) 45
TDD 46
Exercise So5ware Development Methods Make a list with Pros and Cons using the different methods Use about 20 minutes Brief Summary on the blackboard
Finally There are no right or wrong so5ware processes Ian Sommerville But someone may be be(er than other in a given situawon It is be(er to use a so5ware development metod than using none 48
Summary Learn from your previous mistakes! 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/ lunch/ 50
Hans- PeHer Halvorsen, M.Sc. Telemark University College Faculty of Technology Department of Electrical Engineering, Informa?on Technology and Cyberne?cs E- mail: hans.p.halvorsen@hit.no Blog: hhp://home.hit.no/~hansha/ 51