SlideShare una empresa de Scribd logo
1 de 81
Descargar para leer sin conexión
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/

Más contenido relacionado

Similar a 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 a 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
 

Más de 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
 

Más de 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
 

Último

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Último (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

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/