SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Motivation
               Design Test
             DesignWizard
                Evaluation
               Conclusion




              Design Tests

                  João Brunet

        Dalton Guerrero and Jorge Figueiredo




Federal University of Campina Grande (UFCG), Brazil.


                   09/28/2011




              João Brunet    1/ 26
Motivation
                          Design Test
                        DesignWizard
                           Evaluation
                          Conclusion


Agenda


  1   Motivation

  2   Design Test

  3   DesignWizard

  4   Evaluation
        API Usability

  5   Conclusion



                         João Brunet    2/ 26
Motivation
                               Design Test
                             DesignWizard
                                Evaluation
                               Conclusion


Motivation




      Check code against design rules is an important activity to
      guarantee quality on source code
             Design Review
                 Manual Process
                 Error-prone
                 Does not scale




                              João Brunet    3/ 26
Motivation
                               Design Test
                             DesignWizard
                                Evaluation
                               Conclusion


Motivation




      Check code against design rules is an important activity to
      guarantee quality on source code
             Design Review
                 Manual Process
                 Error-prone
                 Does not scale




                              João Brunet    3/ 26
Motivation
                             Design Test
                           DesignWizard
                              Evaluation
                             Conclusion


The Problem




     Gap between state-of-the-art and the state-of-the-practice
          Approaches from the state-of-the-art require learning different
          languages to express design rules




                            João Brunet    4/ 26
Motivation
                             Design Test
                           DesignWizard
                              Evaluation
                             Conclusion


The Problem




  Lack of structural conformance checking
  Design decisions are violated




                            João Brunet    5/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Design Test




  Design Test
  A test that checks whether an implementation complies with a given
  design rule expressed as an algorithm.




                           João Brunet    6/ 26
Motivation
                           Design Test
                         DesignWizard
                            Evaluation
                           Conclusion


What’s the big deal?




      It is written in the target programming language
      Automated test




                          João Brunet    7/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Example of Design Rule

  Only controller package shall access dao package of a given
  component.




                           João Brunet    8/ 26
Motivation
                      Design Test
                    DesignWizard
                       Evaluation
                      Conclusion


Example of Design Test




                     João Brunet    9/ 26
Motivation
                           Design Test
                         DesignWizard
                            Evaluation
                           Conclusion


Example of Design Test




      Facts about the code (an API)




                          João Brunet    10/ 26
Motivation
                             Design Test
                           DesignWizard
                              Evaluation
                             Conclusion


Example of Design Test




      Facts about the code (an API)
      Assertion routines



                            João Brunet    11/ 26
Motivation
                 Design Test
               DesignWizard
                  Evaluation
                 Conclusion


DesignWizard




                João Brunet    12/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Some methods of DesignWizard’s API




     getAllPackages()
     getAllSubClasses()
     getStaticMethods()
     getImplementedInterfaces()
     ...




                           João Brunet    13/ 26
Motivation
            Design Test
          DesignWizard
             Evaluation
            Conclusion


Process




           João Brunet    14/ 26
Motivation
            Design Test
          DesignWizard
             Evaluation
            Conclusion


Process




           João Brunet    15/ 26
Motivation
                              Design Test
                            DesignWizard    API Usability
                               Evaluation
                              Conclusion


Methodology




  “It is the comparison between what developers expect and what the
  API provides that is interesting when evaluating the usability of an API
  (Steven Clarke)”
       Think Aloud Protocol For APIs to capture expectations, goals,
       difficulties and strategies




                             João Brunet    16/ 26
Motivation
                           Design Test
                         DesignWizard    API Usability
                            Evaluation
                           Conclusion


Experiment



     11 developers
     5 real design tests (selected by the designer of the OurGrid)
     OurGrid
     Eclipse
     API
     Pseudocode vs. Code




                          João Brunet    17/ 26
Motivation
               Design Test
             DesignWizard    API Usability
                Evaluation
               Conclusion


Experiment




              João Brunet    18/ 26
Motivation
                             Design Test
                           DesignWizard    API Usability
                              Evaluation
                             Conclusion


Experiment


  Only one developer did not write one instance of design test.




                            João Brunet    19/ 26
