CS 320 Introduction to Software Engineering Spring February 01, 2017

Similar documents
The Software Life Cycle

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

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

CMPT 275 Software Engineering

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Software Process. Overview

The Software Life Cycle

CS 5704: Software Engineering

Software LEIC. Lecture 23

3. Comparison of Above Described SDLC Models

Software Engineering Part 2

An Overview of Software Process

Agile Software Development:

Software Engineering. M Umair.

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Software Engineering

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

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

FIT2101 Software Engineering Process and Management

What is Software Engineering?

CONTENTS. Introduction to Software Engineering. Software Process and Life Cycle Models. Software Life-Cycle Model-2. Chapter 1. Chapter 2.

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Software Life Cycle. Main Topics. Introduction

Introduction to Software Engineering: Project Management ( Highlights )

Processes and Life- Cycles. Kristian Sandahl

The Systems Development Lifecycle

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

Software Engineering QUESTION BANK

Processes and Life- Cycles. Kristian Sandahl

Tuesday, October 25. Announcements

Course Title: Agile for Business Analysts

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Course Title: Agile for Business Analysts

Software Processes 1

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

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

ABHELSINKI UNIVERSITY OF TECHNOLOGY

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

Introduction to Agile Software Development

Agile Software Development

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

Homework 2. Software Development Lifecycle. Today s plan. How complex is software? How complex is software? 2/12/18

Introduction to Agile/Extreme Programming

Software Engineering

CS314 Software Engineering Project Management

Software Processes. CSE-C3610, Software Engineering, 5 cr. Prof. Casper Lassenius

SWE 211 Software Processes

SDLC Models- A Survey

A Comparative Study on Software Development Life Cycle Models

Agile Software Development in a Regulated Environment. Natalie Custer

Transition from conventional to Agile process model An Experience Report

Agile Manifesto & XP

Introduction to Software Engineering

AGILE SOLUTIONS. Agile Basics

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

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

Introduction to Agile and Scrum

Software Development Life Cycle:

The Software Development Process (SDLC)

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

Agile Projects 7. Agile Project Management 21

Being Agile at a Small Agency How to Apply Agile Principles in a Not-So-Iterative Environment

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

Businesses now operate in rapidly changing environment.

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

04. Agile Development

Explore Comparative Analysis Software Development Life Cycle Models

Software Life Cycles and Configuration Management

Lecture 5. Software Processes CSC 4700 Software Engineering. Software Development Processes. The software process

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

Improving the Test Process

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

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

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Agile and Secure Can We Be Both? San Antonio AITP. August 15 th, 2007

The Challenge of Agile Estimating

Agile Development Processes. CSCE Lecture 3-08/31/2017

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

SE310 Analysis and Design of Software

Agile Transformation Key Considerations for success

18-642: Software Development Processes

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

CSE 435 Software Engineering. Sept 14, 2015

Ingegneria del Software Corso di Laurea in Informatica per il Management

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

Software Engineering Fall 2014

How to Utilize Agile Project Management for GIS Projects. Lana Tylka and Jennifer Prather

! How work in building software is done: ! e.g., waterfall process. ! e.g., object-oriented development. ! e.g., requirements inspection process

Software development activities

Process. CMPUT 401 Module 04. Department of Computing Science University of Alberta Ken Wong, 2008

Moonzoo Kim. KAIST cs350 Intro. to SE Spring

AGILE methodology- Scrum

Chapter 3 Prescriptive Process Models

Ian Koenig Quality IS Projects, Inc. Philippines Chapter Project Management Institute June 8 th 2010

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

Succeed with Agile at Scale

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ Software Lifecycle. Emina Torlak

Transcription:

CS 320 Introduction to Software Engineering Spring 2017 February 01, 2017

Recap: software development process Activities and steps Requirements engineering Design and architecture Implementation Verification and Validation Deployment and Maintenance

