The Software Development Process (SDLC)

Similar documents
Agile Software Development

Software Development Process

Software Engineering. Quiz with Explainations. Hans-Petter Halvorsen, M.Sc.

Software Engineering. Hans-Petter Halvorsen

Software Project Management

Requirements Analysis

Week Assignment Software Processes - Agile/Scrum

Software Design COSC 4353/6353 D R. R A J S I N G H

Agile Projects 7. Agile Project Management 21

Game-based Learning System Software Development Plan (SDP) Ver. < 1.1 >

Processes and Life- Cycles. Kristian Sandahl

Johanna Rothman. Chapter 1 Why Agile and Lean Approaches Work. Copyright 2017

ARCHITECTING PROJECT MANAGEMENT for Enterprise Agility. Enable Organization with Agile using Tooling/Technology

Risk Management and the Minimum Viable Product

Processes and Life- Cycles. Kristian Sandahl

The Systems Development Lifecycle

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Software Development Life Cycle:

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Software Engineering

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

CS 320 Introduction to Software Engineering Spring February 01, 2017

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

The Software Life Cycle

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

Introduction to Agile (Scrum)

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

Agile Program Development. Agile Manifesto 9/3/2013. What is Agile Development? 12 Principles of Agile Development 1 of 4

SWE 211 Software Processes

Software Process. Overview

Agile Mindset (1/17/2019 for the Ocean State PMI)

Introduction to Agile and Scrum

FIT2101 Software Engineering Process and Management

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

Tuesday, October 25. Announcements

An Overview of Software Process

Software Development Life Cycle

Agile Methodology. Tech Focus. Agile Methodology: Characteristics. Techspace Home Tech Focus Case Study Trend Watch Thought Post

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

Criteria. Kanban. Scrum. Acceptance. Acceptance Criteria. Kanban. Scrum. Refinement. Agile Manifesto. Acceptance Test. Product Backlog.

Metodologías Agiles en E///

Transition from conventional to Agile process model An Experience Report

Sign up to mailing list Join Slack, teaching team is available. All links are on the course website Slides are uploaded there too

Agile Software Development in a Regulated Environment. Natalie Custer

4. Agile Methods. Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg. Version of

Introduction. Agile overview. 12 Agile Principles

Session 12: Developing and Managing Technology

03. Perspective Process Models

Introduction to Software Engineering: Project Management ( Highlights )

Chapter 01 - The Process The Process Application Process ACP Qualifications Scheduling Your Exam Rescheduling/Cancelling Fees

Agile Essentials Track: Business Services

KANBAN and TEAMWORK. Natural User Interface Technology to Business Erasmus Intensive Programme LAHTI

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

BCS Level 4 Diploma in Software Development Methodologies QAN 603/0543/5

Software Engineering Part 2

INTRODUCTION. Objectives. Unit 1: Introduction to Systems Analysis and Design. Key Ideas


IT Project Management: Overview, traditional and agile approaches

Agile Delivery Framework (ADF)

Software Processes. With a focus on Agile/Scrum CPSC310 Software Engineering

Experiential Education for Agile Software Engineering

The Basic Waterfall Model. Software Process Models. Concurrent Development. (Concurrent Development) The Agile Critique of the Waterfall

The Software Life Cycle

Foundations of Software Engineering. Lecture 16: Process: Linear to Iterative Michael Hilton

Software Engineering Fall 2014

Johanna Rothman Part II Design and Manage an Agile and Lean Project Chapter 5 Start Your Agile Project Right. Copyright 2017

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Lecture 8 Agile Software Development

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum

PMI Agile Certified Practitioner (PMI-ACP) Duration: 48 Hours

Agile Methodologies: Working Mechanism with Pros and Cons

Introduction to Systems Analysis and Design

Adaptive Software Development for Developing Safety Critical Software

Software Project Management

MIS Systems & Infrastructure Lifecycle Management 1. Week 10 March 24, 2016

AGILE SOLUTIONS. Agile Basics

CSC301. Scrum, detailed view of an agile process. CSC301, Winter 2016

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

A Review Paper on Software Testing

Improving the Test Process

Waterfall model is the earliest SDLC approach that was used for software development.

Businesses now operate in rapidly changing environment.

It is not just programming. Cartoon source:

Agile at Mid-Scale. Al Shalloway. Introducing FLow for Enterprise Transformations (FLEX)

What is Continuous Integration. And how do I get there

SAFe 4.5 Advanced Scrum Master.

Agile Software Requirements. Matthew Renze Iowa State University COMS 409 Software Requirements

Ulf Eriksson

3. Comparison of Above Described SDLC Models

approach to successful project

Lean IT Opex in the Clouds August 16, 2017 Sudhagar Raghavan

Project Management. Session 3: Planning

[Name] [ ID] [Contact Number]

SwissQ Agile Trends & Benchmarks Switzerland Where are we now where are we going to?

Chapter 7. Project Reporting Keeping Everything Visible

Transcription:

http://home.hit.no/~hansha/?page=software_development O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com The Software Development Process (SDLC) Hans-Petter Halvorsen

IT System B. Lund. (2013). Lunch. Available: http://www.lunchstriper.no, http://www.dagbladet.no/tegneserie/lunch/

Deployment Planning Maintenance Testing Implementation The Software 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 written by you! Are the Design wrong? Go back and correct it! Design Implementation The Design phase is important, but make sure you have time left for all the other tasks as well) Testing Errors? Improve your code and fix the bugs Make sure everything work as expected When you are finished, you deploy and test the solution on the Customer Site Deployment 6

Installation Deployment Acceptance Testing Support Deployment/ Maintenance Functionality Requirements Initial User Interface Planning Technology Platform Selection Requirements Technical Architecture Project Plan Design Application Architecure Detailed Specifications System Interface Design Finalize User Interface Test Plans System Testing Testing Implementation Application Code Development System Interface Development Integration Testing RegressionTesting Unit Testing Integration with existing Apps

O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com 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 Project Manager Software Architect Software Designer Developer Tester etc. Software Architect Collaboration! Project Manager Customer/Stakeholders Software Tester 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 Management Working with Project Tasks Documentation (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 Design Plan what you are going to do before you actually do it Implementation 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 Planning Tests Perform Tests Document Test 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 Methods Agile Methods Waterfall Method V-Model extreme Programming (XP) Scrum Lean Software Development Feature Driven Development (FDD) Spiral model Kanban Test Driven Development (TDD) 30

Software Development Methods Traditional Plan-driven Methods Agile Methods Waterfall Method extreme Programming (XP) Scrum V-Model Spiral model Lean Software Development Feature Driven Development (FDD) Kanban Test Driven Development (TDD) 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-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, Software Engineering: Pearson, 2010. 32

Waterfall method O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com Sequential process The Phases Requirements, Design, Implementation, Testing, Deployment and Maintenance need to be followed in that order. In a strict Waterfall model, after each phase is finished, it proceeds to the next one. Cons: impossible for any non-trivial project to finish a phase of a software 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 commenting on it 33

Planning to create a new Software The Waterfall Model Requirement Finished A Sequential Process Not Finished? -Go back and Fixit! Design Finished Not Finished? -Go back and Fixit! Implementation Finished Not Finished? -Go back and Fixit! You cannot go to next phase before finsihed the previous phase Testing Not Finished? -Go back and Fixit! Finished Deployment 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 Scrum Flow-based 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 Timeboxbased (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: hans.p.halvorsen@hit.no Blog: http://home.hit.no/~hansha/