Motivation
                               Design Test
                             DesignWizard    API Usability
                                Evaluation
                               Conclusion


Experiment

  ...but, 10 tests were incorrectly written. The good news is that all
  developers found the right method, but used it incorrectly.




                              João Brunet    20/ 26
Motivation
                             Design Test
                           DesignWizard    API Usability
                              Evaluation
                             Conclusion


Results



  Two weaknesses of API:
      getAllClasses()
           We decided to follow the Java Reflection API pattern

      getDeclaredMethod (String name)
           An appropriated name of the parameter would be signature




                            João Brunet    21/ 26
Motivation
                            Design Test
                          DesignWizard    API Usability
                             Evaluation
                            Conclusion


Results




      Think Aloud Protocol revealed that devolopers had no difficulties
      to find the right method to achieve a given task
      Results suggested changes to DesignWizard API and
      documentation.




                           João Brunet    22/ 26
Motivation
                             Design Test
                           DesignWizard    API Usability
                              Evaluation
                             Conclusion


Threats to validity




       Coding and designing expertise of developers
       More complex design rules may produce different observations
       The API was not fully evaluated




                            João Brunet    23/ 26
Motivation
                            Design Test
                          DesignWizard
                             Evaluation
                            Conclusion


Final Remarks




     Approach to check conformance between code and design rules
     Evaluation regarding its usability
     Design Tests and maintenance
          Executable documentation of design rules
          Enables developers changing functionality keeping in mind
          structural constraints




                           João Brunet    24/ 26
Motivation
                Design Test
              DesignWizard
                 Evaluation
                Conclusion


Thank you




        www.designwizard.org



               João Brunet    25/ 26
Motivation
                         Design Test
                       DesignWizard
                          Evaluation
                         Conclusion


Related Work




     ArchJava
     Reflexion Models
     FindBugs
     ...




                        João Brunet    26/ 26

Más contenido relacionado

La actualidad más candente

software Prototyping
software Prototypingsoftware Prototyping
software PrototypingYahia Haider
 
Test driven development
Test driven developmentTest driven development
Test driven developmentShalabh Saxena
 
Software prototyping
Software prototypingSoftware prototyping
Software prototypingBirju Tank
 
Make it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway PrototypingMake it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway Prototypingjsokohl
 
Informed Rural Passenger Geovation Camp Pecha Kucha
Informed Rural Passenger Geovation Camp Pecha KuchaInformed Rural Passenger Geovation Camp Pecha Kucha
Informed Rural Passenger Geovation Camp Pecha KuchaDavid Corsar
 
Software Life Cylce Model
Software Life Cylce ModelSoftware Life Cylce Model
Software Life Cylce ModelJegadeesh Sam
 
Software testing concepts
Software testing conceptsSoftware testing concepts
Software testing conceptssatyatwrmca
 
Effective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationEffective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationJonathan Arnowitz
 
Analysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectivelyAnalysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectivelyMakoto SAKAI
 
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-BrockPragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-BrockJoseph Yoder
 
Pragmatic notdogmatictdd
Pragmatic notdogmatictddPragmatic notdogmatictdd
Pragmatic notdogmatictddJoseph Yoder
 
Types of Software life cycle
Types of Software life cycleTypes of Software life cycle
Types of Software life cycleSanthia RK
 

La actualidad más candente (20)

Quiz2.2
Quiz2.2Quiz2.2
Quiz2.2
 
Designing and prototyping
Designing and prototypingDesigning and prototyping
Designing and prototyping
 
software Prototyping
software Prototypingsoftware Prototyping
software Prototyping
 
Prototype
PrototypePrototype
Prototype
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Software prototyping
Software prototypingSoftware prototyping
Software prototyping
 
Make it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway PrototypingMake it or Break It: Evolutionary or Throwaway Prototyping
Make it or Break It: Evolutionary or Throwaway Prototyping
 
Informed Rural Passenger Geovation Camp Pecha Kucha
Informed Rural Passenger Geovation Camp Pecha KuchaInformed Rural Passenger Geovation Camp Pecha Kucha
Informed Rural Passenger Geovation Camp Pecha Kucha
 
