SlideShare a Scribd company logo
1 of 29
Download to read offline
Detection of Seed Methods for
Quantification of Feature Confinement



       Andrzej Olszak, Eric Bouwers,
    Bo Nørregaard Jørgensen, Joost Visser
Agenda
I. Features in OO programs
II. Feature-centric quality assessment
III. Our approach
  I. Seed methods
  II. Automated detection of seed methods
IV. Evaluation
V. Evolutionary application
VI. Conclusion

                       —2—
Features
• Feature is a unit of user functionality
  – Bridges the problem and solution domains
  – Unit of evolutionary change
Features in OO programs
          Feature specs     Source code




• Crosscutting inter-class collaborations
• Implicit boundaries
Features in OO programs
          Feature specs     Source code




• Crosscutting inter-class collaborations
• Implicit boundaries
Features in OO programs
          Feature specs           Source code




                     scattering



• Crosscutting inter-class collaborations
• Implicit boundaries
• More scattering = bigger scope of change
Features in OO programs
            Feature specs           Source code




                                         tangling

                       scattering



•   Crosscutting inter-class collaborations
•   Implicit boundaries
•   More scattering = bigger scope of change
•   More tangling = more change propagation
Feature-centric quality
             assessment
• Scaling quantification of feature confinement:
  – Hundreds of large-scale industrial systems
  – Mixed availability of documentation, issue
    tracker tickets, full revision histories…
  – System-level ratings
• Existing feature location approaches are
  insufficient and needlessly fine-grained
Our approach – seed methods
• Features as user-triggered control flows
                        :JButton                              :ActionListener   :Model

                                   Feature Seed Method
                                    actionPerformed()




                                                         Program
                Swing
                                                                                         …




• Seed methods are the starting points of
  feature control graphs
Our approach – automated
     detection of seed methods
• Automated detection of seeds for static slicing
  – Anonymous seed methods
• Rank methods Product of two simple heuristics:
  – Method with popular names
     • Exploits regularity, i.e. polymorphism-based callbacks
  – Methods that yield large static control-flow slices
     • Filters uninteresting shallow methods, e.g. toString, getID
• Take δ=10 best methods*
Automated detection of seed
    methods - example
Automated detection of seed
    methods - example
Automated detection of seed
    methods - example
Automated detection of seed
    methods - example




2/10
Automated detection of seed
    methods - example




2/10
Automated detection of seed
    methods - example




2/10
Automated detection of seed
    methods - example




2/10
Automated detection of seed
         methods - example




    2/10

avg(5/10, 4/10)
Automated detection of seed
         methods - example




                           0.2 * 0.45
    2/10

avg(5/10, 4/10)
A more realistic example:
     JHotDraw 7.6
  wrapViewComponent




       keyPressed


                                     actionPerformed



               getPresentationName
Evaluation
• Hypothesis:
  – Traces produced by our approach cover the same
    regions of source code as a ground truth
• Ground-truth slices based on manually
  constructed set of seed methods:
  – 14 medium and large Java programs
  – Based on used interfacing technologies, e.g.
    Swing, SWT, Android, Spring
Ground truth
Results
• Average results:
             Non-covered                       GT-only
                13%                              2%

         Appr.-only
            6%

                                                   Intersection
                                                       79%


• Interesting cases:
            k9mail                    Checkstyle                  Spring


                                                     invoke
                           process
                             verify
Application: tracking evolution of
        feature confinement
• Checkstyle, 10 years, 27 releases: 1.0 – 5.4
   – Violation detectors are the features
• Scattering and tangling calibrated on 55 systems
Application: tracking evolution of
        feature confinement
• Checkstyle, 10 years, 27 releases: 1.0 – 5.4
   – Violation detectors are the features
• Scattering and tangling calibrated on 55 systems


    Architectural
    restructuring
Application: tracking evolution of
        feature confinement
• Checkstyle, 10 years, 27 releases: 1.0 – 5.4
   – Violation detectors are the features
