Agile Development: Principles, Practices, and Models, Lecture notes of Software Engineering

Agile software development , methods ,uses ,extreme programming

Typology: Lecture notes

2018/2019

Uploaded on 07/21/2019

bittu-shah
bittu-shah 🇳🇵

1 document

1 / 18

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Unit-2
Agile Development
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Partial preview of the text

Download Agile Development: Principles, Practices, and Models and more Lecture notes Software Engineering in PDF only on Docsity!

Unit-

Agile Development

What is Agility?

  • (^) Effective response to change
  • (^) Effective communication among all

stakeholders

  • (^) Drawing the customer onto the team;

eliminate the “us and them” attitude

  • (^) Organizing a team so that it is in control of the

work performed

  • (^) Rapid, incremental delivery of software

Principles to achieve agility – by

the Agile Alliance (2)

7. Working software is the primary measure of

progress

8. Agile processes promote sustainable development

9. Continuous attention to technical excellence and

good design enhances agility

10. Simplicity – the art of maximizing the amount of

work not done – is essential

11. The best designs emerge from self-organizing

teams

12. The team tunes and adjusts its behavior to become

more effective

Agile Software Process – Three Key

Assumptions

  • (^) Difficulty in predicting changes of requirements

and customer priorities

  • (^) For many types of s/w, design and construction

are added

  • (^) Analysis, design, construction, and testing are

not as predictable as we might like

7

Agile Process Models

  • (^) Extreme Programming (XP)
  • (^) Adaptive Software Development (ASD)
  • (^) Dynamic Systems Development Method (DSDM)
  • (^) Scrum
  • (^) Crystal
  • (^) Feature Driven Development (FDD)
  • (^) Agile Modeling (AM)

Extreme Programming (XP) - 1

  • (^) The most widely used agile process, originally proposed by Kent Beck [BEC99]
  • (^) XP uses an object-oriented approach as its preferred development paradigm
  • (^) Defines four (4) framework activities
    • (^) Planning
    • (^) Design
    • (^) Coding
    • (^) Testing

XP - Planning

  • (^) Begins with the creation of a set of stories (also called user stories )
  • (^) Each story is written by the customer and is placed on an index card
  • (^) The customer assigns a value (i.e. a priority) to the story
  • (^) Agile team assesses each story and assigns a cost
  • (^) Stories are grouped to for a deliverable increment
  • (^) A commitment is made on delivery date
  • (^) After the first increment “project velocity” is used to help define subsequent delivery dates for other increments

XP - Design

  • (^) Follows the keep it simple principle
  • (^) Encourage the use of CRC (class-responsibility-collaborator) cards
  • (^) For difficult design problems, suggests the creation of “ spike solutions ”—a design prototype
  • (^) Encourages “ refactoring ”—an iterative refinement of the internal program design
  • (^) Design occurs both before and after coding commences

XP - Testing

  • (^) Unit tests should be implemented using a framework to make testing automated. This encourages a regression testing strategy.
  • (^) Integration and validation testing can occur on a daily basis
  • (^) Acceptance tests , also called customer tests , are specified by the customer and executed to assess customer visible functionality
  • (^) Acceptance tests are derived from user stories