Software Development Process Models (II) Agile Methodologies Extreme Programming
Software Development Process Models (II) Agile Methodologies Extreme Programming
Software Development Process Models (II) Agile Methodologies Extreme Programming
Models (II)
Agile Methodologies
Extreme Programming
Agile Methodologies
Agile methods are a family of software
development processes for teams facing
unpredictable or rapidly changing requirements.
Simple Design
12 Practices of XP (cont’d)
Testing: tests are written first, by both
programmers and customer: unit tests,
acceptance tests
Tests are your goals to achieve
Implement test first requires through understanding of the
specification
Ambiguities and omissions are captured before implementation
Refactoring: Restructure the system without
changing its behavior
Simplicity: focus on current requirements and no more
Future may change
Maintain simplicity via frequent refactoring
Instead of upfront design; re-architect for simplicity
12 Practices of XP (cont’d)
Pair programming: 2 programmers at 1
machine write codes
Two programmer working side-by-side, on the
same computer, interchanging roles back and
forth. While one programmer actively implements,
the other observes and identify defects and also
thinks strategically about the direction of the code
Informal reviews
Based on http://www.extremeprogramming.org
Comparison of activities
Time
Test
Implement
Design
Analyze
Waterfall Iterative XP
Other Software Process Models
Rational Unified Process
Rapid Application Development
Formal Systems Development
Reuse Based Development
Component Based Development
…