3-B-Software Process Models
3-B-Software Process Models
Software Process
Models
INSTRUCTOR: MEHROZE KHAN
2
What is Agile ?
• Adaptive Planning
• Evolutionary Development
• Early Delivery
• Continual Improvement
• Responsiveness to change
The Manifesto for 4
Agile Software Development
• Agile manifesto
Concentrate on responding to change rather than on creating a
plan and then following it.
Value individuals and interactions over process and tools
Prefer to invest time in producing working software rather than in
producing comprehensive documentation
Focus on customer collaboration rather than contract negotiation
5
Agility and the Cost of Change
6
Human Factors
• Key traits must exist among the people on an agile team and the
team itself:
Competence.
Common focus.
Collaboration.
Decision-making ability.
Fuzzy problem-solving ability.
Mutual trust and respect.
Self-organization.
7
Extreme Programming (XP)
• The most widely used agile process, originally proposed by Kent Beck
1. XP Planning
Begins with the creation of “user stories”
Each user story is written by the customer and is placed on an index card.
The customer assigns a value (a priority) to the story based on the overall
business value of the feature or function.
Agile team assesses each story and assigns a cost (measured in
development weeks)
Stories are grouped to form a deliverable increment
A commitment is made on delivery date
After the first increment “project velocity” (number of customer stories
implemented during the first release) is used to help define subsequent
delivery dates for other increments
8
Extreme Programming (XP)
2. XP Design
Follows the Keep It Simple (KIS) principle. The design of extra
functionality (because the developer assumes it will be required
later) is discouraged
Encourage the use of CRC cards. CRC (class-responsibility
collaborator) cards; identify and organize the object-oriented
classes that are relevant to the current software increment.
For difficult design problems, suggests the creation of “spike
solutions”—a design prototype.
Refactoring—modifying/optimizing the code in a way that does
not change the external behavior of the software
9
Extreme Programming (XP)
3. XP Coding
Recommends the construction of unit tests for each user story before
coding commences.
Once the unit test has been created, the developer is better able to focus
on what must be implemented to pass the test.
Encourages “pair programming”; two people work together at one
computer workstation to create code for a story. Provides a mechanism
for real-time problem solving and real-time quality assurance.
Continuous Integration: As pair programmers complete their work, the
code they develop is integrated with the work of others to uncover
compatibility and interfacing errors.
10
Extreme Programming (XP)
4. XP Testing
Unit tests are executed repeatedly
XP acceptance tests, also called customer tests, are specified by the
customer and focus on overall system features and functionality that
are visible and reviewable by the customer.
11
Extreme Programming (XP)
12
References