• Scattering and tangling calibrated on 55 systems


    Architectural
    restructuring



                            No erosion
                            despite 2x
                          growth in LOC
Application: tracking evolution of
        feature confinement
• Checkstyle, 10 years, 27 releases: 1.0 – 5.4
   – Violation detectors are the features
• Scattering and tangling calibrated on 55 systems


    Architectural
    restructuring                              Removal of
                                             J2EE detectors,
                                               refactorings

                            No erosion
                            despite 2x
                          growth in LOC
Conclusion
• Seed methods detection:
  – Detected approximate the ground truth
  – We find solution-specific abstractions
• Interesting perspective on software evolution
• Persisting challenges:
  – Heuristic parameters and some design decisions
    (δ=10, product, ranking)
  – Comparative validation vs. traditional approaches
Q&A

More Related Content

Similar to Detection of Seed Methods for Quantification of Feature Confinement

Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
guestc990b6
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 
Process model rup
Process model rupProcess model rup
Process model rup
Aryan Ajmer
 
Презентация
ПрезентацияПрезентация
Презентация
guest22d71d
 
Software Process Model_Se lect4 btech
Software Process Model_Se lect4 btechSoftware Process Model_Se lect4 btech
Software Process Model_Se lect4 btech
IIITA
 
Cdesc dlp 105_ef_ilt
Cdesc dlp 105_ef_iltCdesc dlp 105_ef_ilt
Cdesc dlp 105_ef_ilt
vncsrabelo
 
Sucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QASucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QA
Sucheta Kale
 

Similar to Detection of Seed Methods for Quantification of Feature Confinement (20)

Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Application Assessment Techniques
Application Assessment TechniquesApplication Assessment Techniques
Application Assessment Techniques
 
Process model rup
Process model rupProcess model rup
Process model rup
 
Презентация
ПрезентацияПрезентация
Презентация
 
Neev QA Offering
Neev QA OfferingNeev QA Offering
Neev QA Offering
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012
 
Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012
 
Software Process Model_Se lect4 btech
Software Process Model_Se lect4 btechSoftware Process Model_Se lect4 btech
Software Process Model_Se lect4 btech
 
Cdesc dlp 105_ef_ilt
Cdesc dlp 105_ef_iltCdesc dlp 105_ef_ilt
Cdesc dlp 105_ef_ilt
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
 
Testing banking apps
Testing banking appsTesting banking apps
Testing banking apps
 
Sucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QASucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QA
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
 
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
 
Track and Trace Solution Details
Track and Trace Solution DetailsTrack and Trace Solution Details
Track and Trace Solution Details
 
Web Application Remediation - OWASP San Antonio March 2007
Web Application Remediation - OWASP San Antonio March 2007Web Application Remediation - OWASP San Antonio March 2007
Web Application Remediation - OWASP San Antonio March 2007
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final6 Steps to Implementing a World Class Testing Ecosystem Final
6 Steps to Implementing a World Class Testing Ecosystem Final
 

Recently uploaded

Ghansoli Escorts Services 09167354423 Ghansoli Call Girls,Call Girls In Ghan...
Ghansoli Escorts Services 09167354423  Ghansoli Call Girls,Call Girls In Ghan...Ghansoli Escorts Services 09167354423  Ghansoli Call Girls,Call Girls In Ghan...
Ghansoli Escorts Services 09167354423 Ghansoli Call Girls,Call Girls In Ghan...
Priya Reddy
 

Recently uploaded (20)

Call girls Service Dombivli - 9332606886 Our call girls are sure to provide y...
Call girls Service Dombivli - 9332606886 Our call girls are sure to provide y...Call girls Service Dombivli - 9332606886 Our call girls are sure to provide y...
Call girls Service Dombivli - 9332606886 Our call girls are sure to provide y...
 
