SlideShare a Scribd company logo
1 of 48
Download to read offline
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
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
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 ].
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
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
}
{
}
{
}
{
}
{
}
{
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

What's hot

Restructuring (EVO 2008)
Restructuring (EVO 2008)Restructuring (EVO 2008)
Restructuring (EVO 2008)Tudor Girba
 
History Analysis (EVO 2008)
History Analysis (EVO 2008)History Analysis (EVO 2008)
History Analysis (EVO 2008)Tudor Girba
 
Reverse Engineering 2007-11-27
Reverse Engineering 2007-11-27 Reverse Engineering 2007-11-27
Reverse Engineering 2007-11-27 Tudor Girba
 
Helping you reengineering your legacy
Helping you reengineering your legacyHelping you reengineering your legacy
Helping you reengineering your legacyStéphane Ducasse
 
What history can tell us
What history can tell usWhat history can tell us
What history can tell usTudor Girba
 
Software in Pictures 2008-03-12
Software in Pictures 2008-03-12Software in Pictures 2008-03-12
Software in Pictures 2008-03-12Tudor Girba
 
A Moose Slideshow
A Moose SlideshowA Moose Slideshow
A Moose SlideshowTudor Girba
 

What's hot (7)

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

More from Tudor Girba

Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismBeyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismTudor Girba
 
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Tudor Girba
 
Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Tudor Girba
 
Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Tudor Girba
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cardsTudor Girba
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingTudor Girba
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks laterTudor Girba
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Tudor Girba
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomTudor Girba
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeTudor Girba
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Tudor Girba
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systemsTudor Girba
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Tudor Girba
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Tudor Girba
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Tudor Girba
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaserTudor Girba
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Tudor Girba
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Tudor Girba
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Tudor Girba
 

More from Tudor Girba (20)

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

Assessment Through Exploration