Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.

Slides:



Advertisements
Similar presentations
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Advertisements

Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Alternate Software Development Methodologies
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Extreme Programming Collaboration in Software Development Process.
Software Engineering.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
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.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
COMP 350: Object Oriented Analysis and Design Lecture 2
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - Presented to CS 611 at GVSU, 4/6/2005.
Extreme Programming(XP)
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Software Project Failure Software Project Failure Night Two, Part One CSCI 521 Software Project Management.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 7 Applying UML and Patterns Craig Larman
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
Implementing XP at PUT Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Extreme Programming Based on and
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Comparison of CMM Level 2 and eXtreme Programming Copyright, 2002 © Bartosz Walter Web Applications and Services.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Embedded Systems Software Engineering
CompSci 280 S Introduction to Software Development
Requirements Engineering Lecture 4
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Planning User stories are written.
Waterfall and Agile Quality Techniques
COMP 350: Object Oriented Analysis and Design Lecture 2
What do you need to know about XP?
Chapter 3 – Agile Software Development
Agile Development – a new way of software development?
Extreme Programming.
Presentation transcript:

Unified Process versus Extreme Programming

Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management – some thoughts

Disciplines Unified Process

Process Disciplines Requirements Specification (Kravspesifikasjon) System Analysis (Systemanalyse) Design Implementation Testing Deployment (iverksetting) Maintenance (Vedlikehold)

Supporting Disciplines Configuration management Change management Environment Project management  Time  Risk  Priorities  Estimation  Status Tracking / Follow up

XP key practices Customer is Team Member User Stories Short Time Boxed Iterations Pair Programming Test-Driven Development Collective Code Ownership Sustainable Pace Open Workspace The Planning Game Simple Design Refactoring Metaphor (Coding standards)

UP Disciplines vs XP Practices UP Disciplines Requirements Specification System Analysis Design Implementation Testing Deployment Configuration management Change management Environment Project management  Time  Risk  Status tracking XP Practices Customer in Team User Stories Short Time Boxed Iterations Pair Programming Test-Driven Development Collective Code Ownership Sustainable Pace Open Workspace The Planning Game Simple Design Refactoring Metaphor

Business modelling UP Processes  Process map  Use Cases Domain  Domain model ?  Glossary ? XP None?

Requirements Specification UP Use Cases UML artefacts  Domain model  Dynamic models Non-functional requirement XP User stories Metaphores (?) UML Model schetches Non-functional requirements

System Analysis UP Subtasks More detailed Use Case UML Domain model Prototypes? XP Subtasks UML model schetches Acceptance tests Working code

Design UP UML design model  Class  Interaction  Packages / Modules Base Architecture Prototypes XP UML schetches Simplest possible design Incremental code development Refactoring

Implementation UP Integrated, executable code after each iteration XP Integrated, executable code after each iteration Test suites – automatic tests

Testing UP No particular demand for test method Types  Unit tests  Integration tests  Acceptance tests  (Regression testing) Test first can be used XP Test first Automatic testing Acceptance Testing

Deployment UP Deployed system XP Deployed system

Configuration Management UP Version Control Iteration releases XP Collective Ownership Refactoring Integrated, testable code Iteration releases

Change management UP Requirements tracking Change requests XP ”Embrace change” Planning game Refactoring

Environment UP No particular demands for working environment Artifacts important for communication XP Pair Programming Test-Driven Development Collective Code Ownership Sustainable Pace Open Workspace

Risk and priority UP Identify and manage risk High risk tasks first Prototypes Base architecture Prioritize use cases High priority first ”Use Case driven” XP Identify risk High risk tasks early, but only if useful for current user stories Prioritize user stories High priority first ”User driven” – user in team

Managing time UP Time boxing: 2 – 6 weeks No particular method XP Time boxing: 1 – 4 weeks Estimate on basis of experience - velocity Velocity increases

Project management (1) UP (Release planning) Iteration planning Follow up  Finished tasks  Unfinished tasks  Used time  Remaining time ”Manager driven”? XP Release planning Iteration planning Task planning Follow up  Finished tasks  Unfinished tasks  Velocity ”Developer driven”?

Project management (2) UP Course plan for future iterations Detailed plan for next iteration  Users prioritize Use Cases  Developers estimate tasks XP Developers continuously involved in estimation Weekly plan stable Overall plan changes continuously

Risk – some thoughts Risk in the waterfall model Risk in iterative development Managing risk

Risk in the waterfall model RISKRISK T I M E Implement. Testing Design Analysis Req.Spec Deployment

Risk in iterative development T I M E Iteration 1 RISKRISK Iteration 2Iteration 3 Risk iterative Risk waterfall

Risk factors (1) Resources  Lack of people  Lack of money Competence  Lack of knowledge  Misunderstanding requirements  Missing important requirements Communication  Bad coordination  Misunderstandings  “Bad chemistry”

Risk factors (2) ”Technical risk”  Uncertain solution method  Uncertain requirements  Uncertain performance Identify uncertain subtasks  Difficult  Uncertain of difficult  Uncertain extent Deadlines  Illness  Underestimated size of task  Partners not delivering on time

Reducing risk Manage risks  Identify risks  Assess Seriousness and Probability  Get an idea how to handle a risk if it occurs Prioritize work according to risk level  High risk tasks in early iterations  Prototypes  Basic functionality used by many components  Consider high risk issues in early iterations E.g.: Many simultaneous users

Discussion themes MDD vs XP // CASE tools vs XP  Model is source vs Code is source Non-functional requirements in XP  Have XP sufficient focus?  Have users sufficient focus? Is XP downplaying software architecture?  When is overall architecture introduced?  Can refactoring lead to good architecture? Is XP too dependant on good people?  Very little written documents – need good memory  Need helpful team members

Takk for oppmerksomheten!