Bhubaneswar🌹Call Girls Kalpana Mesuem ❤Komal 9777949614 💟 Full Trusted CALL ...
Bhubaneswar🌹Call Girls Kalpana Mesuem  ❤Komal 9777949614 💟 Full Trusted CALL ...Bhubaneswar🌹Call Girls Kalpana Mesuem  ❤Komal 9777949614 💟 Full Trusted CALL ...
Bhubaneswar🌹Call Girls Kalpana Mesuem ❤Komal 9777949614 💟 Full Trusted CALL ...
 
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
 
Ghansoli Escorts Services 09167354423 Ghansoli Call Girls,Call Girls In Ghan...
Ghansoli Escorts Services 09167354423  Ghansoli Call Girls,Call Girls In Ghan...Ghansoli Escorts Services 09167354423  Ghansoli Call Girls,Call Girls In Ghan...
Ghansoli Escorts Services 09167354423 Ghansoli Call Girls,Call Girls In Ghan...
 
Dahod Call Girl 📞 8617370543 Low Price Genuine Service
Dahod Call Girl 📞 8617370543 Low Price Genuine ServiceDahod Call Girl 📞 8617370543 Low Price Genuine Service
Dahod Call Girl 📞 8617370543 Low Price Genuine Service
 
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Gorakhpur Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
 
Book ☎️ 8617370543 Call Girls in Bharuch and escort services 24x7
Book ☎️ 8617370543 Call Girls in Bharuch and escort services 24x7Book ☎️ 8617370543 Call Girls in Bharuch and escort services 24x7
Book ☎️ 8617370543 Call Girls in Bharuch and escort services 24x7
 
Call Girls In Gandhinagar 📞 8617370543 At Low Cost Cash Payment Booking
Call Girls In Gandhinagar 📞 8617370543  At Low Cost Cash Payment BookingCall Girls In Gandhinagar 📞 8617370543  At Low Cost Cash Payment Booking
Call Girls In Gandhinagar 📞 8617370543 At Low Cost Cash Payment Booking
 
Call Girls Bijnor Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Bijnor  Just Call 8617370543 Top Class Call Girl Service AvailableCall Girls Bijnor  Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Bijnor Just Call 8617370543 Top Class Call Girl Service Available
 
Deira call girls 0507330913 Call girls in Deira
Deira call girls 0507330913  Call girls in DeiraDeira call girls 0507330913  Call girls in Deira
Deira call girls 0507330913 Call girls in Deira
 
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
 
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
Bhubaneswar🌹Patia ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswar ESCORT S...
 
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls AgencyHire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
 
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls AgencyHire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
 
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
 
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
 
Satara call girl 8617370543♥️ call girls in satara escort service
Satara call girl 8617370543♥️ call girls in satara escort serviceSatara call girl 8617370543♥️ call girls in satara escort service
Satara call girl 8617370543♥️ call girls in satara escort service
 
Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call GirlsGenuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
 
Deira Call girls 0507330913 Call girls in Deira
Deira Call girls 0507330913 Call girls in DeiraDeira Call girls 0507330913 Call girls in Deira
Deira Call girls 0507330913 Call girls in Deira
 
Top IPTV Subscription Service to Stream Your Favorite Shows in 2024.pdf
Top IPTV Subscription Service to Stream Your Favorite Shows in 2024.pdfTop IPTV Subscription Service to Stream Your Favorite Shows in 2024.pdf
Top IPTV Subscription Service to Stream Your Favorite Shows in 2024.pdf
 

