SE 470 Software Development Processes James Nowotarski 28 April 2003.

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Scrum (software development)
Software Life Cycles ECE 417/617: Elements of Software Engineering
SE 470 Software Development Processes James Nowotarski 2 June 2003.
SE 470 Software Development Processes James Nowotarski 21 April 2003.
SE 470 Software Development Processes James Nowotarski 12 May 2003.
Agile Software Development Matt Rice November 27, 2006.
James Nowotarski 19 September 2006 SE 325/425 Principles and Practices of Software Engineering Autumn 2006.
SE 470 Software Development Processes James Nowotarski 05 May 2003.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
James Nowotarski 27 April 2004 IS 553 Advanced Systems Development Practices.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Software Development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level.
James Nowotarski 04 May 2004 IS 553 Advanced Systems Development Practices.
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
An Agile View of Process
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Software Engineering Modern Approaches
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
AGILE SOFTWARE DEVELOPMENT PROCESSES Cheruku Smitha.
James Nowotarski 11 September 2008 SE 425 Principles and Practices of Software Engineering Autumn 2008.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Extreme Programming and Systems Engineering Similarities and Synergy (based on talk given to INCOSE New England Chapter) Joseph (Yossi) Weihs Sept 10 th,
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
CS3100 Software Project Management Agile Approaches.
Chapter 3 Agile Development
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Manifesto for Agile Software Development
Software Development.
AGILE SCRUM METHODOLOGY
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Waterfall and Agile Quality Techniques
Introduction to Software Engineering
Agile Development Agile Development Damian Gordon Damian Gordon.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 3: Agile Software Processes
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Introduction to XP.
Appendix B Agile Methodologies
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

SE 470 Software Development Processes James Nowotarski 28 April 2003

Course Map Overview. Introduction. History Content. Rational Unified Process. Extreme Programming Implementation. Tools, Training, Roles. CMM, Metrics. Selection & Evaluation Briefings (Term Papers) Assignments Quizzes Week Memorial Day

Background on Lightweight Methods Understand basics of Extreme Programming –Principles –Benefits –What’s Different –Applicability –Track Record –Key Players & Products –References Today’s Objectives

Topic Duration Quiz 2 and Assignment 1 Recap10 minutes Lightweight Methods30 minutes Extreme Programming45 minutes *** Break10 minutes Assignment 5 reports15 minutes Extreme Programming (cont.)60 minutes Term Project15 minutes Today’s agenda

Topic Duration Quiz 2 and Assignment 1 Recap10 minutes Lightweight Methods30 minutes Extreme Programming45 minutes *** Break10 minutes Assignment 5 reports15 minutes Extreme Programming (cont.)60 minutes Term Project15 minutes Today’s agenda

Rational Unified Process

Assignment 1 Recap

Topic Duration Assignment 1 Recap10 minutes Lightweight Methods30 minutes Extreme Programming45 minutes *** Break10 minutes Assignment 5 reports15 minutes Extreme Programming (cont.)60 minutes Term Project15 minutes Today’s agenda

Lightweight Methods Just enough process Emphasis on the people on the team Embrace change (adaptive/agile vs. predictive) Frequent testing Frequent releases Much less documentation Key Principles

Lightweight Methods Extreme Programming (XP) (Kent Beck) Crystal (Alistair Cockburn) Adaptive Software Development (Jim Highsmith) SCRUM (Ken Schwaber) Feature Driven Development (Peter Coad, Ken DeLuca, Steve Palmer) Several methodologies fit under this lightweight banner

Lightweight Methods On February 11-12, 2001 seventeen proponents met at Snowbird ski resort and what emerged was the: Agile “Software Development” Alliance “We have come to value: –Individuals and interactionsoverprocesses and tools –Working software overcomprehensive documentation –Customer collaborationovercontract negotiation –Responding to changeoverfollowing a plan”

ApproachReferences XPwww.extremeprogramming.org CrystalA. Cockburn, Agile Software Development, Addison-Wesley, 2001 SCRUMK. Schwaber and M. Beedle, Agile Software Development with Scrum, Prentice Hall, Adaptive Software Development J. Highsmith, Adaptive Software Development, Dorset House, FDDS. Palmer, A Practical Guide to Feature-Driven Development, Prentice Hall, Agile - Generalhttp:// Lightweight Methods

