Assessment Through Exploration

Preview:

DESCRIPTION

I used this set of slides for the CHOOSE talk I gave at the University of Zurich on October 23, 2009

Citation preview

assessmentthrough exploration

tudor gîrbawww.tudorgirba.com

forward engineering

}

{

}

{

}

{

}

{

forward engineering

actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

forward engineering

actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

reve

rse e

ngin

eerin

g

}

{

}

{

}

{}

{

}

{

}

{

}

{

}

{}

{

}

{

reports are useful, but limited

}

{

}

{

}

{}

{

}

{

visualization is important

}

{

}

{

}

{}

{

}

{

exploration is crucial

}

{

}

{

}

{}

{

}

{

how can we build dedicated browsers?

Philipp BungeTudor GîrbaLukas RenggliJorge RessiaDavid 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 := TableLa

youtBrowser

new.

b column: #n

amespaces;

column: #c

lasses;

column: #m

ethods.

b showOn: #n

amespaces;

using: [

b tree

displa

y: [ :model

|

mode

l allNamespa

ces

sele

ct: #isRoot

];

childr

en: #childSc

opes;

format

: #name ].

b showOn: #c

lasses;

from: #nam

espaces; usi

ng: [

b list

displa

y: #classes;

format

: #name ].

b showOn: #m

ethods;

from: #cla

sses; using:

[

b list

displa

y: #methods;

format

: #signature

].

b sendToOuts

ide: #class

from: #cla

sses.

b sendToOuts

ide: #method

from: #met

hods.

B := TableLa

youtBrowser

new.

B title: 'Gl

amorous Brow

ser'.

B row: #nav;

row: #deta

ils.

B showOn: #n

av;

using: [

B custom

: b ].

B showOn: #d

etails;

from: #nav

->#class;

using: [

B text

displa

y: #sourceTe

xt ].

B showOn: #d

etails;

from: #nav

->#method;

using: [

B text

displa

y: #sourceTe

xt ].

}

{

}

{

}

{}

{

}

{

}

{

}

{

}

{}

{

}

{b := T

ableLayoutBr

owser new.

b column: #n

amespaces;

column: #c

lasses;

column: #m

ethods.

b showOn: #n

amespaces;

using: [

b tree

displa

y: [ :model

|

mode

l allNamespa

ces

sele

ct: #isRoot

];

childr

en: #childSc

opes;

format

: #name ].

b showOn: #c

lasses;

from: #nam

espaces; usi

ng: [

b list

displa

y: #classes;

format

: #name ].

b showOn: #m

ethods;

from: #cla

sses; using:

[

b list

displa

y: #methods;

format

: #signature

].

b sendToOuts

ide: #class

from: #cla

sses.

b sendToOuts

ide: #method

from: #met

hods.

B := TableLa

youtBrowser

new.

B title: 'Gl

amorous Brow

ser'.

B row: #nav;

row: #deta

ils.

B showOn: #n

av;

using: [

B custom

: b ].

B showOn: #d

etails;

from: #nav

->#class;

using: [

B text

displa

y: #sourceTe

xt ].

B showOn: #d

etails;

from: #nav

->#method;

using: [

B text

displa

y: #sourceTe

xt ].

}

{

}

{

}

{}

{

}

{

Browser

Browser

Pane

*

1

Port

Browser

Pane1 *

*

1

Port

TransmissionBrowser

Pane1 *

*

1

1

*

1..*

*

Port

TransmissionBrowser

Pane1 *

*

1

1 *

1

*

1..*

*

Port

TransmissionBrowser

Presentation Pane* 1 1 *

*

1

1 *

1

*

1..*

*

Object

Port

TransmissionBrowser

Presentation Pane

1

*

* 1 1 *

*

1

1 *

1

*

1..*

*

Object

Port

TransmissionBrowser

Presentation Pane

ListTree

1

*

* 1 1 *

*

1

1 *

1

*

1..*

*

Object

Port

TransmissionBrowser

Presentation Pane

ListTree

1

*

* 1 1 *

*

1

1 *

FinderTableLayout

1

*

1..*

*

Object

Port

TransmissionBrowser

Presentation Pane

ListTree

1

*

* 1 1 *

*

1

1 *

FinderTableLayout

1

*

1..*

*

Object

Port

TransmissionBrowser

Presentation Pane

ListTree

1

*

* 1 1 *

*

1

1 *

FinderTableLayout

1

*

1..*

*

BundleSimple

Object

Port

TransmissionBrowser

Presentation Pane

Action

ListTree

1

*

*

1

* 1 1 *

*

1

1 *

FinderTableLayout

1

*

1..*

*

BundleSimple

Object

Port

TransmissionBrowser

Presentation Pane

Action

ListTree

1

*

*

1

* 1 1 *

*

1

1 *

FinderTableLayout

1

*

1..*

*

BundleSimple

Mondrian

~50 classes

~2300 lines of code

Object

Port

TransmissionBrowser

Presentation Pane

Action

ListTree

1

*

*

1

* 1 1 *

*

1

1 *

FinderTableLayout

1

*

1..*

*

BundleSimple

Mondrian

}

{

}

{

}

{}

{

}

{

how can we build dedicated browsers?

Recommended