SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
What your IDE
could do
once you understand
your code
Questions & Directions

Arie van Deursen
Delft University of Technology

                                 1
Acknowledgments
• WSE & VISSOFT Organizers

• Members of the TU Delft Software
  Engineering Research Group, including
   – Ali Mesbah, Bas Cornelissen, Andy Zaidman, Martin
     Pinzger, Rini van Solingen, Cor-Paul Bezemer, …

• Additional collaborators, including
   – Leon Moonen, Rainer Koschke, Danny Holten, Jack van
     Wijk, Bart van Rompaey, …

• flickr photos from faisco, elizabethsalib, andywon
                                                           2
Today’s Structure
• Part I
   – What’s the problem? Documenting understanding
• Part II
   – Solution direction: Web 2.0?
• Part III
   – Evaluation: Begin with the end in mind
• Part IV
   – Conclusions: Towards a Knowledgeable IDE

                                                     3
Andreas Zeller: The Future of Programming Environments:
Integration, Synergy, and Assistance. FOSE 2007: 316-325
                                                           4
5
6
M. Marin, A. van Deursen, and L. Moonen.
          Identifying Crosscutting Concerns using Fan-in Analysis.
ACM Transactions on Software Engineering and Methodology 17(1):1-37, 2007   7
Program Understanding
• “40% of developing time is spent on program
  understanding”
• Probably more accurately:
  – 1% on understanding
  – 39% is spent on misunderstanding


• Should we tell the IDE the difference?
  – What could the IDE do with that knowledge?

                                                 8
Part II
The Great Move to the Web




                            9
Wave.google.com




                  10
Collaborative Spreadsheets




                             11
Web-Based Accounting Software




                                12
13
“Why I’m Done Making Desktop Applications”

•   Better conversion
•   Easier to support
•   The end of piracy
•   Interaction analytics
•   Customization per user
•   Short innovation cycles

                             Patrick Mckenzie
     http://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-apps/
                                                                        14
[ Ajax: The Technology Behind It ]




A. Mesbah and A. van Deursen. A Component- and Push-based Architectural Style for
    Ajax Applications. Journal of Systems and Software 81(12):2194-2209, 2008.

   A. Mesbah and A. van Deursen. Invariant-Based Automatic Testing of Ajax User
   Interfaces. Proc. 31st International Conference on Software Engineering (ICSE), 2009
                                                                                     15
Google Chrome Frame
• Applications such as Google Waves require
  ultrafast Javascript, and HTML5 (canvas)
  – Not supported by IE6, IE7, IE8
• Released this Tuesday: Google Chrome Frame
  – Plugin for Internet Explorer
  – V8 Javascript Engine
  – HTML5 support
  – Essentially runs Chrome within IE

                                               16
Web 2.0
• Technology paradigm:
  – Ajax: Asynchronous JavaScript and XML
• Usage paradigm
  – Architecture of participation
• An attitude:
  – Processes and tools are socially open
  – Content can be used in several different contexts
• Self-organizing means for informal
  communication
                                                        17
Twitter




          18
Micro-blogging Using Twitter
•   Short updates on what you’re doing
•   Visible to all
•   Follow friends, or be followed
•   ReTweet tweets you like
•   Respond to tweets you like
•   “Trending” topics

• Follow what’s hot in your area of interest
• Follow what people are doing
                                               19
20
21
22
23
Stackoverflow Mechanisms
•   Voting on questions & answers
•   Spotting similar questions
•   Adding comments
•   Starring questions
•   Picking the right answer
•   Earning reputation points
•   Earning badges

                                    24
25
Will the IDE go on line too?
• Mozilla Bespin:
  – HTML5 Canvas-based editing
• Heroku:
  – Ruby-on-Rails deployment (+ IDE?)
• Eclipse E4 project plans include:
  – "Eclipse in browser"; DOM-based access to
    workbench; REST-full IDE services
• WWWorkspace
  – Browser-access to Eclipse OSGi services

                                                26
27
28
29
Mixing all of these ….




                         30
… would it then be possible to…:
• Tell the IDE simply what you’re doing
• Follow the activities of your co-developers
• Hit the “YES” button to tell the IDE that you
  understand
• Learn from the IDE which paths others took to
  understand their code
• Appreciate the value of comments by seeing
  the author’s reputation
                                              31
