13
Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open University, UK

Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Graph-Centric Tools for Understanding the Evolution and Relationships ofSoftware Structures

Yijun YuMichel Wermelinger

Computing DepartmentThe Open University, UK

Page 2: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Motivation

In order to study the architectural evolution of long-lived complex systems in relation to social/technical perspectives

E.g., quality attributes versus architecture

We provide tools to support Measuring the evolution of software structures

E.g., architectural evolutionary metrics Visualising attributes of any set of software

artefacts in relation to elements in graphs E.g., colour spectrums + graph visualisation

Page 3: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Our tool chain in general

Fact Extractors

Facts base

Fact ViewersArtefacts

v1

Artefactsvn

.

.

.

productrepository

time

Artefactsvn

Artefactsv1

processrepository

Facts base

Fact Viewers

Fact Viewers

Fact Extractors

.

.

.

time

Page 4: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Specific tool chain: e.g., Eclipse

Architecture Extractors

pluginsdepend.

release1.0

release3.3.1.1

.

.

.

productrepository

time

Bug reports

219901-220000

Bug reports

1-100

processrepository

status priorityseverity

graphs + spectrum

visualisations

Bug Info.Extractors

.

.

.

time

XSLT

bug.xml

OpenOfficegraphviz

guessccvisu

graphs histograms

RSFAWK, XSLT

CrocoPat

plugin.xmlmanifest.mf

graphvizTrace2PNG

Page 5: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Example: Architecture InputRelease Eclipse 1.0Provides 1.0 org.eclipse.ant.core org.eclipse.ant.core.antObjectsProvides 1.0 org.eclipse.ant.core org.eclipse.ant.core.antTasks... Extends 1.0 org.eclipse.ant.core org.eclipse.ant.core.antTasksExtends 1.0 org.eclipse.ant.core org.eclipse.core.runtime.applications ...Requires 1.0 org.eclipse.ant.core org.apache.xercesRequires 1.0 org.eclipse.ant.core org.eclipse.core.resources ...Release Eclipse 2.0Provides 2.0 org.eclipse.ant.core org.eclipse.ant.core.antTasksProvides 2.0 org.eclipse.ant.core org.eclipse.ant.core.antTypes ...Release Eclipse 3.4Provides 3.4 org.eclipse.ant.core org.eclipse.ant.core.antPropertiesProvides 3.4 org.eclipse.ant.core org.eclipse.ant.core.antTasks ...

Page 6: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Example: Bugs inputBUG 1 "2001-10-10 21:34 -0400" "Platform" "Team" "2.0"

"CLOSED" "FIXED" "[email protected]" "[email protected]" "P3" "normal"

BUG 2 "2001-10-10 21:34 -0400" "Platform" "Team" "2.0" "RESOLVED" "FIXED" "[email protected]" "[email protected]" "P5" "normal"

BUG 3 "2001-10-10 21:34 -0400" "Platform" "Team" "2.0" "RESOLVED" "FIXED" "[email protected]" "[email protected]" "P5" "normal"

...BUG 213000 "2007-12-14 05:38 -0400" "Equinox" "Bundles"

"3.2.1" "NEW" "" "[email protected]" "[email protected]" "P3" "normal"

Page 7: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Example: histogram

Page 8: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Example: core architecture

Page 9: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Visualise the evolution of the architecture

GUESS visualisation

Page 10: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Layeredarchitecture+ bugs

ASSIGNED

CLOSED

NEW

REOPENED

RESOLVED

VERIFIED

P1

P2

P3

P4

P5

blocker

critical

enhancement

major

minor

normal

trivial

Page 11: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

Conclusions Measuring architectural graph evolution

There is a core architecture Visualising distribution of bugs in the

architecture There are common patterns among same

components of the same layers There are differences in bug behaviour when

components are not in the same layer We use existing tools, and our tools can

also be integrated with other tools http://computing-research.open.ac.uk/sead/archev

Page 12: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open
Page 13: Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open

README Download

Eclipse.sh, netbeans.sh Extract

fact.sh Eclipse | NetBeans Merge

merge.sh Eclipse|NetBeans Metric

metric.sh Eclipse| NetBeans csv.sh Eclipse| NetBeans

Calc (Eclipse only) calc.sh

Graph graph.sh Eclipse| NetBeans

Bugs (Eclipse only) stat.sh

Comp (Eclipse only) comp.sh

Trace (Eclipse only) all.sh

Samples Eclipse NetBeans Firefox (TODO) Gnome (TODO)

Tools crocopat guess Qldx (TODO) Eclipse/cdt (TODO)