CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process.

Slides:



Advertisements
Similar presentations
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Advertisements

Agile Development : an introduction
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Agile Development.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
Agile
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
Chapter 3 CS435: Introduction to Software Engineering Dr. M. Zhu
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Software Engineering Lecture No:12. Lecture # 7
An Agile View of Process
Software engineering Process models Pavel Agejkin.
SEC 308 Yazılım Mühendisliği Software Process Models
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2, 3, &4 Process copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter-3 Agile Development
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
Chapter 5 Agile Development Chapter 5 Agile Development Moonzoo Kim KAIST 1.
Chapter 4 An Agile View of Process
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.
Current Trends in Systems Develpment
Chapter 5 애자일 개발 Agile Development
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
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.
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.
Chapter 3 Agile Development
Traditional Process Models A quick overview. 2 Waterfall Model (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling.
1 Chapter 3: Lecture 3 Agile Development Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides copyright.
Software Engineering (CSI 321) An Agile View of Process 1.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.1.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
1 Agile Development. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping others.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
TIK 302 Rekayasa Perangkat Lunak Agile Proses. Agile View of Process Represents a reasonable compromise between conventional software engineering for.
1 The economies of ALL developed nations are dependent on software The economies of ALL developed nations are dependent on software More and more systems.
Software Engineering Principles I (Spring 2017)
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 4 & Chapter 5 Important Concepts
Chapter 3 An Agile view of process.
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.
Agile Development.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 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.
Chapter 5 Agile Development
Software Engineering (CSI 321)
Agile Software Development
Chapter 3 Agile Development
Chapter 3 Agile Development
Agile Software Processes
Agile Process: Overview
Chapter 3 Agile Development
Chapter 3 Agile Development
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.
The Manifesto for Agile Software Development
Chapter 3 CS435: Introduction to Software Engineering Dr. M. Zhu
Chapter 3 CS435: Introduction to Software Engineering
Chapter 3 Agile Development
Presentation transcript:

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process Models

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. The Agile Movement (1) Prescriptive process models are high on discipline and structure, but with less consideration to the “inequalities” among teams members (human factor). “Light” or “Lean” development methods have been around for many years. Light methods evolved into Agile movement: “an effort to define new development methods to overcome the weakness and stiffness of conventional SE methods” Key change: Agile methods should be responsive to changing business requirements, end-user needs, and technology. But, should also be based on good SE principles, concepts, and methods.

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. The Agile Movement (2) Agile development places more emphasis on the “human factor” and difference among people, the interactions among the team and team self-organization, the interactions with the customer and frequent feedback, and the response to changes throughout the development process. The values of Agile development: (Manifesto) Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan “That is, while there is value in the items on the right, we value the items on the left more.”

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. What is Agility? Agility calls for: Effective (rapid and adaptive) response to change Effective communication and collaboration among all stakeholders at all levels Organizing a team so that it is in control of the work performed Recognition that planning is uncertain and planning must be flexible More customer involvement in the development process Yielding … Rapid delivery of working increments of software See the 12 principles defined by the Agile Alliance, page 73.

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. What is an Agile Process? An Agility process: Is driven by customer descriptions of what is required of the software (scenarios) Recognizes that plans are short-lived Develops software iteratively with a heavy emphasis on construction activities Delivers multiple ‘working software increments’ Adapts as changes occur Seeks constant customer feedback Key characteristics: Must be adaptable Must be incremental

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Concerns with an Agile Process May not be applicable to large and complex projects May not be suitable to all people Resulting products may not be scalable into “enterprise-wide systems” Resulting products may not be scalable to meet future business needs Others?

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. The Human Factor The “People Factor” is the center of an Agile process. The process “molds” to the team needs, rather than the reverse. An effective team should have these characteristics: –Competence –Common goal –Collaboration –Decision-making ability –Fuzzy problem-solving ability (ambiguity) –Mutual trust and respect (jelled team) –Self-organization (work tasks, process, work schedule) Note that most characteristics are derived from conventional SE processes.

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Agile Process Models All Agile process models conform to the Agile Development Manifesto and Principles. Extreme Programming (XP) Adaptive Software Development (ASD) Dynamic System Development Method (DSDM) Scrum Method Crystal (family of processes for different types of projects) Feature Driven Development

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (1) The most widely used agile process, originally started in 1980s, and documented by Kent Beck in 1999 It uses OO approach. XP is based on Planning, Design, Coding, and Testing activities XP Planning (similar to use-case approach) –Begins by creating “user stories” with customer values –Agile team assesses each story and assigns a cost –Stories are grouped to for a deliverable increment –Agile team prioritizes grouped stories –A commitment is made on delivery date –After the first increment, “project velocity” is used to help define subsequent delivery dates for other increments

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (2) XP Design (there is no true design!) –Follows the KIS principle –It is guidance for implementation –Encourages the use of CRC cards (see Chapter 8) –For difficult design problems, suggests the creation of “spike solution” - a partial design prototyping –Encourages “refactoring” - an iterative refinement of the “internal” program design after the code is written XP Coding –Recommends building unit tests for a store before coding commences –Encourages “pair programming” - better problem solving and quality assurance –Requires continuous code integration (daily)

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (3) XP Testing –Unit tests are developed before coding! –All unit tests are executed daily (smoke/integration testing) –Unit test evolve to test suits –“Acceptance tests” are defined by the customer (derived from user stories) and executed to assess customer visible functionality

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (4)

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Adaptive Software Development (1) ASD is originally proposed by Jim Highsmith for developing complex software systems Its focus is human collaboration and team self-organization Life cycle is Speculation, Collaboration, and Learning ASD distinguishing features: –Mission-driven planning –Component-based focus –Joint Application Development/Design/Requirements (JAD/JAR) –Explicit consideration of risks –Emphasizes collaboration for requirements gathering –Emphasizes “learning” throughout the process –Formal technical reviews

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Adaptive Software Development (2)

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Dynamic System Development Method Promoted by the DSDM Consortium ( Developed for projects that have tight time constraints Utilizes incremental prototyping (similar to RAD) The process is called DSDM Life Cycle DSDM distinguishing features (principles): –Active user involvement is imperative –DSDM teams must be empowered to make decisions –The focus is on frequent delivery of products –Fitness for business purpose is the essential criterion for acceptance of deliverables –Iterative and incremental development is necessary to converge on an accurate business solution –Requirements are baselined at a high level –Testing is integrated throughout the life-cycle

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. SCRUM Agile process that focuses on “process patterns”, small working teams, and well-defined work increments. Distinguishing features: –Development work is partitioned into “packets” –Short-term work (30 days time-box) in stable environment –Testing and documentation are on-going as the product is constructed –Work occurs in “sprints” and is derived from a “backlog” of existing requirements –Meetings are very short and sometimes conducted without chairs –“Demos” are delivered to the customer with the time-box allocated –Frequent customer feedback –Heavy on communication

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Other Agile Process Models Crystal is a family of process models that allow “maneuverability” based on problem characteristics, face-to-face communication, and “reflection workshops” to review the work habits of the team. Feature Driven Development (FDD) emphasizes “features” as a client-valued function that can be implemented in two weeks or less. A features list is created and “plan by feature” is conducted. Agile Modeling (AM) emphasizes modeling and suggests a set of agile modeling principles to guide the developer during analysis an design tasks. Please read the chapter for more details.

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Suggested Problems Try to work problems 1, 2, 3, 4, 5, 8, 9, 11, and 12 from Chapter 4, page 93. No submission is required for practice assignments. Work it for yourself!

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Last Slide End of chapter 4