on the evolutionary nature of architectural violations - wcre 2012

31
On the Evolutionary Nature of Architectural Violations João Brunet*, Roberto A Bittencourt, Dalton Serey and Jorge Abrantes Software Practices Laboratory - SPLab Federal University of Campina Grande (UFCG), Brazil *speaker: [email protected] Oct 16, 2012 WCRE, Kingston, Canada.

Upload: joao-brunet

Post on 29-Jun-2015

459 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: On the evolutionary nature of architectural violations - WCRE 2012

On the Evolutionary Nature of Architectural Violations

João Brunet*, Roberto A Bittencourt, Dalton Serey and Jorge AbrantesSoftware Practices Laboratory - SPLab

Federal University of Campina Grande (UFCG), Brazil*speaker: [email protected]

Oct 16, 2012 WCRE, Kingston, Canada.

Page 2: On the evolutionary nature of architectural violations - WCRE 2012

Architectural Violation

Architectural decision

A B

C

Design phase

Page 3: On the evolutionary nature of architectural violations - WCRE 2012

Architectural Violation

Architectural decision

A B

C

Design phase

Implementation phase

public class A {

public void m1(C c) {c.method1();

}

}

Architectural Violation: A.m1() calls C.method1()

Page 4: On the evolutionary nature of architectural violations - WCRE 2012

Conformance Checking

A B

C

Page 5: On the evolutionary nature of architectural violations - WCRE 2012

State-of-the-art

Reflexion Models

DesignFragments Design Tests Save Tool

ArchJava DCLCheck

Page 6: On the evolutionary nature of architectural violations - WCRE 2012

A longitudinal and exploratory study

Page 7: On the evolutionary nature of architectural violations - WCRE 2012

A longitudinal and exploratory study

● 20 bi-weekly versions (~9 months)● Architectural models from Systems'

documentation

Page 8: On the evolutionary nature of architectural violations - WCRE 2012

A longitudinal and exploratory study

Software Evolution

V1 V2 V3 ... V20

Page 9: On the evolutionary nature of architectural violations - WCRE 2012

A longitudinal and exploratory study

Software Evolution

V1 V2 V3 ... V20

A B

C

A B

CA B

C

A B

C

Page 10: On the evolutionary nature of architectural violations - WCRE 2012

A longitudinal and exploratory study

Software Evolution

V1 V2 V3 ... V20

A B

C

A B

CA B

C

A B

C

List of violations

List of violations

List of violations

List of violations

Page 11: On the evolutionary nature of architectural violations - WCRE 2012

Research Questions

How does the gap between code and architecture evolve over time?

RQ1

Page 12: On the evolutionary nature of architectural violations - WCRE 2012

Research Questions

How does the gap between code and architecture evolve over time?

RQ1

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Page 13: On the evolutionary nature of architectural violations - WCRE 2012

Research Questions

How does the gap between code and architecture evolve over time?

RQ1

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Once violations are solved in a given version,do they appear again in future versions?

RQ3

Page 14: On the evolutionary nature of architectural violations - WCRE 2012

How does the gap between code and architecture evolve over time?

RQ1

Page 15: On the evolutionary nature of architectural violations - WCRE 2012

How does the gap between code and architecture evolve over time?

RQ1

Page 16: On the evolutionary nature of architectural violations - WCRE 2012

How does the gap between code and architecture evolve over time?

RQ1

Ant: Rollback

Page 17: On the evolutionary nature of architectural violations - WCRE 2012

How does the gap between code and architecture evolve over time?

RQ1

ArgoUML: “ProgressMonitor does not belong in the GUI subsystem...Move the ProgressMonitor into its own subsystem.”

Page 18: On the evolutionary nature of architectural violations - WCRE 2012

How does the gap between code and architecture evolve over time?

RQ1

Page 19: On the evolutionary nature of architectural violations - WCRE 2012

How does the gap between code and architecture evolve over time?

RQ1

Implementation tends to increasingly diverge from the intended architecture.

Page 20: On the evolutionary nature of architectural violations - WCRE 2012

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Page 21: On the evolutionary nature of architectural violations - WCRE 2012

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Page 22: On the evolutionary nature of architectural violations - WCRE 2012

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Heavy-tailed distribution. Few classes with many violations!

Page 23: On the evolutionary nature of architectural violations - WCRE 2012

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Page 24: On the evolutionary nature of architectural violations - WCRE 2012

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Page 25: On the evolutionary nature of architectural violations - WCRE 2012

Are the violations equally spread over the design entities or they concentrate on a few ones?

RQ2

Page 26: On the evolutionary nature of architectural violations - WCRE 2012

Once violations are solved, do they appear again in future versions?

RQ3

Yes. And it is a meaningful number.

Page 27: On the evolutionary nature of architectural violations - WCRE 2012

Violations' relevance

Why? What for?

Architectural erosion managment

Architectural changes suggestions

Page 28: On the evolutionary nature of architectural violations - WCRE 2012

Next Steps

Distribution of violations among developers

Why are there recurring violations?

Why do developers break the rules?

Page 29: On the evolutionary nature of architectural violations - WCRE 2012

That´s all Folks!

Page 30: On the evolutionary nature of architectural violations - WCRE 2012

Backup Slides

Page 31: On the evolutionary nature of architectural violations - WCRE 2012

SweetHome3D - Arch Model