Recap: verification vs. validation Verification (did we build it right) Does the software meet its specification Static analysis Reason about the program without executing it Dynamic analysis Execute the program and observe its behavior Validation (did we build the right thing?) Does the specification reflect the client s needs?

Today Major software development process models Traditional models Agile models

Major software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model Agile models XP (Extreme Programming) Scrum There are many more models. What do all models have in common?

Major software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model Agile models XP (Extreme Programming) Scrum Same goals: manage risks and produce high quality software. Same activities and steps (e.g., specification, design, implementation, and testing).

Waterfall model Requirements Top-down approach. Linear, non-overlapping activities and steps. Each step is signed off on and then frozen. Most steps result in a final document. Architecture/Design Implementation Verification Maintainance

Waterfall model Requirements Top-down approach. Linear, non-overlapping activities and steps. Each step is signed off on and then frozen. Most steps result in a final document. Architecture/Design Implementation Verification Maintainance What s missing in this simple model?

Waterfall model Requirements Top-down approach. Linear, non-overlapping activities and steps. Each step is signed off on and then frozen. Most steps result in a final document. Backsteps are necessary to allow modifications/re-work. Architecture/Design Implementation Verification Maintainance

Waterfall model Advantages Easy-to-follow, sequential model. Reviews ensure readiness to advance. Works well for well-defined projects (i.e., requirements are well understood). Drawbacks Hard to do all the planning upfront. Final product may not match the client s needs. Step reviews require significant effort.

Prototyping Bottom-up approach. Problem domain or requirements Protoype not well defined or understood. Create small implementations of Refine requirements that are least understood. Reduces risk as requirements are explored before the product is fully developed. Developers gain experience when developing the real product. Review

Prototyping: examples Throwaway prototype Used to explore/understand an aspect of the system (e.g., GUI design flow, module to test client/server communication). Bare-bones implementation Preliminary system that will be built upon to eventually become the final product.

Prototyping Advantages Client involvement and early feedback. Improves requirements and specifications. Reduces risk of developing the wrong product. Drawbacks Time/cost for developing a prototype may be high. Focus may be too narrow (no thinking outside the box).

Spiral model Incremental/iterative model (combines the waterfall model and prototyping). Iterations called spirals. Activity centered: Planning Risk analysis Engineering Evaluation Phased reduction of risks (address high risks early). Boehm, Spiral Development: Experience, Principles,and Refinements, CMU/SEI-2000-SR-008

Spiral model Advantages Early indication of unforeseen problems. Allows for changes. The risk reduces as costs increase. Drawbacks Requires proper risk assessment. Requires a lot of planning and experienced management.

Agile models Agile Manifesto (http://agilemanifesto.org/): Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan.

Agile models: example Extreme Programming (XP) New versions may be built several times per day with products delivered to customers weekly. Adaptation and re-prioritization of requirements. All tests must be run for every build and the build is only accepted if tests run successfully (may rely on test-driven development). What important aspect of extreme programming is missing?

Agile models: example Extreme Programming (XP) Pair programming and continuous code review. Pairs and roles are frequently changed. Improves communication, and feedback.

Agile models Basics Maintain simplicity. Team members choose their own methods, tools etc. Continuous customer involvement. Expect system requirements to change, focus on incremental delivery.

Agile models Advantages Flexibility (changes are expected). Focus on quality (continuous testing). Focus on communication. Drawbacks Requires experienced management and highly skilled developers. Prioritizing requirements can be difficult when there are multiple stakeholders. Best for small to medium (sub) projects.

What s the best model? Consider The project and task at hand. Risk management and quality/cost control. Customer involvement and feedback. Well-definedness of requirements. Experience of management and team members. Project management triangle (pick any two) Scope Time Quality Cost

Summary Software development process models All models have the same goals: manage risks and produce high quality software. All models involve the same activities and steps (e.g., specification, design, implementation, and testing). Traditional models: E.g., Waterfall, Prototyping, Spiral. Agile models: E.g, Extreme Programming (XP).