Upload
tudor-girba
View
439
Download
1
Tags:
Embed Size (px)
DESCRIPTION
I used this set of slides for a lecture I gave at the University of Berne (http://scglectures.unibe.ch/evo2008)
Citation preview
Software understandingin the large
Tudor Gîrbawww.tudorgirba.com
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
}
{
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{actual development
reve
rse
engi
neer
ing
}
{}
{
}
{
}
{ }
{
}
{
Systems are large and complex}
{}
{
}
{
}
{ }
{
}
{
}
{}
{
}
{
}
{ }
{
}
{
… and have many facets
Still, simple tools can get you far
for i in $( ls ); do echo `wc -l $i` >> tempdonesort -nr temp | head -10
Spinellis 2003
Hindle etal 2008
Indentation correlates with complexity.
Queries reduce the analysis space
Mens etal 2006
Intensional Views ensure rules
acceptsClassOfType(?VisitorClass,?VisitedClass) if methodWithNameInClass(?Method,?Selector,?VisitorClass), [’accept*’ match:?Selector asString], argumentOfMethod(?Argument,?Method), [’*’,(?VisitedClass name asString), ’*’ match:?Argument asString]
Visual queries put results in perspective
Every system is special.
team 1te
am 2
}
{}
{
}
{
}
{ }
{
}
{
}
{}
{
}
{
}
{ }
{
}
{
team 1te
am 2
}
{}
{
}
{
}
{ }
{
}
{
}
{}
{
}
{
}
{ }
{
}
{
=
Every system is special.
Reporting Live analysisvs.
Every system is special.
Every technology is special.
Lanza, Marinescu 2006
Data Classes are dumb data holders
WOC < ONE THIRD
Interface of class reveals data
rather than offering services
AND Data Class
Class reveals many attributes and is
not complex
java.sun.com
Use a Transfer Object to encapsulate the business data. A single method call is used to send and retrieve the Transfer Object.
When the client requests the enterprise bean for the business data, the enterprise bean can construct the Transfer Object, populate it with its attribute values, and pass it by value to the client.
Every technology is special.
In Java
= .java
}
{}
{
}
{
}
{ }
{
}
{
In J2EE
= .java
}
{}
{
}
{
}
{ }
{
}
{
In J2EE
= .java
.jsp
}
{}
{
}
{
}
{ }
{
}
{
In J2EE
= .java
.jsp
.xml
}
{}
{
}
{
}
{ }
{
}
{
By looking only at .java we
would miss useful information
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
*//**
Schreck etal 2007
Schreck etal 2007
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
*//**
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
*//**
@
Adams etal 2007
MAKAO shows Makefile dependencies
The sources can tell you how the system looks like,but not why.
ugly?
Model
GUI
Model
Helpers GUI
Model
Murphy etal 1995Helpers GUI
Model
Helpers
Model
Brühlmann etal 2008
Brühlmann etal 2008
Put findings in perspective.
It’s not Lupus
You mainly see what you are looking for.
Tudor Gîrbawww.tudorgirba.com
creativecommons.org/licenses/by/3.0/