The humane software assessment (Choose Forum 2009)

1,376 views
1,303 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,376
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

The humane software assessment (Choose Forum 2009)

  1. 1. the humane software assessment Tudor Gîrba www.tudorgirba.com
  2. 2. the humane software assessment Tudor Gîrba www.tudorgirba.com eng .ch w ww.sw-
  3. 3. software assessment
  4. 4. { { } } { { } } for wa rd en gin eer ing
  5. 5. ing eer gin en rd wa for { { { { { { { { } } } actual development } } } } } { }
  6. 6. { { } } { { } } for wa rd en gin eer ing actual development n g e eri n gin rs ee r eve { { }} } { { { } }
  7. 7. { { } } } { reverse { { } } engineering
  8. 8. { { } } } { reverse { { } } engineering
  9. 9. { { } } } { reverse { { } } engineering
  10. 10. { { } } } { reverse { { assessment } } engineering
  11. 11. software assessment
  12. 12. software assessment is a human activity
  13. 13. the humane software assessment
  14. 14. humans 1. build the system 2. perform the assessment 3. consume the assessment
  15. 15. humans 1. build the system 2. perform the assessment 3. consume the assessment
  16. 16. the shape of the organization influences the shape of the system Conway, 1968
  17. 17. organization system Conway, 1968
  18. 18. 5 Gîrba etal 200
  19. 19. 8 Junker 200
  20. 20. 7 Lungu etal 200
  21. 21. organization system Conway, 1968
  22. 22. organization system
  23. 23. humans 1. build the system 2. perform the assessment 3. consume the assessment
  24. 24. humans 1. build the system 2. perform the assessment 3. consume the assessment
  25. 25. humans 1. build the system 2. perform the assessment 3. consume the assessment
  26. 26. humans are not machines
  27. 27. it is humane to identify patterns
  28. 28. read all code in one hour?
  29. 29. humans identify patterns
  30. 30. humans identify patterns
  31. 31. humans identify patterns
  32. 32. 03 ucasse 20 Lanza, D
  33. 33. it is humane to jump to conclusions
  34. 34. it’s not lupus
  35. 35. it is humane to have preconceived ideas
  36. 36. 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 = ?
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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 ?
  43. 43. 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
  44. 44. analysis
  45. 45. analysis control
  46. 46. analysis control to interpret
  47. 47. 03 ucasse 20 Lanza, D
  48. 48. requ ires eta tion inte rpr
  49. 49. requ ires eta tion inte rpr 03 ucasse 20 Lanza, D
  50. 50. analysis control to interpret
  51. 51. it is humane to ask questions
  52. 52. What Where When Who How
  53. 53. Why What Where When Who How
  54. 54. it is humane to hypothesize
  55. 55. Model
  56. 56. Model GUI
  57. 57. Model Helpers GUI
  58. 58. Murphy etal 1995 Model Helpers GUI
  59. 59. 8 n etal 200 Brühlman
  60. 60. 8 n etal 200 Brühlman
  61. 61. humans are not machines
  62. 62. tools should not drive
  63. 63. tools should empower not drive
  64. 64. { { } } } { reverse { { assessment } } engineering
  65. 65. Spine llis 2003
  66. 66. Class A method M package 1 Class B method N package 2 ... ... ... source code
  67. 67. Class A method M package 1 Class B method N package 2 ... ... ... source code
  68. 68. 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
  69. 69. 9 Bunge etal 200
  70. 70. what you can, governs what you wish
  71. 71. humans 1. build the system 2. perform the assessment 3. consume the assessment
  72. 72. humans 1. build the system 2. perform the assessment 3. consume the assessment
  73. 73. the humane software assessment Tudor Gîrba www.tudorgirba.com
  74. 74. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/

×