+ All Categories
Home > Documents > Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun...

Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun...

Date post: 20-Dec-2015
Category:
View: 213 times
Download: 0 times
Share this document with a friend
Popular Tags:
13
Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun Yu Michel Wermelinger Computing Department The Open University, UK
Transcript
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)


Recommended