ASSESSING THE IMPACT OF
FRAMEWORK CHANGESUSG COORANKINGGSING
OMPONENT
Reishi YokomoriNanzan University, JapanHarvey Siy
University of Nebraska at Omaha, USAM
MasamiiN
NoroNanzan University, Japan
Katsuro Inoue
Osaka University,y, Japanp

BACKGROUND| Most of today’s software applications are built

on libraries or frameworks.
frameworks

y Not only the application, but also framework

grow during
d i theh development.
dly Research question:| How do developers work through their evolution?
y We would like to know how to assess the impactof framework changes.
| In this study,
study we analyze the evolution ofsoftware based on use relationship between
components
components.

PURPOSE OF STUDY
We analyzed in an actual open source project;| ToT findfi d characteristics
ht i ti forf theth evolution
l ti off
use relation between framework components
and application software.
| To show that the analysis of use relation isa viablei bl analysis
l i methodology
th d lfor
f studyingt d isoftware evolution.

TARGET SOFTWARE| We will analyze the evolution of use relationbetween framework and application.
applicationy The target framework: JHotDraw

a Java-based GUI framework
for technical and structured graphics.
y The target application: JARP
| a Java
Java-based
based Petri net tool
| It uses JHotDraw as a framework for editing aPetri net
net, drawing the result
result, and so on.
|| We will analyze use relation based onh andd componentt rank.
kcomponentt graphCOMPONENT GRAPH| It models use relations in software.

y NodesN d : componentty Edges : use relation|incoming and outgoing edges for each component
Acomponent(Class)BCD

use relation(Method call, variable,instance creation,and field access)COMPONENT RANK
| is a ranking method for components.
y How much component is used?

| is based on use relation between components.
y If the component is frequently used,

its rank goes up.
B th did iindirect
di t use relationl ti are ttaken
ky Bothdirectt andinto consideration.
| isi calculated
l l t d fromftheth componentt graph.
hy Value of each component is a steady-state

distribution
di t ib ti on a Markov
M k chain.
h iy Components are sorted by the value of eachtcomponent.

CALCULATION PROCESS OFCOMPONENT RANK
0.200
C1C2C20.400
0.2000.333v
0.167
C20.200
v1×50%
50%
C20.1670.400
0.200
v3×100%v2×100%
0.333
0.167
0 167
0.167
CC20.333 1
0.333
C3 C2
C1 C2
C1 C3
0.250
0.167
0.400
0.333v
0.417
CCC0.500 C
0.167
1 C
120 167
0.167
C C2 0.167

C10.333v
C1C1

v1×50%
50%

1230.500

3 10.334

C30.5000500
0.334

20.250 0.167

0.167

C3 0.417
C30.334 C3 C0.167

30.4170.250

C30.250

C3 0.417
7

METRICS FOR ANALYSIS|Edges from application component

to framework componenty Incoming
Ii g edgesdg

to each framework component
py Outgoing edges
ffromeachh applicationliicomponent|Component rank

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
itik| Theoff componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from application

classes

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
itik
| The
off componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from application

classesGENERAL INFORMATION| JARP has 11 versions.

THE EVOLUTION OF
USE RELATION
2500

2000

Inside of JHotDraw

1500

1000

Inside of JARP

500

0Ver100

Ver1001

Ver101

Ver1109 Ver1110 Ver1111 Ver1112 Ver1113 Ver1114 Ver1115 Ver1116

Use relation
between framework
and application Gradually increase

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
itik| Theoff componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from application

classes

MAJOR EVOLUTION PERIODS
IN JARP DEVELOPMENT| We suggested a metrics to detect important

updates in the development process.

Large size ofM difi ti
Modification

A lot of changes
i use relations
inl tiComponent ranki alsoisl changed.
hdI thiit changeh| In
the previousexperiment,
off componenttrank was useful to guess an impact of the update.
y major-scale
jl featuref
iimplementationliy maintenance to core components
y refactoring and restructuring of system

R. Yokomori, M. Noro, and K. Inoue. “Evaluation of Source Code Updates in SoftwareDevelopment Based on Component Rank”. In Proceedings of 13th Asia Pacific Software
Engineering Conference, pages 327–334, Bangalore, India, 2006.

MAJOR EVOLUTION PERIODS
IN JARP DEVELOPMENTClass allocationis changed
drastically
JHotDraw isUpgraded

MAJOR EVOLUTION PERIODS
IN JARP DEVELOPMENT| We can confirm which update has an impact

on the system by using the change ofcomponent rank.
| We can also confirm which subsystem isaffected by the update.

I ver. 1
1 9 ffunctions
tiii dy In
1.1.9,off mainwindow
aredivided into subcomponents, and tools package
is produced.
producedy In ver. 1.1.12, functions of PetriNetImpl aredivided into subcomponents
subcomponents, and edition andsimulation packages are produced.
ver 1.1.10,
1 1 10 12,
12 14,
14 JHotDraw is upgradedy In ver.
upgraded.

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
itik| Theoff componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from applicationclasses

EVOLUTION OF OUTGOING EDGES
90

Cummulattive frrequeency

Max

80

7060
Ver10050

Ver1109
Ver1112

