Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun...
-
date post
20-Dec-2015 -
Category
Documents
-
view
213 -
download
0
Transcript of Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures Yijun...
Graph-Centric Tools for Understanding the Evolution and Relationships ofSoftware Structures
Yijun YuMichel Wermelinger
Computing DepartmentThe Open University, UK
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
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
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
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 ...
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"
Example: histogram
Example: core architecture
Visualise the evolution of the architecture
GUESS visualisation
Layeredarchitecture+ bugs
ASSIGNED
CLOSED
NEW
REOPENED
RESOLVED
VERIFIED
P1
P2
P3
P4
P5
blocker
critical
enhancement
major
minor
normal
trivial
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
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)