Post on 26-Dec-2015
Proceedings of the 28th Annual International Computer Software and Applications Conference (2004)
Ming Huo, June Verner, Liming Zhu, Muhammad Ali Babar
Software Quality and Agile Methods
學生:詹博丞、林帝丞、徐子濠
Outline
Introduction
Waterfall model vs. Agile Methods
Quality assurance techniques
Agile methods quality techniques
Conclusions
2
Introduction
Agile software development has become a controversial software engineering topic.
Agile methods have gained tremendous acceptance in the commercial arena since late 90s.
In this paper, we compare the waterfall model with agile processes to show how agile methods achieve software quality.
3
Outline
Introduction
Waterfall model vs. Agile Methods
Quality assurance techniques
Agile methods quality techniques
Conclusions
4
Waterfall model
Waterfall model has been widely used in both large and small software projects.
The waterfall model divides the software development lifecycle into five stages.
Requirements analysis and definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
5
Waterfall model (cont.)
Any stage should not start until the previous stage has
finished.
Drawbacks
Inflexibility
Highly ceremonious processes
6
Agile Methods
Agile methods deal with unstable and volatile
requirements by using a number of techniques :
Simple planning
Short iteration
Earlier release
Frequent customer feedback
7
Outline
Introduction
Waterfall model vs. Agile Methods
Quality assurance techniques
Agile methods quality techniques
Conclusions
9
Quality assurance techniques
Concerned with the quality of software produced with
the waterfall model and an agile approach
We focus on two general quality-focused processes
Software Quality Assurance (SQA)
Verification and Validation(V&V)
10
Quality assurance techniques
Software Quality Assurance (SQA)
SQA governs the procedures meant to build the desired quality
into the products
Verification and Validation(V&V)
V&V is aimed more directly at product quality including
intermediate products
11
Quality assurance techniques
SQA and V&V are normally used to support the waterfall model to provide a complete process mode
QA techniques can be categorized into two types
Static
Static techniques involve examination of documentation by individuals
or groups
E.g requirements specification , technical reviews of the code
Dynamic
Testing
Simulation12
Quality assurance techniques
The waterfall model uses both static and dynamic
techniques.
Agile methods mostly use dynamic techniques.
13
Outline
Introduction
Waterfall model vs. Agile Methods
Quality assurance techniques
Agile methods quality techniques
Conclusions
14
Waterfall model include:
Requirements definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
15
Agile methods quality techniques
Agile methods quality techniques
two major differences between waterfall model
and agile method:
1. agile methods move some QA responsibilities and work
to the developers.
2. output is sent frequently to quality assurance practices and fast feedback is provided
17
Agile methods quality techniques (cont.)
Features:
System metaphor
On-site customer
Pair programming
Refactoring
Continuous integration
Acceptance testing
Customer feedback19
Agile methods quality techniques (cont.)
Differences between the SQA:
Fewer static quality assurance techniques.
Frequency of these activities is much greater.
Quality activities occur much earlier
20
Agile methods quality techniques (cont.)
The QA techniques for agile methods:
Applying dynamic QA techniques as early as possible.
Moving more QA responsibility on to the developer.
Early product validation.
21
Outline
Introduction
Waterfall model vs. Agile Methods
Quality assurance techniques
Agile methods quality techniques
Conclusions
23
Conclusions
24
Agile methods do have practices that have QA abilities,
some of them are inside the development phase and some others can be separated out as supporting
practices.
The frequency with which these agile QA practices
occur is higher than in a waterfall development
Agile QA practices are available invery early process
stages due to the agile process characteristics