… or…
• Compose your IDE plugins the way you select
  widgets in, e.g., pageflakes?
• Share … execution traces?
• Share … breakpoints?
• Do … joint editing?
• Share … configurations and workspaces?
• Identify (local) “trending topics” in current
  development?
                                                  32
With that in place…
• The IDE just … knows
  – It learns from interactions,
  – and encourages the developers to add information at
    any time
• At moments of enlightenment
  – The developer knows
  – and is forced by the IDE to share his/her
    understanding
  – which is merged with stored interaction information

                                                          33
Many Starting Points Exist …
•   IBM Jazz, MS Team Foundation Server, Bespin
•   DeLine: Del.icio.us development tools (CHASE’08)
•   Begel et al: Codebook (ICSE NIER’09)
•   Treude & Storey: Tagging (ICSE’09)
•   Shihab et al: IRC channels (MSR’09)
•   Fritz/Murphy: Interaction mining (ESEC/FSE’07)
•   .... and a lot more!

• …. But still much work remains to be done!

                                                   34
Part III
        Begin With the End in Mind
• J. Ziman, 1978: Reliable Knowledge:
  An Exploration of the Grounds for Belief in Science
• Consensual knowledge:
   – The ultimate goal of science is a
     consensus of rational opinion
• Consensual statement:
   – Fully tested and accepted by overwhelming
     majority of well-informed scientists
• Consensible statement:
   – Has the potential for eventually
     contributing to a consensus
                                                    35
Comprehension & Dynamic Analysis:
           A Systematic Survey
   • A person understands a program:
       – Ability to explain the program, its structure, its behavior,
         its effects on its operation context, and its relationships to
         its application domain
       – in terms that are qualitatively different from the tokens
         used to construct the source code of the program
   • Dynamic analysis:
       – Properties of running system


B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, and Rainer Koschke
A Systematic Survey of Program Comprehension through Dynamic Analysis.
              IEEE Transactions on Software Engineering, 2009               36
Survey Steps




               37
Analyzed 172 Papers
33

     26

          20 19                                            21



                  11
                       9   9
                               5   5   5   4   3   3   3




                                                                38
39
Attribute Occurrences
            90


                                                 79
                                                                                                                                     72
                 68
                                                                            61
                                                                                 59 58
            60
frequency




                      48

                                                                                         39
                                                                                              36
                                                                                                                                          32
                           30                         30                                           30                                          30
            30                                                                                          27 26
                                                                                                              25
                                                                                                                   23
                                19 19
                                        13                 12                                                                                       12 11 11
                                                                                                                        11
                                             9
                                                                7   7                                                        6                                 6
                                                                        5                                                        5

             0




                                                                                                                                                         40
Example: Evaluating
ExtraVis Trace Visualization




                               41
Hierarchical Edge Bundles




Danny Holten: Hierarchical Edge Bundles: Visualization of Adjacency Relations in
   Hierarchical Data. IEEE Trans. Vis. Comput. Graph. 12(5): 741-748 (2006)
Evaluation Through Case Studies
   • Assessed how/why ExtraVis could be helpful in
     three dynamic analysis use cases:
       – Trace exploration, feature location,
         phase identification
   • Selected three subject systems:
       – 1 industrial, 2 open source
   • Exploration, theory building

B. Cornelissen, A. Zaidman, D. Holten, L. Moonen, A. van Deursen, and J. van Wijk.
 Execution Trace Analysis through Massive Sequence and Circular Bundle Views.
             Journal of Systems and Software 81(12):2252-2268, 2008                  43
Featue Location
Goal:
Establishing relations
between feature            }   3x

invocations and the
corresponding source
code elements.

           Execution scenario (150,000 events)
             – Create new drawing
             – Draw five types of figures
                                            }   3x


                                                     44
Feature Selection




       
Feature Analysis




                   46
Feature Analysis




figures.EllipseFigure




                        47
Analytical Generalization
• Helpful to understand user-triggerable
  functions.
   – Massive sequence chart helps to
     reveal recurring patterns
   – Circular bundle view helps to understand more
     detailed interactions
• Effective use of “screen real estate”
• Threats to (external) validity:
   – size of trace, presence of treads, role of
     identifiers, triggering the features, applied filtering in
     some cases.

                                                                  48
