CHAPTER 3 Software Engineering
CHAPTER 3 Software Engineering
1) Agility
2) An Agile Process
Is driven by customer descriptions of what is required (scenarios)
Recognizes that plans are short-lived
Develops software iteratively with a heavy emphasis on construction
activities
Delivers multiple software increments
Adapts as changes occur
3) Agility Principles
Competence.
Common focus.
Collaboration.
Decision-making ability.
Fuzzy problem-solving ability.
Mutual trust and respect.
Self-organization
5) XP Planning
Begins with the creation of user stories
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
6) XP Design
Follows the KIS principle
Encourage the use of CRC cards (see Chapter 8)
For difficult design problems, suggests the creation of spike
solutionsa design prototype
Encourages refactoringan iterative refinement of the internal
program design
7) XP Coding
Recommends the construction of a unit test for a store before
coding commences
Encourages pair programming
8) XP Testing
All unit tests are executed daily