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

More Related Content

What's hot

Test driven development
Test driven developmentTest driven development
Test driven development
Shalabh Saxena
 
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
Joseph Yoder
 

What's hot (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
 

Viewers also liked

Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
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 Koschke
ICSM 2011
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
ICSM 2011
 

Viewers also liked (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 to Traceability - Structural Conformance Checking with Design Tests: An Evaluation of Usability and Scalability

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
 
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
 
Amee product development workflow
Amee product development workflowAmee product development workflow
Amee product development workflow
Chris Adams
 
Solution Validation & Assessments - A practical Approach
Solution Validation & Assessments - A practical ApproachSolution Validation & Assessments - A practical Approach
Solution Validation & Assessments - A practical Approach
Julen Mohanty
 

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

Recently uploaded

TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Recently uploaded (20)

Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 

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