• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
The humane software assessment (Choose Forum 2009)
 

The humane software assessment (Choose Forum 2009)

on

  • 1,565 views

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

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

Statistics

Views

Total Views
1,565
Views on SlideShare
1,547
Embed Views
18

Actions

Likes
0
Downloads
3
Comments
0

2 Embeds 18

http://choose.s-i.ch 17
http://www.slideshare.net 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    The humane software assessment (Choose Forum 2009) The humane software assessment (Choose Forum 2009) Presentation Transcript

    • the humane software assessment Tudor Gîrba www.tudorgirba.com
    • the humane software assessment Tudor Gîrba www.tudorgirba.com eng .ch w ww.sw-
    • software assessment
    • { { } } { { } } for wa rd en gin eer ing
    • ing eer gin en rd wa for { { { { { { { { } } } actual development } } } } } { }
    • { { } } { { } } for wa rd en gin eer ing actual development n g e eri n gin rs ee r eve { { }} } { { { } }
    • { { } } } { reverse { { } } engineering
    • { { } } } { reverse { { } } engineering
    • { { } } } { reverse { { } } engineering
    • { { } } } { reverse { { assessment } } engineering
    • software assessment
    • software assessment is a human activity
    • the humane software assessment
    • humans 1. build the system 2. perform the assessment 3. consume the assessment
    • humans 1. build the system 2. perform the assessment 3. consume the assessment
    • the shape of the organization influences the shape of the system Conway, 1968
    • organization system Conway, 1968
    • 5 Gîrba etal 200
    • 8 Junker 200
    • 7 Lungu etal 200
    • organization system Conway, 1968
    • organization system
    • humans 1. build the system 2. perform the assessment 3. consume the assessment
    • humans 1. build the system 2. perform the assessment 3. consume the assessment
    • humans 1. build the system 2. perform the assessment 3. consume the assessment
    • humans are not machines
    • it is humane to identify patterns
    • read all code in one hour?
    • humans identify patterns
    • humans identify patterns
    • humans identify patterns
    • 03 ucasse 20 Lanza, D
    • it is humane to jump to conclusions
    • it’s not lupus
    • it is humane to have preconceived ideas
    • 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(…) {…} } 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(…) {…} } 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(…) {…} } 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(…) {…} } 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(…) {…} } 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(…) {…} } 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(…) {…} } 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(…) {…} } NOM = 7, 6, 4, 3, 2 ? ecide yo u d
    • analysis
    • analysis control
    • analysis control to interpret
    • 03 ucasse 20 Lanza, D
    • requ ires eta tion inte rpr
    • requ ires eta tion inte rpr 03 ucasse 20 Lanza, D
    • analysis control to interpret
    • it is humane to ask questions
    • What Where When Who How
    • Why What Where When Who How
    • it is humane to hypothesize
    • Model
    • Model GUI
    • Model Helpers GUI
    • Murphy etal 1995 Model Helpers GUI
    • 8 n etal 200 Brühlman
    • 8 n etal 200 Brühlman
    • humans are not machines
    • tools should not drive
    • tools should empower not drive
    • { { } } } { reverse { { assessment } } engineering
    • Spine llis 2003
    • Class A method M package 1 Class B method N package 2 ... ... ... source code
    • Class A method M package 1 Class B method N package 2 ... ... ... source code
    • new. Bro wser s bleL ayout aces; de: #clas b := Ta : #namesp dTo Outsi es. umn es; b sen : #class #meth od b col mn: #class s. fro m ide: colu : #method es; dT oOuts ods. ew. n colum : #namespa c b sen : #meth ow ser n r'. wOn from leLayoutBr Browse b sho g: [ Tab ous usin ee l | B := e: 'Glamor b tr : [ :mode aces l B tit #nav; di splay allNamesp ; : B row #details. ] model : #isRoot pes; row: : #nav; t o selec : #childSc wOn B sho g: [ en usin stom: b ]. c hildr #name ]. t: forma lasses; [ B cu #details; n: # c s; u sing: n: showO #nav->#cla ss; showO #namespace B b from: [ from: st s; : t ]. b li : #c lasse using xt ceTex di splay #name ]. B te lay: #sour t: disp etails; forma ethods; #d ; : #m es; using: [ ho wOn: v->#method wOn B s #na b sho : #class f rom: [ from st ds; : ]. b li : # metho re ]. using xt c eText di splay #signatu B te lay: #sour t: disp forma oose.unibe.ch Bunge etal 200 9 m
    • 9 Bunge etal 200
    • what you can, governs what you wish
    • humans 1. build the system 2. perform the assessment 3. consume the assessment
    • humans 1. build the system 2. perform the assessment 3. consume the assessment
    • the humane software assessment Tudor Gîrba www.tudorgirba.com
    • Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/