Software Life Cylce Model
Software Life Cylce ModelSoftware Life Cylce Model
Software Life Cylce Model
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Software testing concepts
Software testing conceptsSoftware testing concepts
Software testing concepts
 
Class2
Class2Class2
Class2
 
Practical Guide to Unit Testing
Practical Guide to Unit TestingPractical Guide to Unit Testing
Practical Guide to Unit Testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Lo fi prototyping
Lo fi prototypingLo fi prototyping
Lo fi prototyping
 
Effective Prototyping Process for Software Creation
Effective Prototyping Process for Software CreationEffective Prototyping Process for Software Creation
Effective Prototyping Process for Software Creation
 
Analysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectivelyAnalysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectively
 
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-BrockPragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
 
Pragmatic notdogmatictdd
Pragmatic notdogmatictddPragmatic notdogmatictdd
Pragmatic notdogmatictdd
 
Types of Software life cycle
Types of Software life cycleTypes of Software life cycle
Types of Software life cycle
 

Destacado

Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteICSM 2011
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...ICSM 2011
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...ICSM 2011
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM 2011
 
Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects ICSM 2011
 
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...ICSM 2011
 
Natural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming ConventionsNatural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming ConventionsICSM 2011
 
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...ICSM 2011
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11ICSM 2011
 
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationICSM 2011
 
ERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskICSM 2011
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...ICSM 2011
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsICSM 2011
 
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...ICSM 2011
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...ICSM 2011
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical DebtICSM 2011
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ICSM 2011
 
Faults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsFaults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsICSM 2011
 
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ICSM 2011
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindleICSM 2011
 

Destacado (20)

Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer Koschke
 
Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects Industry - Testing & Quality Assurance in Data Migration Projects
Industry - Testing & Quality Assurance in Data Migration Projects
 
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
 
Natural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming ConventionsNatural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming Conventions
 
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
 
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
 
ERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to Task
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API Limitations
 
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical Debt
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
 
Faults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsFaults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussions
 
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
 

Similar a Traceability - Structural Conformance Checking with Design Tests: An Evaluation of Usability and Scalability

UX Beyond UCD (Peter Boersma, UXCE12)
UX Beyond UCD (Peter Boersma, UXCE12)UX Beyond UCD (Peter Boersma, UXCE12)
UX Beyond UCD (Peter Boersma, UXCE12)Peter Boersma
 
How product designer work in agile scrum team
How product designer work in agile scrum teamHow product designer work in agile scrum team
How product designer work in agile scrum teamMike Li
 
Study of solution development methodology for small size projects.
Study of solution development methodology for small size projects.Study of solution development methodology for small size projects.
Study of solution development methodology for small size projects.Joon ho Park
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project ManagementMary Macin
 
UX Beyond UCD (Seattle)
UX Beyond UCD (Seattle)UX Beyond UCD (Seattle)
UX Beyond UCD (Seattle)Peter Boersma
 
Power Up - Your Influence on Non-Design Deliverables
Power Up - Your Influence on Non-Design DeliverablesPower Up - Your Influence on Non-Design Deliverables
Power Up - Your Influence on Non-Design DeliverablesPeter Boersma
 
Why every Tester should also aspire to be a Developer on his project!-Sandee...
Why every Tester should  also aspire to be a Developer on his project!-Sandee...Why every Tester should  also aspire to be a Developer on his project!-Sandee...
Why every Tester should also aspire to be a Developer on his project!-Sandee...bhumika2108
 
UX-Lx -a tour of non-design deliverables
UX-Lx -a  tour of non-design deliverablesUX-Lx -a  tour of non-design deliverables
UX-Lx -a tour of non-design deliverablesPeter Boersma
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012Justin Gordon
 
Manual Testing
Manual TestingManual Testing
Manual TestingG.C Reddy
 
Amee product development workflow
Amee product development workflowAmee product development workflow
Amee product development workflowChris Adams
 
1stclass
1stclass1stclass
1stclassnivasvv
 
