assessment
through exploration
tudor gîrba
www.tudorgirba.com
f
o
r
w
a
r
d
e
n
g
i
n
e
e
r
i
n
g
}
{
}
{
}
{
}
{
f
o
r
w
a
r
d
e
n
g
i
n
e
e
r
i
n
g
actual development }
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
f
o
r
w
a
r
d
e
n
g
i
n
e
e
r
i
n
g
actual development }
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
r
e
v
e
r
s
e
e
n
g
i
n
e
e
r
i
n
g
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
reports are useful, but limited
}
{
}
{
}
{
}
{
}
{
visualization is important
}
{
}
{
}
{
}
{
}
{
exploration is crucial
}
{
}
{
}
{
}
{
}
{
how can we build dedicated browsers?
http://moose.unibe.ch/tools/glamour
Philipp Bunge
Tudor Gîrba
Lukas Renggli
Jorge Ressia
David Röthlisberger
Assessment Through Exploration
Assessment Through Exploration
Assessment Through Exploration
package 1
package 2
...
Class A
Class B
...
method M
method N
...
source code
package 1
package 2
...
Class A
Class B
...
method M
method N
...
source code
package 1
package 2
...
Class A
Class B
...
method M
method N
...
source code
Assessment Through Exploration
Assessment Through Exploration
Assessment Through Exploration
Assessment Through Exploration
b := TableLayoutBrowser new.
b column: #namespaces;
column: #classes;
column: #methods.
b showOn: #namespaces;
using: [
b tree
display: [ :model |
model allNamespaces
select: #isRoot ];
children: #childScopes;
format: #name ].
b showOn: #classes;
from: #namespaces; using: [
b list
display: #classes;
format: #name ].
b showOn: #methods;
from: #classes; using: [
b list
display: #methods;
format: #signature ].
Assessment Through Exploration
Assessment Through Exploration
Assessment Through Exploration
Assessment Through Exploration
b sendToOutside: #class
from: #classes.
b sendToOutside: #method
from: #methods.
B := TableLayoutBrowser new.
B title: 'Glamorous Browser'.
B row: #nav;
row: #details.
B showOn: #nav;
using: [
B custom: b ].
B showOn: #details;
from: #nav->#class;
using: [
B text
display: #sourceText ].
B showOn: #details;
from: #nav->#method;
using: [
B text
display: #sourceText ].
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
b := TableLayoutBrowser new.
b column: #namespaces;
column: #classes;
column: #methods.
b showOn: #namespaces;
using: [
b tree
display: [ :model |
model allNamespaces
select: #isRoot ];
children: #childScopes;
format: #name ].
b showOn: #classes;
from: #namespaces; using: [
b list
display: #classes;
format: #name ].
b showOn: #methods;
from: #classes; using: [
b list
display: #methods;
format: #signature ].
b sendToOutside: #class
from: #classes.
b sendToOutside: #method
from: #methods.
B := TableLayoutBrowser new.
B title: 'Glamorous Browser'.
B row: #nav;
row: #details.
B showOn: #nav;
using: [
B custom: b ].
B showOn: #details;
from: #nav->#class;
using: [
B text
display: #sourceText ].
B showOn: #details;
from: #nav->#method;
using: [
B text
display: #sourceText ].
}
{
}
{
}
{
}
{
}
{
Browser
Browser
Pane
*
1
Port
Browser
Pane 1 *
*
1
Port
Transmission
Browser
Pane 1 *
*
1
1
*
1..*
*
Port
Transmission
Browser
Pane 1 *
*
1
1 *
1
*
1..*
*
Port
Transmission
Browser
Presentation Pane
* 1 1 *
*
1
1 *
1
*
1..*
*
Object
Port
Transmission
Browser
Presentation Pane
1
*
* 1 1 *
*
1
1 *
1
*
1..*
*
Object
Port
Transmission
Browser
Presentation Pane
List
Tree
1
*
* 1 1 *
*
1
1 *
1
*
1..*
*
Object
Port
Transmission
Browser
Presentation Pane
List
Tree
1
*
* 1 1 *
*
1
1 *
Finder
TableLayout
1
*
1..*
*
Object
Port
Transmission
Browser
Presentation Pane
List
Tree
1
*
* 1 1 *
*
1
1 *
Finder
TableLayout
1
*
1..*
*
Object
Port
Transmission
Browser
Presentation Pane
List
Tree
1
*
* 1 1 *
*
1
1 *
Finder
TableLayout
1
*
1..*
*
Bundle
Simple
Object
Port
Transmission
Browser
Presentation Pane
Action
List
Tree
1
*
*
1
* 1 1 *
*
1
1 *
Finder
TableLayout
1
*
1..*
*
Bundle
Simple
Object
Port
Transmission
Browser
Presentation Pane
Action
List
Tree
1
*
*
1
* 1 1 *
*
1
1 *
Finder
TableLayout
1
*
1..*
*
Bundle
Simple
Mondrian
~50 classes
~2300 lines of code
Object
Port
Transmission
Browser
Presentation Pane
Action
List
Tree
1
*
*
1
* 1 1 *
*
1
1 *
Finder
TableLayout
1
*
1..*
*
Bundle
Simple
Mondrian
Assessment Through Exploration
}
{
}
{
}
{
}
{
}
{
how can we build dedicated browsers?
http://moose.unibe.ch/tools/glamour
Tudor Gîrba
www.tudorgirba.com
creativecommons.org/licenses/by/3.0/

More Related Content

PDF
Assessing software systems
PDF
05 Problem Detection
PDF
Enhancing agile development through software assessment
PDF
Problem Detection (EVO 2008)
PDF
Holistic software assessment at the University of Zurich
PDF
Reverse Engineering (EVO 2008)
PDF
Software understanding in the large (EVO 2008)
PDF
Moose Overview
Assessing software systems
05 Problem Detection
Enhancing agile development through software assessment
Problem Detection (EVO 2008)
Holistic software assessment at the University of Zurich
Reverse Engineering (EVO 2008)
Software understanding in the large (EVO 2008)
Moose Overview

What's hot (7)

PDF
Restructuring (EVO 2008)
PDF
History Analysis (EVO 2008)
PDF
Reverse Engineering 2007-11-27
PDF
Helping you reengineering your legacy
PDF
What history can tell us
PDF
Software in Pictures 2008-03-12
PDF
A Moose Slideshow
Restructuring (EVO 2008)
History Analysis (EVO 2008)
Reverse Engineering 2007-11-27
Helping you reengineering your legacy
What history can tell us
Software in Pictures 2008-03-12
A Moose Slideshow
Ad

More from Tudor Girba (20)

PDF
Beyond software evolution: Software environmentalism
PDF
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
PDF
GT Spotter
PDF
Don't demo facts. Demo stories! (handouts)
PDF
Don't demo facts. Demo stories!
PDF
Humane assessment on cards
PDF
Underneath Scrum: Reflective Thinking
PDF
1800+ TED talks later
PDF
Software assessment by example (lecture at the University of Bern)
PDF
Humane assessment: Taming the elephant from the development room
PDF
Moose: how to solve real problems without reading code
PDF
Software Environmentalism (ECOOP 2014 Keynote)
PPTX
The emergent nature of software systems
PDF
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
PDF
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
PDF
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
PDF
Demo-driven innovation teaser
PDF
Software assessment essentials (lecture at the University of Bern 2013)
PDF
Demo-driven innovation (University of Zurich, June 2013)
PDF
Humane assessment with Moose at GOTO Aarhus 2011
Beyond software evolution: Software environmentalism
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
GT Spotter
Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories!
Humane assessment on cards
Underneath Scrum: Reflective Thinking
1800+ TED talks later
Software assessment by example (lecture at the University of Bern)
Humane assessment: Taming the elephant from the development room
Moose: how to solve real problems without reading code
Software Environmentalism (ECOOP 2014 Keynote)
The emergent nature of software systems
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Demo-driven innovation teaser
Software assessment essentials (lecture at the University of Bern 2013)
Demo-driven innovation (University of Zurich, June 2013)
Humane assessment with Moose at GOTO Aarhus 2011
Ad

Assessment Through Exploration