Sheet 4 Solution
Sheet 4 Solution
Sheet 4 Solution
Agile Software Development
1- What are the factors you should consider to determine whether to use agile methods or
not? Based on your answer, give an example on a project in which you apply an agile
method and another one on a project on which you will not apply it.
3- Suggest four reasons why the productivity rate of programmers working as a pair might
be more than half that of two programmers working individually.
1. Pair programming leads to continuous reviewing. This helps to discovers bugs
more quickly.
2. Information sharing in pair programming happens during the process. This reduces
the need for documentation and the time required if one programmer has to pick
up another's work.
3. Pair programming encourages refactoring (the code must be understandable to
another person). This reduces the costs of subsequent development and change
and means future changes can be made more quickly.
4. In pair programming, the pair focus on the essential features of the system which
helps them to produce it more quickly.
4- Extreme programming expresses user requirements as stories, with each story written
on a card. Discuss the advantages and disadvantages of this approach to requirements
description.
Advantages:
They represent real situations that commonly arise so the system will support
the most common user operations.
It is easy for users to understand and critique the stories.
They represent increments of functionality and implementing a story delivers
some value to the user.
Disadvantages:
They are liable to be incomplete and their informal nature makes this
incompleteness difficult to detect.
They focus on functional requirements rather than non-functional
requirements.
Representing cross-cutting system requirements such as performance and
reliability is impossible when stories are used.
The relationship between the system architecture and the user stories is
unclear so architectural design is difficult.
6- Explain the difference between traditional Waterfall model and Agile testing.
You should describe the user story as shown in figure 3.5 in the reference.
c. Derive tasks from your user stories, give them priorities, and put an initial
reasonable schedule for these tasks.
d. Write at least five test cases for one of the functions of this software.
Test cases should cover all corner cases and they should be written in a way similar
to that in figure 3.7 in the reference.
8- In Sheet 2, problem number 2, you have designed a use case for withdraw function of an
ATM machine. Write the test cases that you would use to test this function (even if you
do not have the code and it is not required).
You can mention other test cases as long as they cover all cases that may occur related
to the withdraw functionality. These test cases should include:
Test Case 1: Test for inputs where the PIN code is not correct.
Test Case 3: Test for inputs where the PIN code is correct and the user balance is
sufficient to withdraw the needed amount.