ExtraVis Controlled Experiment
• Baseline: Eclipse
• Partition 34 subjects (academic + industry)
  into two groups:
   – Control group: Eclipse
   – Experimental group: Eclipse + ExtraVis
• Perform eight comprehension tasks on Checkstyle
  source code
• Measure time spent, and
  correctness of answers
          B. Cornelissen, A. Zaidman, B. van Rompaey, and A. van Deursen
     Trace Visualization for Program Comprehension: A Controlled Experiment.
  In Proc. 17th International Conference on Program Comprehension (ICPC), 2009   49
M. J. Pacione, M. Roper, and M. Wood,
               “Comparative evaluation of dynamic visualisation tools,”
In Proc. Working Conference on Reverse Engineering (WCRE), pp. 80–89, IEEE C.S., 2003.
                                                                                    50
Task design (cont’d)
• Example: Activity A1
   – “Investigating the functionality of (part of) the system”
   – is covered by
       • Task 1: globally understanding the main stages in a typical scenario
       • Task 4.1: providing a detailed description of the violation handling process
       • Task 4.2: determining whether check X reports violations

• Example: Activity A4
   – “Investigating dependencies between artifacts”
   – is covered by
       •   Task 2.1: identifying three classes with high fanin and low fanout
       •   Task 2.2: identifying a class in package X with a strong coupling to package Y
       •   Task 3.2: listing the identifiers of all interactions between classes X and Y
       •   Task 3.3: listing the identifiers of additional interactions in case of class Z
Correctness Results




Mean score Eclipse           17.88
Mean score Ecl + ExtraVis    12.47
Score Improvement           43.38%
p value                     < 0.001   52
Timing Results




Mean time Eclipse           77.00
Mean time Ecl + ExtraVis    59.94
Time Saved                 22.16%
p-value                     0.002   53
Findings
• 22% faster, 43% better
  – For the given comprehension tasks
• ExtraVis offers
  – global structural insight;
  – global and detailed behavioral insight;
• ExtraVis works best with a goal-oriented
  strategy


                                              54
Threats to Validity
• Construct validity:
   – Can we distinguish use of traces in general from use of
     ExtraVis in particular?
• Internal validity:
   –   Is background knowledge evenly distributed across groups?
   –   Were subjects motivated?
   –   Are the tasks biased? Are they too difficult? Too easy?
   –   Was the time set realistic?
   –   Did we grade the tasks correctly?
• External validity:
   – Are the tasks, checkstyle, and the subjects representative?
                                                               55
How do we Evaluate our Results?
• Through realistic, effort-   • Through controlled
  taking, case studies           experiments
• Permitting analytical        • Smaller tasks by more
  generalization                 people
                               • Statistical generalization

        • All done with the most critical attitude
     • Reflected in at least the “threats to validity”


                                                          56
Part IV
            Five Years from now…
 Collaboration as in Web    We want our research to
  2.0 and the move of          – Play a leading role in
  applications to the web        these directions
  will be universal            – Leverage these trends in
                                 our methods & tools


What do we need in order to conduct the most critical
and insightful evaluations?
   What do we have to set in place right now?

                                                        57
Empirical Studies
including Collaboration

• Visualizations are means for collaboration
  – Future tools will include collaboration support
• How can we evaluate this?
  – Case studies will be more complicated
• Community effort
  – Volunteer in each other’s experiments
  – Grant access to each other’s students

                                                      58
Access to Shared Web Applications
• We need compelling shared case studies
  – Web app sources harder to find on source forge

• Which maintenance tasks do we want to speed
  up and improve?
  – What role does collaboration play in there?


• To be able to compare results the community
  needs to work on common cases and tasks

                                                     59
Shared Analysis Infrastructures
• Analyzing web applications is
  highly challenging
  – Multitude of combined technologies
  – Static analysis insufficient
  – Ajax adds significant complexity
• Community effort to build web analysis tools
  – Our open source Crawljax infrastructure can be a
    starting point

                                                       60
Picasso Visualizations

• ExtraVis is heavy weight visualization artillery
• What about light-weight visualizations?
• Can the browser force us to simplicity? (gmail)
• Can we exploit HTML5 and rich
  Javascript visualization libraries?
• How does collaboration fit in?

                                                 61
Rethinking the IDE
       • What is the essential IDE that
         is so simple that it can run in a
         browser?

       • Shouldn’t collaboration be the
         central feature of an IDE?

       • How can the IDE encourage
         developers to share their
         thoughts?

       • How can the IDE distinguish
         right from wrong?
                                         62

