Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.

Slides:



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

AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
SDLC – Beyond the Waterfall
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Ch 3 System Development Environment
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
NAUG NAUG Knowledge Evening – th February 2007.
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
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Extreme Programming Collaboration in Software Development Process.
Chapter 6 Prototyping, RAD, and Extreme Programming
Chapter 1 The Systems Development Environment
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 15 Finalizing.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
An Agile View of Process
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
5-1 © Prentice Hall, 2007 Chapter 5: Determining Object-Oriented Systems Requirements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
5-1 © Prentice Hall, 2007 Chapter 5: Determining Object-Oriented Systems Requirements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 1 The Systems Development Environment
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.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Current Trends in Systems Develpment
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers Unit 11 Slide 1 Chapter 1 The Systems Development Environment.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 4 Slide 1 Chapter 1 The Systems Development Environment.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapter 6 Prototyping, RAD, and Extreme Programming Systems Analysis and Design Kendall & Kendall Sixth Edition.
CS3100 Software Project Management Agile Approaches.
Basic Approach Development driven by time boxing May sacrifice requirements in order to keep schedule (time boxed) Steer project as you go based on user.
© 2005 by Prentice Hall Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
The Systems Development Environment Systems Analysis and Design II.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Chapter 1 The Systems Development Environment Modern Systems Analysis and Design Sixth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 15 Finalizing Design Specifications
Chapter 15 Finalizing Design Specifications
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Iterative and Agile Development
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Chapter 15 Finalizing Design Specifications
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
CHAPTER 10 METHODOLOGIES FOR CUSTOM 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.
Appendix B Agile Methodologies
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1

Learning Objectives Define Agile Methodologies Explain when to use Agile Methodologies and when to use engineering-based approaches to systems development Define eXtreme Programming Discuss the Agile Methodology approach to systems requirements determination, design specifications, and the combination of coding and testing Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.2

The Trend to Agile Methodologies  Three Phases of Systems Analysis Since Inception  Undisciplined (Developer as Artist)  Lack of documentation and development tools  High degree of dependence upon developer for maintenance  Developer as Engineer  Documentation  Rigorous testing  Structured tools and techniques  Computer-based tools Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.3

The Trend to Agile Methodologies (continued)  Three Phases of Systems Analysis Since Inception (continued)  Agile Methodologies  Object-oriented approach  Sacrifices milestones and multiple phases  Close cooperation between developers and clients  Many life cycle phases combined into one  Multiple rapid releases of software Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.4

Agile Methodologies  Many Different Methodologies under Umbrella  Crystal family of methodologies  Adaptive Software Development  Scrum  Feature Driven Development  eXtreme Programming  Agile Manifesto Developed in February 2001 (Figure B-1)  Three Key Principles:  Focus on adaptive rather than predictive methodologies  Focus on people rather than roles  Self-adaptive process Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.5

Agile Methodologies (continued)  Engineering Methodologies Do Not Fit Well with Software Development  Engineering requirements are well understood; software requirements often are not  In many engineering projects, design is only 15 percent of project; in software engineering, design can be as much as 50 percent  Agile Methodologies Embrace Change and Deal with Lack of Predictability  Iterative development  Provides feedback to customers and developers alike  Focus on individuals  Adaptive software development process  Process can be refined and improved as software is deve loped Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.6

Agile Methodologies (continued)  Agile Methodologies are Recommended for Projects That Involve:  Unpredictable or dynamic requirements  Responsible and motivated developers  Customers who understand and will get involved  Engineering Approach is Recommended when:  Project involves more than 100 people  Project is operating under fixed-price or fixed-scope contract Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.7

Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.8

eXtreme Programming  One Example of Agile Methodologies  Distinguished by:  Short development cycles  Incremental planning approach  Focus on automated tests  Reliance on evolutionary approach to development  Use of two-person (pair) programming teams  Customer on-site during development process  Relates to Design Specifications  Planning, design, analysis, and construction are fused together into a single phase of activity  Systems requirements are captured and presented in a unique way  Programmers who write code also write the tests Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.9

eXtreme Programming  Pair Programming  All programming is done by two people working together  Includes coding and testing  Advantages  More communication among developers  Higher levels of productivity  Higher quality code  Reinforcement of other practices, such as code and test discipline Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.10

Requirements Determination  Continual User Involvement  Traditional Approach  Users involved in early stage  User signs off at project completion  Often, system business processes changed during development  System many times did not adequately address user’s needs  Iterative Process of User Feedback  Agile Usage-Centered Design  Process of eight steps  See Table B-2  Most effective steps:  Venting session  Use of 3 x 5 cards Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.11

Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.12

Requirements Determination  The Planning Game  Players  Business (Customers)  Development  Game pieces are story cards  Created by Business  Contain description of a feature or procedure  Each card is dated and numbered  Three Phases  Exploration  Business creates a story card  Development responds with a time estimate  Commitment  Business sorts cards into three stacks: essential, non-essential but add value, and nice to have  Development sorts story cards according to risk  Business selects cards that will be used in next release  Steering  Business sees how development is progressing  Plan is adjusted accordingly  Can take place as often as once every three weeks Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.13

Requirements Determination (continued)  The Planning Game (continued)  Iteration Planning Game  Follows planning game  Played only by programmers  Uses task cards  Same three phases Exploration  Programmers convert story cards to task cards Commitment  Programmers accept responsibility for tasks  Balance workloads Steering  Write code and test  Integrate into product  Takes place between steering phase meetings of planning game Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.14

Design Specifications  eXtreme Programming Employs Two Techniques to Continually Improve Quality of Design  Simple Design  Four constraints  The system must communicate everything that you want it to communicate  The system must contain no duplicate code  The system should have the fewest possible classes  The system should have the fewest possible methods  Refactoring  Process of simplifying a system after new features have been added Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.15

Implementation  Traditional systems development involves an implementation phase  In eXtreme Programming and Other Agile Methodologies, implementation is complete once testing has been done Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.16

Summary  Trend to Agile Methodologies  eXtreme Programming as an Example  Continual user involvement  Agile-Centered approach  Pair programming  The Planning Game Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall B.17