Design Thinking for Social Innovation RossNetImpact_Oct2011
Design Thinking for Social Innovation RossNetImpact_Oct2011Design Thinking for Social Innovation RossNetImpact_Oct2011
Design Thinking for Social Innovation RossNetImpact_Oct2011Sandhya Pillalamarri
 
Solution Validation & Assessments - A practical Approach
Solution Validation & Assessments - A practical ApproachSolution Validation & Assessments - A practical Approach
Solution Validation & Assessments - A practical ApproachJulen Mohanty
 
Look Around You - Influences on UX (UX Sofia)
Look Around You - Influences on UX (UX Sofia)Look Around You - Influences on UX (UX Sofia)
Look Around You - Influences on UX (UX Sofia)Peter Boersma
 

Similar a Traceability - Structural Conformance Checking with Design Tests: An Evaluation of Usability and Scalability (20)

UX Beyond UCD (Peter Boersma, UXCE12)
UX Beyond UCD (Peter Boersma, UXCE12)UX Beyond UCD (Peter Boersma, UXCE12)
UX Beyond UCD (Peter Boersma, UXCE12)
 
How product designer work in agile scrum team
How product designer work in agile scrum teamHow product designer work in agile scrum team
How product designer work in agile scrum team
 
Study of solution development methodology for small size projects.
Study of solution development methodology for small size projects.Study of solution development methodology for small size projects.
Study of solution development methodology for small size projects.
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
The Agile PMP v2
The Agile PMP v2The Agile PMP v2
The Agile PMP v2
 
UX Beyond UCD (Seattle)
UX Beyond UCD (Seattle)UX Beyond UCD (Seattle)
UX Beyond UCD (Seattle)
 
Power Up - Your Influence on Non-Design Deliverables
Power Up - Your Influence on Non-Design DeliverablesPower Up - Your Influence on Non-Design Deliverables
Power Up - Your Influence on Non-Design Deliverables
 
Why every Tester should also aspire to be a Developer on his project!-Sandee...
Why every Tester should  also aspire to be a Developer on his project!-Sandee...Why every Tester should  also aspire to be a Developer on his project!-Sandee...
Why every Tester should also aspire to be a Developer on his project!-Sandee...
 
UX-Lx -a tour of non-design deliverables
UX-Lx -a  tour of non-design deliverablesUX-Lx -a  tour of non-design deliverables
UX-Lx -a tour of non-design deliverables
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 
Manual Testing
Manual TestingManual Testing
Manual Testing
 
Amee product development workflow
Amee product development workflowAmee product development workflow
Amee product development workflow
 
Testing
TestingTesting
Testing
 
1stclass
1stclass1stclass
1stclass
 
Schedule for Year 4 '10 '11
Schedule for Year 4 '10 '11Schedule for Year 4 '10 '11
Schedule for Year 4 '10 '11
 
ISD MODEL
ISD MODELISD MODEL
ISD MODEL
 
Design Thinking for Social Innovation RossNetImpact_Oct2011
Design Thinking for Social Innovation RossNetImpact_Oct2011Design Thinking for Social Innovation RossNetImpact_Oct2011
Design Thinking for Social Innovation RossNetImpact_Oct2011
 
Solution Validation & Assessments - A practical Approach
Solution Validation & Assessments - A practical ApproachSolution Validation & Assessments - A practical Approach
Solution Validation & Assessments - A practical Approach
 
Look Around You - Influences on UX (UX Sofia)
Look Around You - Influences on UX (UX Sofia)Look Around You - Influences on UX (UX Sofia)
Look Around You - Influences on UX (UX Sofia)
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 

Último

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 