40

Ver1113
Ver111430

20100123456789101112

1314151617181920# of Outgoing edges to the framework classes

EVOLUTION OF OUTGOING EDGESDisappeared!!

Drasticallydecreased!!

EVOLUTION OF OUTGOING EDGES| In summary, the number of outgoing edges

increases little by little.
littley The number of components which have outgoingedges
diincreases.

| However,, the maximum number doesn’tchange so much.

y If a large component has a lot of outgoing edges,
edges

it becomes a target of refactoring.
| Decomposed
Dd intoi t severall components
t whichhi h have
ha small number of outgoing edges.

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
itik| Theoff componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from applicationclasses

EVOLUTION OF INCOMING EDGES
90

Cum
mulattive frrequeency

Max

80

7060

Ver100-1001-101

50

Ver1109
Ver1112

40

Ver1113
Ver1114-16

30

20100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30# of Incoming edges from the application classes

EVOLUTION OF INCOMING EDGES
Increasing!!
Increasing!!
Increasing!!
Increasing!!

EVOLUTION OF INCOMING EDGES| For almost all of the components,

theincreases.
th numberb off incomingii edgesdiy The maximum number also increases.
y Existing interface is not changed.

| The number of framework components

which have incoming edges doesn’t
increase so much.

well-organizedy Interface of framework is well-organized.

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
iti
k
| The
off componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from application

classesTRANSITION OF COMPONENT RANK- JARP(APPLICATION)

TRANSITION OF COMPONENT RANK- JARP(APPLICATION)| Component Rank depends on theimplemented function.
functiony Ver. 1.0.0: About Petri-net
y Ver. 1.1.9- : About Petri-net, Filter,
Progress Callback, XMLBrowser| Based on the increase of rank, we can confirm
y What functions are newly implemented?
y What type of data is used for new function?

TRANSITION OF COMPONENT RANK- JHOTDRAW(FRAMEWORK)TRANSITION OF COMPONENT RANK- JHOTDRAW(FRAMEWORK)| Component rank is useful for detectingcore components
the framework.
t ini thfky Some components are joined into corecomponents during development.
H lf off core componentst are stilltill on theth list.
li ty Half|

Because interface of framework is not changed.

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
itik| Theoff componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from application

classesTHE IMPACT OF
FRAMEWORK UPGRADING| If the framework is upgraded, some application

component would be modified for adjusting.
adjusting| Research question:y What component’s component rank is changed?
y What kind of components should be reviewed?
| We
W listli JARP components whosehrankk goes up

when JHotDraw is upgraded.
y affected components

THE IMPACT OF
FRAMEWORK UPGRADING

ToolT lMain
Utility classTHE IMPACT OF
FRAMEWORK UPGRADING| Components which use framework

class,
suchare affected.
lh as toolt l classes,l
ff t dy Direct use relation changed.
y Some of them have almost the class samet tstructure.

| Main and utility
y classes are alsoaffected.

y Directanduse relation
Did Indirect
I dil i changed.
hd

RESULTS OF EXPERIMENTS| General Information| Majordevelopment
M j evolution
l ti periods
i d ini JARP dlt| The evolution of outgoingg g edgesg| The evolution of incoming edges

Th ttransitions
itik| Theoff componentt rank
| The impact
pof framework upgradingpgg| The impact of incoming edges from applicationclasses

THE IMPACT OF INCOMING EDGES
Research question:| Are frequently used components inframework different when external use
relations are considered?
| We compared these two rankings:
y Component rank based on JHotDraw

classes only.
y Component rank based on both
JHotDraw and JARP classes.
|Only JHotDraw classes are extracted.

THE IMPACT OF INCOMING EDGES

Handler

CommandConnector

THE IMPACT OF INCOMING EDGES| Many command classes went up in ranking.

y Somecomponents
the framework.
St are nott usedd iin thfky These components implements specific function.
y Direct use relations from application

appears| Handler and connector also appears.
y Indirect use relations from application| There is a little difference
ff
betweencomponents used in the framework andcomponents used in the application.
reorganizationy This information is useful for reorganization.

SUMMARY: THE EFFECTIVENESS OF

USE RELATION ANALYSIS| Use relation between components assists tograsp the entire of software.
softwarey The change of use relation is closely related to theactivities
i i i ini theh development.
dly The change of use relation highlights
other characteristics of software.

| Component rank is useful to assess the change.

y To grasp newly implemented functions roughly.
y ToT detectd t t core component.
ty To confirm the affected components by the update.

CONCLUSION| In this research, we observed the evolution ofuse relation between components between
framework and application| Metrics about use relation is useful to grasp

the overview of software.

y The change of use relation is closely related tothe activities in the development.
y Component
rankCk iis alsol a goodd sources off
information.

FUTURE WORKS| To observe an impact of application in anothersituation.
situationy If the existing API of framework is changed?
y If the framework itself is completely replaced?

| Too estimate
esa e thee costcos ofo upgradingpg ag ofo framework.
a ewo .
y Which application components are really modified?
y Can we estimate needed effort roughly?

| Use relation analysis in an another theme.
y evaluation of a refactoring method based onaspectization.

Thank you