Signature Change Analysis

7
1 Signature Change Analysis Sunghun Kim, Jim Whitehead, Jennifer Bevan {hunkim, ejw, jbevan}@cs.ucsc.edu University of California, Santa Cruz

description

Signature Change Analysis. Sunghun Kim, Jim Whitehead, Jennifer Bevan {hunkim, ejw, jbevan}@cs.ucsc.edu University of California, Santa Cruz. Biological and Software Evolution. v1. v2. v2. Biological and Software Evolution. v1. v2. v2. Biological and Software Evolution. - PowerPoint PPT Presentation

Transcript of Signature Change Analysis

Page 1: Signature Change Analysis

1

Signature Change Analysis

Sunghun Kim, Jim Whitehead, Jennifer Bevan

{hunkim, ejw, jbevan}@cs.ucsc.edu

University of California, Santa Cruz

Page 2: Signature Change Analysis

2

Biological and Software Evolution

Page 3: Signature Change Analysis

3

Biological and Software Evolution

v1 v2 v2

Page 4: Signature Change Analysis

4

Biological and Software Evolution

• Can we shape software evolution path?– LOC– Number of Changes– Structural Changes– Signature Changesv1 v2 v2

Page 5: Signature Change Analysis

5

Found Signature Change properties

1. The most common signature change kinds are complex data type, parameter addition, parameter ordering, and parameter deletion.

2. More than half of function signatures never change. About 90% of function signatures change less than three times.

3. A function’s signature changes after every 5-15 function body changes.

4. A project’s average number of parameters per function remains relatively constant over time.

5. Functions typically have parameter lists with 1, 2, or 3 parameters.

6. Weak correlations between signature change and other changes including LOC and function body changes.

7. Each project has its own signature change patterns, and the pattern can be discovered after analyzing the first 1000 to 1500 revisions.

8. Probability of a change kind depends on previous changes.

Page 6: Signature Change Analysis

6

Future Work

• Signature change analysis on OOP (Java)– The results presented here are based on a procedural

programming language (C) open source projects: Apache HTTP 1.3, Apache HTTP 2.0 , Apache Portable Runtime, APR utility, CVS, GCC, and Subversion

– Find OOP signature change properties and compare the with those from a procedural language

• Changes inside Struct/Class– Variable addition/deletion– Variable renaming– Method addition/deletion

Page 7: Signature Change Analysis

7

Signature Change Analysis

Sunghun Kim, Jim Whitehead, Jennifer Bevan

{hunkim, ejw, jbevan}@cs.ucsc.edu

University of California, Santa Cruz