Professional Documents
Culture Documents
Software Engineering
Dr. Qurat-ul-Ain
Recap
✓ Agile Methods
✓ Agile development
techniques
✓ Agile project
management
Problems of Plan-driven Models
❖ User Requirement
❖ Market Shift
5
Rapid Software Development
6
Agile Development
8
“
Agile Methods
9
Agile Methods
10
❖ Agile
methods allow the team to focus on the
development rather than design and
documentation
11
“Agile Methods – Values” 12
Agile Methods - Principles
When to use the Agile
Method?
When to use the Agile
Method?
❖ Product
development where a software
company is developing a small or
medium-sized product for scale.
○ Virtually all software products and apps
are now developed using an agile approach
❖ Custom system development within an
organization,
○ clear commitment from the customer
○ few external rules and regulations 15
“
Agile Development
Techniques
16
Extreme Programming - XP
❖ goodpractices i.e. pair programming,
iterative development taken to an
extreme
17
Extreme Programming
18
Extreme Programming
19
Extreme Programming - Practices
20
Components of XP process model
User Stories
Planning Design
Software
Increment
Testing Coding
“
▪ User requirements are expressed as
user stories or scenarios.
▪ These are written on cards and the
development team break them down
into implementation tasks.
22
Case Study: MentCare
❖ MentCare is a patient information system
to support mental health care is a medical
information system that maintains
information about patients suffering from
mental health problems and the treatments
that they have received.
❖ It makes use of a centralized database of
patient information but has also been
designed to run on a PC, so that it may be
accessed and used from sites that do not
have secure network connectivity.
23
24
Task 1: Change dose of
prescribed medication
26
Refactoring
“
▪ the programming team look for possible
improvements to the software and
implements them immediately
27
Refactoring
❖ Programming team look for possible
software improvements and make these
improvements even where there is no
immediate need for them.
❖ This improves the understandability of
the software and so reduces the need for
documentation.
❖ Changes are easier to make because the
code is well-structured and clear.
❖ However, some changes requires
architecture refactoring and this is much
more expensive.
Example(s) of Refactoring
❖ re-organization of a class hierarchy to remove
duplicate code.
❖ renaming attributes
and methods
❖ inline code
29
Refactoring - Limitations
30
Test-first
Development
“
▪ testing is automated and is central to
the development process, and
development cannot proceed until all
tests have been successfully executed.
31
Test-first Development
❖ test is written before the code….. you
can run the test as the code is being
written and discover problems during
development.
❖ User involvement in test development
and validation
32
Test 4: Dose Checking
Input:
1. A number representing mgs of single dose
2. A number representing frequency of single dose
Tests:
1. Single dose is correct but frequency is high
2. Single dose is too high or too low
3. Dose frequency is too high or too low 33
4. Dose frequency is in range
Output:
1. Ok
2. Error indicating the dose is out of range
Test-first Development - Limitations
34
Pair Programming
35
Pair Programming
36
Extreme Programming Problems
37
“
Agile Project
Management
38
Scrum
41
Distributed Scrum
42
Summary
❖ Agile Methods
❖ Extreme Programming
❖ Scrum
43
Thanks!
Any comment/questions?
44