Contenu connexe

Similaire à What your IDE could do once you understand your code

Social Media in the Enterprise: Trends, Opportunities, and Lessons Learned
Social Media in the Enterprise: Trends, Opportunities, and Lessons LearnedSocial Media in the Enterprise: Trends, Opportunities, and Lessons Learned
Social Media in the Enterprise: Trends, Opportunities, and Lessons LearnedDaniel Leslie
 
Software Architecture Erosion and Modernization
Software Architecture Erosion and ModernizationSoftware Architecture Erosion and Modernization
Software Architecture Erosion and Modernizationbmerkle
 
Software Evolution Visualization
Software Evolution VisualizationSoftware Evolution Visualization
Software Evolution VisualizationManoel Mendonca
 
CSS3: Simply Responsive
CSS3: Simply ResponsiveCSS3: Simply Responsive
CSS3: Simply ResponsiveDenise Jacobs
 
Interactive Paper 2014
Interactive Paper 2014Interactive Paper 2014
Interactive Paper 2014姿儀 吳
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Marcel Bruch
 
Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?
Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?
Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?Digipolis Antwerpen
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисами
.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисами.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисами
.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисамиNETFest
 
Lecture 1 computer vision introduction
Lecture 1 computer vision introductionLecture 1 computer vision introduction
Lecture 1 computer vision introductioncairo university
 
Large-Scale Malicious Domain Detection with Spark AI
Large-Scale Malicious Domain Detection with Spark AILarge-Scale Malicious Domain Detection with Spark AI
Large-Scale Malicious Domain Detection with Spark AIDatabricks
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2Martin de Keijzer
 
Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010
Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010
Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010Atlassian
 
Communication &amp; Coordination on a Construction Project Through Building I...
Communication &amp; Coordination on a Construction Project Through Building I...Communication &amp; Coordination on a Construction Project Through Building I...
Communication &amp; Coordination on a Construction Project Through Building I...muhammad87
 
History of Virtual Worlds and current applications
History of Virtual Worlds and current applicationsHistory of Virtual Worlds and current applications
History of Virtual Worlds and current applicationsMattia Crespi
 
Scalable Distributed Real-Time Clustering for Big Data Streams
Scalable Distributed Real-Time Clustering for Big Data StreamsScalable Distributed Real-Time Clustering for Big Data Streams
Scalable Distributed Real-Time Clustering for Big Data StreamsAntonio Severien
 
onur-comparch-fall2018-lecture1-intro-afterlecture.pptx
onur-comparch-fall2018-lecture1-intro-afterlecture.pptxonur-comparch-fall2018-lecture1-intro-afterlecture.pptx
onur-comparch-fall2018-lecture1-intro-afterlecture.pptxsivasubramanianManic2
 

Similaire à What your IDE could do once you understand your code (20)

Social Media in the Enterprise: Trends, Opportunities, and Lessons Learned
Social Media in the Enterprise: Trends, Opportunities, and Lessons LearnedSocial Media in the Enterprise: Trends, Opportunities, and Lessons Learned
Social Media in the Enterprise: Trends, Opportunities, and Lessons Learned
 
Solid Works
Solid WorksSolid Works
Solid Works
 
Software Architecture Erosion and Modernization
Software Architecture Erosion and ModernizationSoftware Architecture Erosion and Modernization
Software Architecture Erosion and Modernization
 
Asp net 3_5_social_networking
Asp net 3_5_social_networkingAsp net 3_5_social_networking
Asp net 3_5_social_networking
 
Software Evolution Visualization
Software Evolution VisualizationSoftware Evolution Visualization
Software Evolution Visualization
 
CSS3: Simply Responsive
CSS3: Simply ResponsiveCSS3: Simply Responsive
CSS3: Simply Responsive
 
Interactive Paper 2014
Interactive Paper 2014Interactive Paper 2014
Interactive Paper 2014
 
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
 
Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?
Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?
Meetup 21/9/2017 - Image Recogonition: onmisbaar voor een slimme stad?
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисами
.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисами.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисами
.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисами
 
Lecture 1 computer vision introduction
Lecture 1 computer vision introductionLecture 1 computer vision introduction
Lecture 1 computer vision introduction
 
