Quality Assurance Software Development Processes



Similar documents
Software Development Life Cycle (SDLC)

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Software Development Methodologies

Web Application Development Process

A Capability Maturity Model (CMM)

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Corso di Laurea Magistrale in Informatica, Università di Padova Tecnologie open-source, Anno accademico 2010/2011. Development Processes 1 / 51

SOFTWARE ENGINEERING CSC 423 B - MWF EXTREME PROGRAMMING

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006

Agile Projects 7. Agile Project Management 21

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Agile So)ware Development

CSSE 372 Software Project Management: More Agile Project Management

Extreme Programming, an agile software development process

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development


SOFTWARE PROCESS MODELS

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Introduction to extreme Programming (XP)

Extreme Programming, an agile software development process

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Software Development Methodologies

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

XP and Design. Paulo Caroli & Sudhindra Rao. ThoughtWorks

CSE 435 Software Engineering. Sept 16, 2015

Extreme Programming - A Model For Agile Software Development

Basic Unified Process: A Process for Small and Agile Projects

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Basic Trends of Modern Software Development

Software Development Methodologies

Agile Modeling: A Brief Overview

Software development processes Life-cycle Models

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Agile Development Overview

Quality Assurance in an Agile Environment

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Vragen. Software development model. Software development model. Software development model

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

How To Understand The Software Process

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Agile processes. Extreme Programming, an agile software development process

Agile Software Development Methodologies and Its Quality Assurance

Integrating Requirements Engineering into Software Engineering Processes

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Agile and lean methods for managing application development process

Large Scale Systems Design G52LSS

Software Development Process

Extreme Programming: Strengths and Weaknesses

3C05: Unified Software Development Process

Development Methodologies

AGILE CMMI from SMEs perspective

Software Engineering and Scientific Computing

Mapping The Best Practices of XP and Project Management: Well defined approach for Project Manager

Agile with XP and Scrum

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.

White Paper IT Methodology Overview & Context

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Advanced Software Engineering. Software Development Processes

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Agile Models. Software Engineering Marco Scotto Software Engineering

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Agile and Secure: Can We Be Both?

Software Requirements and Specification

Software Life Cycles and Configuration Management

Hamid Faridani March 2011

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

Rapid Software Development

RUP and XP, Part I: Finding Common Ground

Plan-Driven Methodologies

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

An Assessment between Software Development Life Cycle Models of Software Engineering

COMP 354 Introduction to Software Engineering

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Introduction to Agile and Scrum

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Scale agile throughout the enterprise A PwC point of view

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Classical Software Life Cycle Models

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Agile Methodologies and Its Processes

EPL603 Topics in Software Engineering

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Supporting Workflow Overview. CSC532 Fall06

Issues in Internet Design and Development

Transcription:

Quality Assurance Software Development Processes Part II - Lecture 3 1 The University of Auckland New Zealand 254 12/09/ /2012

The FBI Virtual Case File 254 12/09/ /2012 Database application developed by the FBI between 2000 and 2005 To replace legacy stovepipe systems Cost: nearly $170 million Abandoned before deployment Reasons (according to the FBI): Why? Incomplete/changing requirements Management problems Lack of software engineers http://www.fbi.gov/news/testi / /t ti mony/fbis-virtual-case-filesystem Changing team Underestimated complexity 2

Today s Outline /2012 254 12/09/ Software Development Processes (Recap & Overview) extreme Programming (XP) Rational Unified Process (RUP) 3

Software Development Processes No challenge is too great if you plan ahead. And have pointy ears. 4 The University of Auckland New Zealand 254 12/09/ /2012

What is your CMM level today? /2012 254 12/09/ Level Characteristics Key process areas 1 Initial Unstable environment Unpredictable, ad hoc 2 Managed Management processes Based on experience Plan None Requirements management, project planning, tracking and oversight, CM 3 Defined Standardized, docu-mented process Effective SE practices Process definition & focus, training program, SE, peer review 4 Quant. Managed Measurement program Predictably high quality 5 Optimizing Process improvement Analyze defects Disseminate experience Quantitative process management, software quality management Technology & process change management, defect prevention 5

Adaptive vs. Predictive Processes 254 12/09/ /2012 Adaptive Lightweight, agile Control by feedback Many short iterations (weeks) Small scale (<10 developers) Face-to-face communication Code- & people-centric Egalitarian Problems: Long-term results hardly predictable Needs good project foundation Cowboy-coding chaos Predictive Heavyweight, traditional Control by planning Few long iterations (months) Large scale (>30 developers) Written documents Rule-centric Authoritarian Problems: Inflexible with changing requirements High integration i and testing effort Control freak bureaucracy E.g. XP E.g. waterfall, RUP 6

Agile Software Development 254 12/09/ /2012 Evolved in mid 1990s as part of a reaction against heavyweight methods Many short iterations (weeks), prototyping : Iteration #1 #2 #3 Analysis Design Implementation Testing Prototype Analysis Design Implementation Testing Prototype Analysis Design Implementation Testing Prototype Control by feedback: reevaluation & revision of project after each iteration 7

254 12/09/ /2012 extreme Programming (XP) I don't have anything against education - as long as it doesn't interfere with your thinking. 8

XP Overview /2012 254 12/09/ Instead of cowboy coders we have software sheriffs; working together as a team, quick on the draw, armed with a few rules and practices that are light, concise, and effective. (James D. Wells, extremeprogramming.org) XP=eXtreme Programming: Nomen est omen, a code-centered centered approach XP culture: not just about getting work done Set of day-to-day best practices for developers and managers that encourage and embody certain values 5 values, 12 practices/rules 9

