The humane software assessment (Choose Forum 2009)

81
the humane software assessment Tudor Gîrba www.tudorgirba.com

description

I used this set of slides for a talk I gave at the CHOOSE Forum 2009.

Transcript of The humane software assessment (Choose Forum 2009)

Page 1: The humane software assessment (Choose Forum 2009)

the humanesoftware assessment

Tudor Gîrbawww.tudorgirba.com

Page 2: The humane software assessment (Choose Forum 2009)

the humanesoftware assessment

Tudor Gîrbawww.tudorgirba.com

www.sw-eng.ch

Page 3: The humane software assessment (Choose Forum 2009)

software assessment

Page 4: The humane software assessment (Choose Forum 2009)

}

{

}

{

}

{

}

{

forw

ard

engi

neer

ing

Page 5: The humane software assessment (Choose Forum 2009)

actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

forw

ard

engi

neer

ing

Page 6: The humane software assessment (Choose Forum 2009)

actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

forw

ard

engi

neer

ing

reve

rse

engi

neer

ing

Page 7: The humane software assessment (Choose Forum 2009)

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

Page 8: The humane software assessment (Choose Forum 2009)
Page 9: The humane software assessment (Choose Forum 2009)
Page 10: The humane software assessment (Choose Forum 2009)

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

Page 11: The humane software assessment (Choose Forum 2009)

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

Page 12: The humane software assessment (Choose Forum 2009)

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

assessment

Page 13: The humane software assessment (Choose Forum 2009)

software assessment

Page 14: The humane software assessment (Choose Forum 2009)

software assessmentis a human activity

Page 15: The humane software assessment (Choose Forum 2009)

the humanesoftware assessment

Page 16: The humane software assessment (Choose Forum 2009)

humans1. build the system

2. perform the assessment

3. consume the assessment

Page 17: The humane software assessment (Choose Forum 2009)

humans1. build the system

2. perform the assessment

3. consume the assessment

Page 18: The humane software assessment (Choose Forum 2009)

Conway, 1968

the shape of the

influences the shape of the system

organization

Page 19: The humane software assessment (Choose Forum 2009)

Conway, 1968

system

organization

Page 20: The humane software assessment (Choose Forum 2009)

Gîrba etal 2005

Page 21: The humane software assessment (Choose Forum 2009)

Junker 2008

Page 22: The humane software assessment (Choose Forum 2009)

Lungu etal 2007

Page 23: The humane software assessment (Choose Forum 2009)

Conway, 1968

system

organization

Page 24: The humane software assessment (Choose Forum 2009)

system

organization

Page 25: The humane software assessment (Choose Forum 2009)

humans1. build the system

2. perform the assessment

3. consume the assessment

Page 26: The humane software assessment (Choose Forum 2009)

humans1. build the system

2. perform the assessment

3. consume the assessment

Page 27: The humane software assessment (Choose Forum 2009)

humans1. build the system

2. perform the assessment

3. consume the assessment

Page 28: The humane software assessment (Choose Forum 2009)

humans are not machines

Page 29: The humane software assessment (Choose Forum 2009)

it is humane to identify patterns

Page 30: The humane software assessment (Choose Forum 2009)

read all code in one hour?

Page 31: The humane software assessment (Choose Forum 2009)

humans identify patterns

Page 32: The humane software assessment (Choose Forum 2009)

humans identify patterns

Page 33: The humane software assessment (Choose Forum 2009)

humans identify patterns

Page 34: The humane software assessment (Choose Forum 2009)

Lanza, Ducasse 2003

Page 35: The humane software assessment (Choose Forum 2009)

it is humane to jump to conclusions

Page 36: The humane software assessment (Choose Forum 2009)
Page 37: The humane software assessment (Choose Forum 2009)

it’s not lupus

Page 38: The humane software assessment (Choose Forum 2009)

it is humane to have preconceived ideas

Page 39: The humane software assessment (Choose Forum 2009)

NOM = ?

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

Page 40: The humane software assessment (Choose Forum 2009)

NOM = 7

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

Page 41: The humane software assessment (Choose Forum 2009)

NOM = 7 6

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

Page 42: The humane software assessment (Choose Forum 2009)

NOM = 7 6 4

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

Page 43: The humane software assessment (Choose Forum 2009)

NOM = 7 6 4 3

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

Page 44: The humane software assessment (Choose Forum 2009)

NOM = 7 6 4 3 2

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

Page 45: The humane software assessment (Choose Forum 2009)

NOM = 7, 6, 4, 3, 2 ?

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

Page 46: The humane software assessment (Choose Forum 2009)

NOM = 7, 6, 4, 3, 2 ?

public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}

}