Large-Scale Malicious Domain Detection with Spark AI
Large-Scale Malicious Domain Detection with Spark AILarge-Scale Malicious Domain Detection with Spark AI
Large-Scale Malicious Domain Detection with Spark AI
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2
 
Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010
Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010
Go, Go, Gadgets: Building Gadgets for Atlassian Products - Atlassian Summit 2010
 
Ds for finance day 4
Ds for finance day 4Ds for finance day 4
Ds for finance day 4
 
Communication &amp; Coordination on a Construction Project Through Building I...
Communication &amp; Coordination on a Construction Project Through Building I...Communication &amp; Coordination on a Construction Project Through Building I...
Communication &amp; Coordination on a Construction Project Through Building I...
 
History of Virtual Worlds and current applications
History of Virtual Worlds and current applicationsHistory of Virtual Worlds and current applications
History of Virtual Worlds and current applications
 
Scalable Distributed Real-Time Clustering for Big Data Streams
Scalable Distributed Real-Time Clustering for Big Data StreamsScalable Distributed Real-Time Clustering for Big Data Streams
Scalable Distributed Real-Time Clustering for Big Data Streams
 
onur-comparch-fall2018-lecture1-intro-afterlecture.pptx
onur-comparch-fall2018-lecture1-intro-afterlecture.pptxonur-comparch-fall2018-lecture1-intro-afterlecture.pptx
onur-comparch-fall2018-lecture1-intro-afterlecture.pptx
 