254 12/09/ /2012 The 5 XP Values 1. Communication Teamwork: consistent shared view of the system Open office environment: developers, managers, customers Verbal, informal, face-to-face conversation 2. Feedback Cost of Find required changes ASAP to avoid cost change From the customer, through early prototypes & communication Testing, code review, team estimates Point of time 3. Simplicity within project Build the simplest thing that works for today No work that might become unnecessary tomorrow Simple design easier to communicate 4. Courage To change and to scrap, embrace change Better change now (cheaper) Never ever give up! 5. Respect your teammates and your work 10

The 12 XP Practices 254 12/09/ /2012 Fine scale feedback 1. Pair Programming Programming in teams of two: driver and navigator 2. Planning Game: method for project planning with the customer 3. Test Driven Development First write test cases, then program code For each defect, introduce new test case 4. Whole Team: teamwork of customer, developer/manager Shared understanding 5. Use an agreed Coding Standard 6. Collective Code Ownership Everybody is responsible for and can change all code 7. Simple Design 8. System Metaphor Consistent, intuitive naming of program parts 11

The 12 XP Practices 254 12/09/ /2012 Continuous process 9. Continuous Integration Work with latest version Integrate local changes ASAP 10. Refactoring Improve design whenever possible Remove clutter & unnecessary complexity 11. Small Releases s Programmer welfare 12. Sustainable Pace No Overtime change timing or scope instead 12

Some XP Terminology 254 12/09/ /2012 User story Things the system needs to do for the users Written on a card in a few sentences Should take 1-3 weeks to implement Release: running system that implements important user stories Spike Small proof-of-concept prototype Explores the feasibility of an implementation approach Iteration Phase of implementation, 1-3 weeks long Consists of tasks, each of which is 1-3 days long Project velocity: used to estimate progress Either #stories / time (time) Or time / #stories (scope) 13

XP Workflow Overview /2012 254 12/09/ User Stories Project velocity Defects Release Planning Iteration Tests Uncertain Estimates Spike New User Story Confident Estimates Next Iteration Small Release = is followed by = result goes into 14

XP Criticism 254 12/09/ /2012 Relies on on-site customer Single point-of-failure (-> source of stress, lack of technical expertise) May not be representative for all users (-> user conflicts) Unstable Requirements because of informal change requests instead of formal change management (-> rework, scope creep) Lack of documentation, e.g. tests instead of requirements documents Incremental design on-the-fly (-> more redesign effort) Pair-programming required Interdependency of practices requires drastic organizational changes Scalability? Distributed development? 15

The Rational Unified Process (RUP) 16 The University of Auckland New Zealand 254 12/09/ /2012

RUP Overview 254 12/09/ /2012 Extensible, customizable process framework Created by the Rational Software Corporation in the 1980s and 1990s, which was sold to IBM in 2003 Now software process product of IBM IBM sells RUP tools, e.g. Rational Method Composer for authoring, configuring and publishing processes Business-driven development Tied to UML Heavyweight, i.e. of considerable size, but recent changes influenced by lightweight, agile processes 17

6 RUP Best Practices: The RUP ABC /2012 254 12/09/ Adapt the process right-size the process to project needs adapt process ceremony to lifecycle phase continuously improve the process balance project plans and associated estimates with the uncertainty of a project B Balance competing stakeholder priorities understand and prioritize business and stakeholder needs center development activities around stakeholder needs balance asset reuse with stakeholder needs C Collaborate across teams motivate individuals on the team to perform at their best encourage cross-functional collaboration provide effective collaborative environments 18

The RUP ABC Cont d /2012 254 12/09/ Demonstrate value iteratively incremental value to enable early and continuous feedback adapt your plans embrace and manage change drive out key risks early Elevate the level l of abstraction reusing existing assets leverage higher-level tools, frameworks, and languages focus on architecture Focus continuously on quality the entire team owns quality test early and continuously incrementally build test automation 19

RUP Lifecycle 254 12/09/ /2012 4 phases divided into a series of timeboxed iterations Each iteration results in an increment (release) Disciplines (like traditional phases) which happen with varying emphasis in every phase 1. Inception Phase Justification or business case Project scope, use cases, key requirements Candidate architectures Risks, preliminary project schedule, cost estimate 2. Elaboration Phase Requirements, risk factors System architecture (Executable Architecture Baseline) Construction plan (including cost and schedule estimates) 3. Construction Phase: building the rest of the system (longest) 4. Transition Phase: deployment, feedback, user training 20

RUP Lifecycle 2006 Giles Lewis 21 The University of Auckland New Zealand 254 12/09/ /2012

RUP Criticism 254 12/09/ /2012 High ceremony methodology Bureaucratic: ucr process for everything Slow: must follow process to comply Excessive overhead: rationale, justification, documentation, reporting, meetings, permission Very customizable: can be everything and nothing But: RUP can be used in traditional waterfall style or in agile manner Example: dx process Fully compliant instance of RUP Identical to XP 22

Today s Summary 254 12/09/ /2012 Adaptive vs. predictive Processes extreme Programming (XP) Agile process focused on programming as a team Short iterations, as much feed back as possible Rational Unified Process (RUP) Heavyweight process framework Phases divided into iterations, several disciplines happening simultaneously References: Don Wells. Extreme Programming: A Gentle Introduction. 2009. http://www.extremeprogramming.org/ Rational Software. Rational Unified Process: Best Practices for Software Development Teams. White Paper TP026B. 2001. http://www.ibm.com/developerworks/rational/library/content/03july/1 000/1251/1251_bestpractices_TP026B.pdf 23

Quiz /2012 254 12/09/ 1. Describe 3 differences between adaptive and predictive processes. 2. Explain 5 of the XP best practices. 3. What are the main characteristics of the RUP lifecycle? 24