you decide

Page 47: The humane software assessment (Choose Forum 2009)

analysis

Page 48: The humane software assessment (Choose Forum 2009)

control

analysis

Page 49: The humane software assessment (Choose Forum 2009)

control to interpret

analysis

Page 50: The humane software assessment (Choose Forum 2009)

Lanza, Ducasse 2003

Page 51: The humane software assessment (Choose Forum 2009)
Page 52: The humane software assessment (Choose Forum 2009)

requires

interpretation

Page 53: The humane software assessment (Choose Forum 2009)

Lanza, Ducasse 2003

requires

interpretation

Page 54: The humane software assessment (Choose Forum 2009)

control to interpret

analysis

Page 55: The humane software assessment (Choose Forum 2009)

it is humane to ask questions

Page 56: The humane software assessment (Choose Forum 2009)

WhatWhereWhenWhoHow

Page 57: The humane software assessment (Choose Forum 2009)

WhatWhereWhenWhoHowWhy

Page 58: The humane software assessment (Choose Forum 2009)

it is humane to hypothesize

Page 59: The humane software assessment (Choose Forum 2009)
Page 60: The humane software assessment (Choose Forum 2009)

Model

Page 61: The humane software assessment (Choose Forum 2009)

GUI

Model

Page 62: The humane software assessment (Choose Forum 2009)

Helpers GUI

Model

Page 63: The humane software assessment (Choose Forum 2009)

Murphy etal 1995

Helpers GUI

Model

Page 64: The humane software assessment (Choose Forum 2009)
Page 65: The humane software assessment (Choose Forum 2009)

Brühlmann etal 2008

Page 66: The humane software assessment (Choose Forum 2009)

Brühlmann etal 2008

Page 67: The humane software assessment (Choose Forum 2009)

humans are not machines

Page 68: The humane software assessment (Choose Forum 2009)

tools shouldnot drive

Page 69: The humane software assessment (Choose Forum 2009)

tools shouldnot drive

empower

Page 70: The humane software assessment (Choose Forum 2009)

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

assessment

Page 71: The humane software assessment (Choose Forum 2009)

Spinellis 2003

Page 72: The humane software assessment (Choose Forum 2009)
Page 73: The humane software assessment (Choose Forum 2009)

package 1

package 2

...

Class A

Class B

...

method M

method N

...

source code

Page 74: The humane software assessment (Choose Forum 2009)

package 1

package 2

...

Class A

Class B

...

method M

method N

...

source code

Page 75: The humane software assessment (Choose Forum 2009)

Bunge etal 2009

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 ].

moose.unibe.ch

Page 76: The humane software assessment (Choose Forum 2009)

Bunge etal 2009

Page 77: The humane software assessment (Choose Forum 2009)

what you can,governs what youwish

Page 78: The humane software assessment (Choose Forum 2009)

humans1. build the system

2. perform the assessment

3. consume the assessment

Page 79: The humane software assessment (Choose Forum 2009)

humans1. build the system

2. perform the assessment

3. consume the assessment

Page 80: The humane software assessment (Choose Forum 2009)

the humanesoftware assessment

Tudor Gîrbawww.tudorgirba.com