The Software Development Process (SDLC)

Transcription

The Software Development Process (SDLC)
O. Widder. (2013). geek&poke. Available: h(p://geek-­‐and-­‐poke.com h(p://home.hit.no/~hansha/?page=so5ware_development 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) Design Requirements Analysis 4 5 The Development Process The Development Process involves different phases, e.g.: The Requirements may be given by the Customer Requirements Design In this case the overall Requirements are given by the Teacher in the Assignment. The details are wri(en by you! 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! ImplementaWon Errors? Improve your code and fix the bugs TesWng When you are finished, you deploy and test the soluWon on the Customer Site Make sure everything work as expected Deployment 6 FuncWonality Requirements IniWal User Interface Planning Technology Plaaorm SelecWon InstallaWon Requirements Support Technical Architecture Project Plan ApplicaWon Architecure Detailed SpecificaWons Deployment/ Maintenance System Interface Design Design Deployment Finalize User Interface Acceptance TesWng Test Plans ApplicaWon Code Development System TesWng TesWng IntegraWon TesWng ImplementaWon RegressionTesWng System Interface Development Unit TesWng IntegraWon with exisWng Apps 8 O. Widder. (2013). geek&poke. Available: h(p://geek-­‐and-­‐poke.com 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 Customer/Stakeholders Project Manager So5ware Architect Collabora?on! So5ware Designer So5ware Architect So5ware Tester Developer Tester Project Manager etc. 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 TesWng Design 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 Waterfall Method V-­‐Model Agile Methods eXtreme Programming (XP) Lean So5ware Development Spiral model Scrum Feature Driven Development (FDD) Test Driven Development (TDD) 30 So5ware Development Methods Tradi?onal Plan-­‐driven Methods Agile Methods eXtreme Programming (XP) Waterfall Method Scrum Feature Driven Development (FDD) V-­‐Model 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-­‐driven vs. Agile Plan-based development
Requirements
engineering
Design and
implementation
Requirements
specification
Requirements change
requests
Agile development
Requirements
engineering
I. Sommerville, So-ware Engineering: Pearson, 2010. Design and
implementation
32 O. Widder. (2013). geek&poke. Available: h(p://geek-­‐and-­‐poke.com Waterfall method •  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 The Waterfall Model Planning to create a new So5ware Requirement Not Finished? -­‐Go back and Fixit! Finished A SequenWal Process Design Not Finished? -­‐Go back and Fixit! Finished ImplementaWon Not Finished? -­‐Go back and Fixit! You cannot go to next phase before finsihed the previous phase Finished TesWng Not Finished? -­‐Go back and Fixit! Finished 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