Último (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 

Traceability - Structural Conformance Checking with Design Tests: An Evaluation of Usability and Scalability

  • 1. Motivation Design Test DesignWizard Evaluation Conclusion Design Tests João Brunet Dalton Guerrero and Jorge Figueiredo Federal University of Campina Grande (UFCG), Brazil. 09/28/2011 João Brunet 1/ 26
  • 2. Motivation Design Test DesignWizard Evaluation Conclusion Agenda 1 Motivation 2 Design Test 3 DesignWizard 4 Evaluation API Usability 5 Conclusion João Brunet 2/ 26
  • 3. Motivation Design Test DesignWizard Evaluation Conclusion Motivation Check code against design rules is an important activity to guarantee quality on source code Design Review Manual Process Error-prone Does not scale João Brunet 3/ 26
  • 4. Motivation Design Test DesignWizard Evaluation Conclusion Motivation Check code against design rules is an important activity to guarantee quality on source code Design Review Manual Process Error-prone Does not scale João Brunet 3/ 26
  • 5. Motivation Design Test DesignWizard Evaluation Conclusion The Problem Gap between state-of-the-art and the state-of-the-practice Approaches from the state-of-the-art require learning different languages to express design rules João Brunet 4/ 26
  • 6. Motivation Design Test DesignWizard Evaluation Conclusion The Problem Lack of structural conformance checking Design decisions are violated João Brunet 5/ 26
  • 7. Motivation Design Test DesignWizard Evaluation Conclusion Design Test Design Test A test that checks whether an implementation complies with a given design rule expressed as an algorithm. João Brunet 6/ 26
  • 8. Motivation Design Test DesignWizard Evaluation Conclusion What’s the big deal? It is written in the target programming language Automated test João Brunet 7/ 26
  • 9. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Rule Only controller package shall access dao package of a given component. João Brunet 8/ 26
  • 10. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Test João Brunet 9/ 26
  • 11. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Test Facts about the code (an API) João Brunet 10/ 26
  • 12. Motivation Design Test DesignWizard Evaluation Conclusion Example of Design Test Facts about the code (an API) Assertion routines João Brunet 11/ 26
  • 13. Motivation Design Test DesignWizard Evaluation Conclusion DesignWizard João Brunet 12/ 26
  • 14. Motivation Design Test DesignWizard Evaluation Conclusion Some methods of DesignWizard’s API getAllPackages() getAllSubClasses() getStaticMethods() getImplementedInterfaces() ... João Brunet 13/ 26
  • 15. Motivation Design Test DesignWizard Evaluation Conclusion Process João Brunet 14/ 26
  • 16. Motivation Design Test DesignWizard Evaluation Conclusion Process João Brunet 15/ 26
  • 17. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Methodology “It is the comparison between what developers expect and what the API provides that is interesting when evaluating the usability of an API (Steven Clarke)” Think Aloud Protocol For APIs to capture expectations, goals, difficulties and strategies João Brunet 16/ 26
  • 18. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment 11 developers 5 real design tests (selected by the designer of the OurGrid) OurGrid Eclipse API Pseudocode vs. Code João Brunet 17/ 26
  • 19. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment João Brunet 18/ 26
  • 20. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment Only one developer did not write one instance of design test. João Brunet 19/ 26
  • 21. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Experiment ...but, 10 tests were incorrectly written. The good news is that all developers found the right method, but used it incorrectly. João Brunet 20/ 26
  • 22. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Results Two weaknesses of API: getAllClasses() We decided to follow the Java Reflection API pattern getDeclaredMethod (String name) An appropriated name of the parameter would be signature João Brunet 21/ 26
  • 23. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Results Think Aloud Protocol revealed that devolopers had no difficulties to find the right method to achieve a given task Results suggested changes to DesignWizard API and documentation. João Brunet 22/ 26
  • 24. Motivation Design Test DesignWizard API Usability Evaluation Conclusion Threats to validity Coding and designing expertise of developers More complex design rules may produce different observations The API was not fully evaluated João Brunet 23/ 26
  • 25. Motivation Design Test DesignWizard Evaluation Conclusion Final Remarks Approach to check conformance between code and design rules Evaluation regarding its usability Design Tests and maintenance Executable documentation of design rules Enables developers changing functionality keeping in mind structural constraints João Brunet 24/ 26
  • 26. Motivation Design Test DesignWizard Evaluation Conclusion Thank you www.designwizard.org João Brunet 25/ 26
  • 27. Motivation Design Test DesignWizard Evaluation Conclusion Related Work ArchJava Reflexion Models FindBugs ... João Brunet 26/ 26