Detection of Seed Methods for Quantification of Feature Confinement

  • 1. Detection of Seed Methods for Quantification of Feature Confinement Andrzej Olszak, Eric Bouwers, Bo Nørregaard Jørgensen, Joost Visser
  • 2. Agenda I. Features in OO programs II. Feature-centric quality assessment III. Our approach I. Seed methods II. Automated detection of seed methods IV. Evaluation V. Evolutionary application VI. Conclusion —2—
  • 3. Features • Feature is a unit of user functionality – Bridges the problem and solution domains – Unit of evolutionary change
  • 4. Features in OO programs Feature specs Source code • Crosscutting inter-class collaborations • Implicit boundaries
  • 5. Features in OO programs Feature specs Source code • Crosscutting inter-class collaborations • Implicit boundaries
  • 6. Features in OO programs Feature specs Source code scattering • Crosscutting inter-class collaborations • Implicit boundaries • More scattering = bigger scope of change
  • 7. Features in OO programs Feature specs Source code tangling scattering • Crosscutting inter-class collaborations • Implicit boundaries • More scattering = bigger scope of change • More tangling = more change propagation
  • 8. Feature-centric quality assessment • Scaling quantification of feature confinement: – Hundreds of large-scale industrial systems – Mixed availability of documentation, issue tracker tickets, full revision histories… – System-level ratings • Existing feature location approaches are insufficient and needlessly fine-grained
  • 9. Our approach – seed methods • Features as user-triggered control flows :JButton :ActionListener :Model Feature Seed Method actionPerformed() Program Swing … • Seed methods are the starting points of feature control graphs
  • 10. Our approach – automated detection of seed methods • Automated detection of seeds for static slicing – Anonymous seed methods • Rank methods Product of two simple heuristics: – Method with popular names • Exploits regularity, i.e. polymorphism-based callbacks – Methods that yield large static control-flow slices • Filters uninteresting shallow methods, e.g. toString, getID • Take δ=10 best methods*
  • 11. Automated detection of seed methods - example
  • 12. Automated detection of seed methods - example
  • 13. Automated detection of seed methods - example
  • 14. Automated detection of seed methods - example 2/10
  • 15. Automated detection of seed methods - example 2/10
  • 16. Automated detection of seed methods - example 2/10
  • 17. Automated detection of seed methods - example 2/10
  • 18. Automated detection of seed methods - example 2/10 avg(5/10, 4/10)
  • 19. Automated detection of seed methods - example 0.2 * 0.45 2/10 avg(5/10, 4/10)
  • 20. A more realistic example: JHotDraw 7.6 wrapViewComponent keyPressed actionPerformed getPresentationName
  • 21. Evaluation • Hypothesis: – Traces produced by our approach cover the same regions of source code as a ground truth • Ground-truth slices based on manually constructed set of seed methods: – 14 medium and large Java programs – Based on used interfacing technologies, e.g. Swing, SWT, Android, Spring
  • 23. Results • Average results: Non-covered GT-only 13% 2% Appr.-only 6% Intersection 79% • Interesting cases: k9mail Checkstyle Spring invoke process verify
  • 24. Application: tracking evolution of feature confinement • Checkstyle, 10 years, 27 releases: 1.0 – 5.4 – Violation detectors are the features • Scattering and tangling calibrated on 55 systems
  • 25. Application: tracking evolution of feature confinement • Checkstyle, 10 years, 27 releases: 1.0 – 5.4 – Violation detectors are the features • Scattering and tangling calibrated on 55 systems Architectural restructuring
  • 26. Application: tracking evolution of feature confinement • Checkstyle, 10 years, 27 releases: 1.0 – 5.4 – Violation detectors are the features • Scattering and tangling calibrated on 55 systems Architectural restructuring No erosion despite 2x growth in LOC
  • 27. Application: tracking evolution of feature confinement • Checkstyle, 10 years, 27 releases: 1.0 – 5.4 – Violation detectors are the features • Scattering and tangling calibrated on 55 systems Architectural restructuring Removal of J2EE detectors, refactorings No erosion despite 2x growth in LOC
  • 28. Conclusion • Seed methods detection: – Detected approximate the ground truth – We find solution-specific abstractions • Interesting perspective on software evolution • Persisting challenges: – Heuristic parameters and some design decisions (δ=10, product, ranking) – Comparative validation vs. traditional approaches
  • 29. Q&A