Dernier

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Dernier (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

What your IDE could do once you understand your code

  • 1. What your IDE could do once you understand your code Questions & Directions Arie van Deursen Delft University of Technology 1
  • 2. Acknowledgments • WSE & VISSOFT Organizers • Members of the TU Delft Software Engineering Research Group, including – Ali Mesbah, Bas Cornelissen, Andy Zaidman, Martin Pinzger, Rini van Solingen, Cor-Paul Bezemer, … • Additional collaborators, including – Leon Moonen, Rainer Koschke, Danny Holten, Jack van Wijk, Bart van Rompaey, … • flickr photos from faisco, elizabethsalib, andywon 2
  • 3. Today’s Structure • Part I – What’s the problem? Documenting understanding • Part II – Solution direction: Web 2.0? • Part III – Evaluation: Begin with the end in mind • Part IV – Conclusions: Towards a Knowledgeable IDE 3
  • 4. Andreas Zeller: The Future of Programming Environments: Integration, Synergy, and Assistance. FOSE 2007: 316-325 4
  • 5. 5
  • 6. 6
  • 7. M. Marin, A. van Deursen, and L. Moonen. Identifying Crosscutting Concerns using Fan-in Analysis. ACM Transactions on Software Engineering and Methodology 17(1):1-37, 2007 7
  • 8. Program Understanding • “40% of developing time is spent on program understanding” • Probably more accurately: – 1% on understanding – 39% is spent on misunderstanding • Should we tell the IDE the difference? – What could the IDE do with that knowledge? 8
  • 9. Part II The Great Move to the Web 9
  • 13. 13
  • 14. “Why I’m Done Making Desktop Applications” • Better conversion • Easier to support • The end of piracy • Interaction analytics • Customization per user • Short innovation cycles Patrick Mckenzie http://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-apps/ 14
  • 15. [ Ajax: The Technology Behind It ] A. Mesbah and A. van Deursen. A Component- and Push-based Architectural Style for Ajax Applications. Journal of Systems and Software 81(12):2194-2209, 2008. A. Mesbah and A. van Deursen. Invariant-Based Automatic Testing of Ajax User Interfaces. Proc. 31st International Conference on Software Engineering (ICSE), 2009 15
  • 16. Google Chrome Frame • Applications such as Google Waves require ultrafast Javascript, and HTML5 (canvas) – Not supported by IE6, IE7, IE8 • Released this Tuesday: Google Chrome Frame – Plugin for Internet Explorer – V8 Javascript Engine – HTML5 support – Essentially runs Chrome within IE 16
  • 17. Web 2.0 • Technology paradigm: – Ajax: Asynchronous JavaScript and XML • Usage paradigm – Architecture of participation • An attitude: – Processes and tools are socially open – Content can be used in several different contexts • Self-organizing means for informal communication 17
  • 18. Twitter 18
  • 19. Micro-blogging Using Twitter • Short updates on what you’re doing • Visible to all • Follow friends, or be followed • ReTweet tweets you like • Respond to tweets you like • “Trending” topics • Follow what’s hot in your area of interest • Follow what people are doing 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 23. 23
  • 24. Stackoverflow Mechanisms • Voting on questions & answers • Spotting similar questions • Adding comments • Starring questions • Picking the right answer • Earning reputation points • Earning badges 24
  • 25. 25
  • 26. Will the IDE go on line too? • Mozilla Bespin: – HTML5 Canvas-based editing • Heroku: – Ruby-on-Rails deployment (+ IDE?) • Eclipse E4 project plans include: – "Eclipse in browser"; DOM-based access to workbench; REST-full IDE services • WWWorkspace – Browser-access to Eclipse OSGi services 26
  • 27. 27
  • 28. 28
  • 29. 29
  • 30. Mixing all of these …. 30
  • 31. … would it then be possible to…: • Tell the IDE simply what you’re doing • Follow the activities of your co-developers • Hit the “YES” button to tell the IDE that you understand • Learn from the IDE which paths others took to understand their code • Appreciate the value of comments by seeing the author’s reputation 31
  • 32. … or… • Compose your IDE plugins the way you select widgets in, e.g., pageflakes? • Share … execution traces? • Share … breakpoints? • Do … joint editing? • Share … configurations and workspaces? • Identify (local) “trending topics” in current development? 32
  • 33. With that in place… • The IDE just … knows – It learns from interactions, – and encourages the developers to add information at any time • At moments of enlightenment – The developer knows – and is forced by the IDE to share his/her understanding – which is merged with stored interaction information 33
  • 34. Many Starting Points Exist … • IBM Jazz, MS Team Foundation Server, Bespin • DeLine: Del.icio.us development tools (CHASE’08) • Begel et al: Codebook (ICSE NIER’09) • Treude & Storey: Tagging (ICSE’09) • Shihab et al: IRC channels (MSR’09) • Fritz/Murphy: Interaction mining (ESEC/FSE’07) • .... and a lot more! • …. But still much work remains to be done! 34
  • 35. Part III Begin With the End in Mind • J. Ziman, 1978: Reliable Knowledge: An Exploration of the Grounds for Belief in Science • Consensual knowledge: – The ultimate goal of science is a consensus of rational opinion • Consensual statement: – Fully tested and accepted by overwhelming majority of well-informed scientists • Consensible statement: – Has the potential for eventually contributing to a consensus 35
  • 36. Comprehension & Dynamic Analysis: A Systematic Survey • A person understands a program: – Ability to explain the program, its structure, its behavior, its effects on its operation context, and its relationships to its application domain – in terms that are qualitatively different from the tokens used to construct the source code of the program • Dynamic analysis: – Properties of running system B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, and Rainer Koschke A Systematic Survey of Program Comprehension through Dynamic Analysis. IEEE Transactions on Software Engineering, 2009 36
  • 38. Analyzed 172 Papers 33 26 20 19 21 11 9 9 5 5 5 4 3 3 3 38
  • 39. 39
  • 40. Attribute Occurrences 90 79 72 68 61 59 58 60 frequency 48 39 36 32 30 30 30 30 30 27 26 25 23 19 19 13 12 12 11 11 11 9 7 7 6 6 5 5 0 40
  • 42. Hierarchical Edge Bundles Danny Holten: Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data. IEEE Trans. Vis. Comput. Graph. 12(5): 741-748 (2006)
  • 43. Evaluation Through Case Studies • Assessed how/why ExtraVis could be helpful in three dynamic analysis use cases: – Trace exploration, feature location, phase identification • Selected three subject systems: – 1 industrial, 2 open source • Exploration, theory building B. Cornelissen, A. Zaidman, D. Holten, L. Moonen, A. van Deursen, and J. van Wijk. Execution Trace Analysis through Massive Sequence and Circular Bundle Views. Journal of Systems and Software 81(12):2252-2268, 2008 43
  • 44. Featue Location Goal: Establishing relations between feature } 3x invocations and the corresponding source code elements. Execution scenario (150,000 events) – Create new drawing – Draw five types of figures } 3x 44
  • 48. Analytical Generalization • Helpful to understand user-triggerable functions. – Massive sequence chart helps to reveal recurring patterns – Circular bundle view helps to understand more detailed interactions • Effective use of “screen real estate” • Threats to (external) validity: – size of trace, presence of treads, role of identifiers, triggering the features, applied filtering in some cases. 48
  • 49. ExtraVis Controlled Experiment • Baseline: Eclipse • Partition 34 subjects (academic + industry) into two groups: – Control group: Eclipse – Experimental group: Eclipse + ExtraVis • Perform eight comprehension tasks on Checkstyle source code • Measure time spent, and correctness of answers B. Cornelissen, A. Zaidman, B. van Rompaey, and A. van Deursen Trace Visualization for Program Comprehension: A Controlled Experiment. In Proc. 17th International Conference on Program Comprehension (ICPC), 2009 49
  • 50. M. J. Pacione, M. Roper, and M. Wood, “Comparative evaluation of dynamic visualisation tools,” In Proc. Working Conference on Reverse Engineering (WCRE), pp. 80–89, IEEE C.S., 2003. 50
  • 51. Task design (cont’d) • Example: Activity A1 – “Investigating the functionality of (part of) the system” – is covered by • Task 1: globally understanding the main stages in a typical scenario • Task 4.1: providing a detailed description of the violation handling process • Task 4.2: determining whether check X reports violations • Example: Activity A4 – “Investigating dependencies between artifacts” – is covered by • Task 2.1: identifying three classes with high fanin and low fanout • Task 2.2: identifying a class in package X with a strong coupling to package Y • Task 3.2: listing the identifiers of all interactions between classes X and Y • Task 3.3: listing the identifiers of additional interactions in case of class Z
  • 52. Correctness Results Mean score Eclipse 17.88 Mean score Ecl + ExtraVis 12.47 Score Improvement 43.38% p value < 0.001 52
  • 53. Timing Results Mean time Eclipse 77.00 Mean time Ecl + ExtraVis 59.94 Time Saved 22.16% p-value 0.002 53
  • 54. Findings • 22% faster, 43% better – For the given comprehension tasks • ExtraVis offers – global structural insight; – global and detailed behavioral insight; • ExtraVis works best with a goal-oriented strategy 54
  • 55. Threats to Validity • Construct validity: – Can we distinguish use of traces in general from use of ExtraVis in particular? • Internal validity: – Is background knowledge evenly distributed across groups? – Were subjects motivated? – Are the tasks biased? Are they too difficult? Too easy? – Was the time set realistic? – Did we grade the tasks correctly? • External validity: – Are the tasks, checkstyle, and the subjects representative? 55
  • 56. How do we Evaluate our Results? • Through realistic, effort- • Through controlled taking, case studies experiments • Permitting analytical • Smaller tasks by more generalization people • Statistical generalization • All done with the most critical attitude • Reflected in at least the “threats to validity” 56
  • 57. Part IV Five Years from now… Collaboration as in Web We want our research to 2.0 and the move of – Play a leading role in applications to the web these directions will be universal – Leverage these trends in our methods & tools What do we need in order to conduct the most critical and insightful evaluations? What do we have to set in place right now? 57
  • 58. Empirical Studies including Collaboration • Visualizations are means for collaboration – Future tools will include collaboration support • How can we evaluate this? – Case studies will be more complicated • Community effort – Volunteer in each other’s experiments – Grant access to each other’s students 58
  • 59. Access to Shared Web Applications • We need compelling shared case studies – Web app sources harder to find on source forge • Which maintenance tasks do we want to speed up and improve? – What role does collaboration play in there? • To be able to compare results the community needs to work on common cases and tasks 59
  • 60. Shared Analysis Infrastructures • Analyzing web applications is highly challenging – Multitude of combined technologies – Static analysis insufficient – Ajax adds significant complexity • Community effort to build web analysis tools – Our open source Crawljax infrastructure can be a starting point 60
  • 61. Picasso Visualizations • ExtraVis is heavy weight visualization artillery • What about light-weight visualizations? • Can the browser force us to simplicity? (gmail) • Can we exploit HTML5 and rich Javascript visualization libraries? • How does collaboration fit in? 61
  • 62. Rethinking the IDE • What is the essential IDE that is so simple that it can run in a browser? • Shouldn’t collaboration be the central feature of an IDE? • How can the IDE encourage developers to share their thoughts? • How can the IDE distinguish right from wrong? 62