Topic Duration Quiz 2 and Assignment 1 Recap10 minutes Lightweight Methods30 minutes Extreme Programming45 minutes *** Break10 minutes Assignment 5 reports15 minutes Extreme Programming (cont.)60 minutes Term Project15 minutes Today’s agenda

XP Background Developed by Kent Beck and Ward Cunningham Based on Beck and Ward’s experiences developing Smalltalk software at Tektronix First large project was the C3 Payroll Project at Chrysler –1993 project started with Business Modeling –1994 development begun with a small 40 person consulting firm & Smalltalk –1995 performance problems - Kent Beck brought in to improve quality –1996 Kent Beck took over project and began implementing project in a new method that we now call Extreme Programming

What is XP Rapid feedback Assume simplicity Incremental change Embrace change Quality work First Principles

What is XP Pair programming Test all the time –unit testing –functional testing –continuous integration Short iterations, small releases –2 month releases, 2 week iterations Incremental planning (learning to drive) Customer on-site as integral part of team Do simplest thing that could possibly work Key Features

What is XP 40-hour week Coding standards Refactoring and evolutionary design Metaphor to aid in understanding the architecture Only highest priority tasks are worked Collective ownership Key Features

What is XP Life cycle phase Cost of change Req Anal.Des. Impl.Test Prod y = ax p

What is XP Time Cost of change XP purports to change the curve so that the cost to find and repair software problems does not rise dramatically over time

What is XP Start design with a test Start coding with a test Test things that might break Testing is isolated Testing is automated At least one dedicated tester Begin with the end in mind...

What is XP Faster Better quality Cheaper Reduced risk More likely to be followed than a heavyweight methodology More fun Benefits

When to Use XP Small to medium sized teams Vague or rapidly changing requirements 2-10 programmers Responsible and motivated developers Not sharply constrained by existing computing environment A reasonable job of executing tests can be done in a fraction of a day Customer who understands and will get involved

When Not to Use Culture –Pointing the car –Big specification –Long hours 20 or more programmers –though projects are emerging with up to 50 developers More than 15 months’ duration More than 50K source lines of code (SLOC) Fixed price contracts Technology barriers –Exponential cost curve –Long time needed to get feedback Geographic separation Architecture not well established Developers are low quality and motivation

What’s the Same

What’s Different

RUP vs. XP AttributeRUP (“Heavyweight”)XP (“Lightweight”) Time and Effort Allocation 2 weeks-6 months2 weeks - 2 months ArchitectureStabilized during Elaboration phase Just enough to support functionality Scope of Activities and Artifacts BroadNarrow Omits: Business modeling Deployment Project sizeSmall to Very LargeSmall to Medium Artifacts25-30 in small project roadmap roughly 30 Roles~ 30 (5 in small project roadmap) 7

Assignment 1 Recap

Topic Duration Quiz 2 and Assignment 1 Recap10 minutes Lightweight Methods30 minutes Extreme Programming45 minutes *** Break10 minutes Assignment 5 reports15 minutes Extreme Programming (cont.)60 minutes Term Project15 minutes Today’s agenda

Term Paper Summary: A briefing on a significant, currently relevant software development methodology or process-related framework not covered in class Deliverables: Paper Presentation and Discussion (30 minutes) Topic Ideas: SCRUM Feature Driven Development Adaptive Software Development Crystal SEI Team Software Process SEI Personal Software Process

Term Paper Paper Outline: 1.Abstract 2.Historical Background 3.Description Philosophy/Principles Components Benefits 4.Usage Guidelines When to use/avoid Success factors/Challenges 5.Marketplace Analysis Key Players/Products/Gurus Market data/forecasts 6.References Books, articles, web sites Need to interview a practitioner and/or faculty member

Kruchten, Chapter 17 Quiz #3 –XP –Implementing Methodology Topics for May 5

Extra Slides

Anatomy of Terminology Product Development Cycle Phase Iteration Workflow Activity Step ThinkingPerforming Reviewing Artifact Worker/Role