24
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 學學 學學學學 學學學學 學學學 :、、

Proceedings of the 28th Annual International Computer Software and Applications Conference (2004) Ming Huo, June Verner, Liming Zhu, Muhammad Ali Babar

Embed Size (px)

Citation preview

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

One Agile release vs. Waterfall Lifecycle

8

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

16

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

18

main sequence Quality Assurance

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

Agile methods quality techniques (cont.)

22

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