SlideShare a Scribd company logo
1 of 81
Download to read offline
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/

More Related Content

Similar to The humane software assessment (Choose Forum 2009)

The Humane Software Assessment
The Humane Software AssessmentThe Humane Software Assessment
The Humane Software AssessmentTudor Girba
 
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)Tudor Girba
 
Humane assessment at ICSM 2010
Humane assessment at ICSM 2010Humane assessment at ICSM 2010
Humane assessment at ICSM 2010Tudor Girba
 
Reverse Engineering 2007-11-27
Reverse Engineering 2007-11-27 Reverse Engineering 2007-11-27
Reverse Engineering 2007-11-27 Tudor Girba
 
History Analysis (EVO 2008)
History Analysis (EVO 2008)History Analysis (EVO 2008)
History Analysis (EVO 2008)Tudor Girba
 
Problem Detection (EVO 2008)
Problem Detection (EVO 2008)Problem Detection (EVO 2008)
Problem Detection (EVO 2008)Tudor Girba
 
Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12Tudor Girba
 
Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25 Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25 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
 
Enhancing agile development through software assessment
Enhancing agile development through software assessmentEnhancing agile development through software assessment
Enhancing agile development through software assessmentTudor Girba
 
Humane assessment with Moose at Benevol 2010
Humane assessment with Moose at Benevol 2010Humane assessment with Moose at Benevol 2010
Humane assessment with Moose at Benevol 2010Tudor Girba
 
05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem DetectionJorge Ressia
 
Assessing software systems
Assessing software systemsAssessing software systems
Assessing software systemsTudor Girba
 

Similar to The humane software assessment (Choose Forum 2009) (15)

The Humane Software Assessment
The Humane Software AssessmentThe Humane Software Assessment
The Humane Software Assessment
 
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
 
Humane assessment at ICSM 2010
Humane assessment at ICSM 2010Humane assessment at ICSM 2010
Humane assessment at ICSM 2010
 
Reverse Engineering 2007-11-27
Reverse Engineering 2007-11-27 Reverse Engineering 2007-11-27
Reverse Engineering 2007-11-27
 
History Analysis (EVO 2008)
History Analysis (EVO 2008)History Analysis (EVO 2008)
History Analysis (EVO 2008)
 
Problem Detection (EVO 2008)
Problem Detection (EVO 2008)Problem Detection (EVO 2008)
Problem Detection (EVO 2008)
 
Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12
 
Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25 Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25
 
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
 
Enhancing agile development through software assessment
Enhancing agile development through software assessmentEnhancing agile development through software assessment
Enhancing agile development through software assessment
 
Humane assessment with Moose at Benevol 2010
Humane assessment with Moose at Benevol 2010Humane assessment with Moose at Benevol 2010
Humane assessment with Moose at Benevol 2010
 
05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem Detection
 
Assessing software systems
Assessing software systemsAssessing software systems
Assessing software systems
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 

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
 
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
 
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
 
Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Tudor Girba
 
Holistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichHolistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichTudor 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
 
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
 
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
 
Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011
 
Holistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichHolistic software assessment at the University of Zurich
Holistic software assessment at the University of Zurich
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

The humane software assessment (Choose Forum 2009)

  • 1. the humane software assessment Tudor Gîrba www.tudorgirba.com
  • 2. the humane software assessment Tudor Gîrba www.tudorgirba.com eng .ch w ww.sw-
  • 4. { { } } { { } } for wa rd en gin eer ing
  • 5. ing eer gin en rd wa for { { { { { { { { } } } actual development } } } } } { }
  • 6. { { } } { { } } for wa rd en gin eer ing actual development n g e eri n gin rs ee r eve { { }} } { { { } }
  • 7. { { } } } { reverse { { } } engineering
  • 8.
  • 9.
  • 10. { { } } } { reverse { { } } engineering
  • 11. { { } } } { reverse { { } } engineering
  • 12. { { } } } { reverse { { assessment } } engineering
  • 14. software assessment is a human activity
  • 16. humans 1. build the system 2. perform the assessment 3. consume the assessment
  • 17. humans 1. build the system 2. perform the assessment 3. consume the assessment
  • 18. the shape of the organization influences the shape of the system Conway, 1968
  • 19. organization system Conway, 1968
  • 23. organization system Conway, 1968
  • 24. organization system
  • 25. humans 1. build the system 2. perform the assessment 3. consume the assessment
  • 26. humans 1. build the system 2. perform the assessment 3. consume the assessment
  • 27. humans 1. build the system 2. perform the assessment 3. consume the assessment
  • 28. humans are not machines
  • 29. it is humane to identify patterns
  • 30. read all code in one hour?
  • 34. 03 ucasse 20 Lanza, D
  • 35. it is humane to jump to conclusions
  • 36.
  • 38. it is humane to have preconceived ideas
  • 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 = ?
  • 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
  • 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
  • 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
  • 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
  • 44. 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
  • 45. 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 ?
  • 46. 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
  • 50. 03 ucasse 20 Lanza, D
  • 51.
  • 52. requ ires eta tion inte rpr
  • 53. requ ires eta tion inte rpr 03 ucasse 20 Lanza, D
  • 55. it is humane to ask questions
  • 58. it is humane to hypothesize
  • 59.
  • 60. Model
  • 63. Murphy etal 1995 Model Helpers GUI
  • 64.
  • 65. 8 n etal 200 Brühlman
  • 66. 8 n etal 200 Brühlman
  • 67. humans are not machines
  • 70. { { } } } { reverse { { assessment } } engineering
  • 72.
  • 73. Class A method M package 1 Class B method N package 2 ... ... ... source code
  • 74. Class A method M package 1 Class B method N package 2 ... ... ... source code
  • 75. 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
  • 77. what you can, governs what you wish
  • 78. humans 1. build the system 2. perform the assessment 3. consume the assessment
  • 79. humans 1. build the system 2. perform the assessment 3. consume the assessment
  • 80. the humane software assessment Tudor Gîrba www.tudorgirba.com
  • 81. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/