Visualization for Software Analytics

64
@margaretstorey #vissoft14 #icsme14 Visualization for Software Analytics Margaret-Anne (Peggy) Storey

description

Keynote for VISSOFT 2014

Transcript of Visualization for Software Analytics

Page 1: Visualization for Software Analytics

@margaretstorey#vissoft14 #icsme14

Visualization for Software Analytics

Margaret-Anne (Peggy) Storey@margaretstorey

#vis4se

Page 2: Visualization for Software Analytics

Why visualization?

Provide insights Answer questions Support wayfinding Tell stories Communicate knowledge, awareness !

!

!

!

Page 3: Visualization for Software Analytics

For software… Visualize what?

Page 4: Visualization for Software Analytics

Design

UML

Page 5: Visualization for Software Analytics

Algorithmsbost.ocks.org/mike/algorithms/

Page 6: Visualization for Software Analytics

Code, dependencies http://thechiselgroup.org/2005/07/06/zest/

http://swerl.tudelft.nl/bin/view/Main/ExTraVis

Page 7: Visualization for Software Analytics

Dynamic behaviour

Cleary, B., Storey, M., Chan, L., Salois, M., Painchaud, F., "ATLANTIS - Assembly Trace Analysis Environment," Working Conference on Reverse Engineering (WCRE), 2012.

http://hapao.dcc.uchile.cl

Page 8: Visualization for Software Analytics

Architecture

Wettel, R. & Lanza, M. "CodeCity: 3D visualization of large-scale software,” (ICSE Companion '08), 2008

Creole: http://thechiselgroup.org/2003/07/06/creole/

Page 9: Visualization for Software Analytics

Human activities

Gourse: visualizing commits

Page 10: Visualization for Software Analytics

Software ecosystems

Page 11: Visualization for Software Analytics

ADOPTION

Lessons learned?

THEORIES

METHODS

FLOWUSERS

TASKS

Page 12: Visualization for Software Analytics

Diver:

Myers, D. & Storey, M. "Focusing on Execution Traces Using Diver," 18th Working Conference on Reverse Engineering (WCRE), 2011, pp.439-440

Page 13: Visualization for Software Analytics

A theory of cognitive support for Diver…

Page 14: Visualization for Software Analytics

Dimensions Characteristics Elements Intent Role Team, Developer, Manager, Researcher, Maintainer, Reengineer

Time Present, Recent Past, Historical Authorship Authorship, Rationale, Time, Artifacts

Information Change management Local History, Releases, Releases, Branching, Revisions Defect tracking Defects, Changes Program code Modules/components, Syntactic units (e.g. files), Semantic analysis Documentation Requirements, Design, Test cases, Architecture Informal communication Email, Instant messages Derived/Aggregated Single source, multiple source

Presentation Form Text, Hypertext, Graphical Kinds of views Annotated views, Statistical views, Graph views, Special views Techniques Visual variables (colour, position etc), Animation, 2D/3D

Interaction Batch/Live Offline, Online, Customizable Customization Level of customization, sharing and saving customizations Queries Query language, Visual queries, Filter widgets View navigation Multiple views, Overview+detail, Zoomable views, Coupled

Effectiveness System Implemented, Availability, Scalability, Interoperability Cost Economic cost, Installation, Learning, Usage Evaluation Adopted, Case study, User study

Storey, M.-A. & Cubranic, D. & German, D. M. "On the use of visualization to support awareness of human activities in software development: a survey and a framework," ACM symposium on Software Visualization (SoftVis), 2005.

Framework…

Page 15: Visualization for Software Analytics

What’s next?

Page 16: Visualization for Software Analytics

Three trends to consider…

Developers: solo coder -> social coder

Software development: code centric -> data centric

Visualization: standalone -> ubiquitous

Page 17: Visualization for Software Analytics

Three trends to consider…

Developers: solo coder -> social coder

Software development: code centric -> data centric

Visualization: standalone -> ubiquitous

Page 18: Visualization for Software Analytics

“I know how this was done because I did it” “I need complete understanding”

Peter Norvig, Coders at Work

Page 19: Visualization for Software Analytics

“How is this likely done?” “Can I quickly get an understanding of what I need?” Peter Norvig, Coders at Work

“Google team?”

Page 20: Visualization for Software Analytics

PlaceSpace

P. Dourish and V. Bellotti. Awareness and Coordination in Shared Workspaces. Proceedings of the ACM Conference on Computer-Supported Cooperative Work (CSCW'92).

Page 21: Visualization for Software Analytics

1968 1980 1990 2000 20101970

Developer tools…

Page 22: Visualization for Software Analytics

1968 1980 1990 2000 20101970

Telephone

Face2Face

ProjectWorkbook

Documents

Email

Email Lists

VisualAgeVisual Studio

NetBeans EclipseIRC

ICQ Skype

SourceForge

WikisTrello

BasecampJazz

Campfire

GoogleHangouts

Punchcards TFS

Books UsenetStack

Overflow

Twitt

er

Google Groups

PodcastsBlogs

GitH

ub

Conferences

Societies LinkedInFacebook

Slashdot HackerNews

Nondigital Digital Digital & Socially Enabled

MasterbranchCoderwall

Meetups

Yam

mer

Storey, M.-A., L. Singer, F. Figueira Filho, B. Cleary and A. Zagalsky,The (R)evolutionary Role of Social Media in Software Engineering, ICSE 2014 Future of Software Engineering Track, 36th International Conference on Software Engineering (ICSE 2014) Hyderabad.

Page 23: Visualization for Software Analytics

Social Media and Participatory Cultures [Jenkins]

Low barriers to artistic expression and engagement

Strong support for sharing one’s creations

Informal mentorship for novices

Members believe their contributions matter

Members care about social connections and what others think about their creations

3

Page 24: Visualization for Software Analytics

The Participatory Culture in Software Engineering is not new

Internet and free/open source projects

Linux and the bazaar model of programming

Global software development (GSD)

Historical importance of tools and the social shaping of communities

4

Page 25: Visualization for Software Analytics

Three trends to consider…

Developers: solo coder -> social coder

Software development: code centric -> data centric

Visualization: standalone -> ubiquitous

Page 26: Visualization for Software Analytics

!

Code centric -> (Big) Data centric User feedback -> usage logs, social media In lab testing -> large scale testing in the wild Centralized -> distributed development Long product cycle -> continuous releases

!

!

Era of software analytics

Page 27: Visualization for Software Analytics

Quiz!!! Which code should I test!

1. Which day of the week is likely to produce the buggiest code? Mon-Sun?!2. Who produces more buggy code? Junior or Senior Developers? !3. Which metrics are most useful in predicting defects? a. Lines of code, b. complexity of the code, c. number of developers that worked on the code, d. previous bugs in the code, or e. code churn

Page 28: Visualization for Software Analytics

Software Analytics: A definition

Software Analytics is to enable software practitioners to perform data exploration and analysis to obtain insightful and actionable information for data-driven tasks around software and services.

Dongmei Zhang & Tao Xie, http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_minitutorial_icse2012.pdf

Page 29: Visualization for Software Analytics

Goals of software analytics?

To improve: - quality of the software - experience of the users - productivity of the developers !

Dongmei Zhang & Tao Xie, http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_minitutorial_icse2012.pdf

Page 30: Visualization for Software Analytics

Prolific data sources and analysis techniques

Program data: runtime traces, program logs, system events, failure logs, performance… !

User data: usage logs, user surveys, user forums, twitter and blogs, … !

Development data: versions, bug data, commits, testing, communication

Page 31: Visualization for Software Analytics

Need for actionable insights

To support decision making“use data rather than fortune tellers” [A. Hassan] !

!

!

But need more than data! !

http://www.slideshare.net/taoxiease/software-analytics-towards-software-mining-that-matters

Page 32: Visualization for Software Analytics

The need for visual analytics!

Focus has been on: - acquiring/cleaning/managing the data - analytics - understanding which questions to ask… One of the key pillars to support software analytics is visualization [Zhang & Xie]

Dongmei Zhang & Tao Xie, http://research.microsoft.com/en-us/groups/sa/softwareanalyticsinpractice_minitutorial_icse2012.pdf

Page 33: Visualization for Software Analytics

Three trends to consider…

Developers: solo coder -> social coder

Software development: code centric -> data centric

Visualization: standalone -> ubiquitous

Page 34: Visualization for Software Analytics

Recap: Why software visualization?

Provide insights Answer questions Support wayfinding Tell stories Communicate knowledge, awareness !

!

!

!

Page 35: Visualization for Software Analytics

Visualization ubiquity

Visual analytics (gain insights) Deep integration (cognitive support in context) Infographics (tell a story) Dashboards (awareness) !

Page 36: Visualization for Software Analytics

Visualization ubiquity

Visual analytics (gain insights) Deep integration (cognitive support in context) Infographics (tell a story) Dashboards (awareness) !

Page 37: Visualization for Software Analytics

Information visualization process: overview, filter and zoom, details on demand !

!

!

Visual analytics process: analyze first, show the important, zoom, filter and analyze further, details on demand

Visual analytics

vs

Page 38: Visualization for Software Analytics

Visualization ubiquity

Visual analytics (gain insights) Deep integration (cognitive support in context) Infographics (tell a story) Dashboards (awareness) !

Page 39: Visualization for Software Analytics

Visual debugging: Debugger Canvas

http://www.youtube.com/watch?v=3p9XUwIlhJg

Page 40: Visualization for Software Analytics
Page 41: Visualization for Software Analytics

Visualization ubiquity

Visual analytics (gain insights) Deep integration (cognitive support in context) Infographics (tell a story) Dashboards (awareness) !

Page 42: Visualization for Software Analytics

InfographicsTells a story, quickly Shared socially Interactive !

Popular, accessible: visual.ly, Tableau Public !

Examples: New York Times, Tagging, Stackoverflow, Twitter… !

Page 43: Visualization for Software Analytics

http://www.nytimes.com/newsgraphics/2013/07/21/silk-road/

Page 44: Visualization for Software Analytics

Tagging work items in

C. Treude and M.-A. Storey. Work Item Tagging: Communicating Concerns in Collaborative Software Development. In IEEE Transactions on Software Engineering 38, 1 (January/February 2012). pp. 19-34.

Page 45: Visualization for Software Analytics

ConcernLines

Page 46: Visualization for Software Analytics

http://githut.info

Page 47: Visualization for Software Analytics

Coverage of API documentation: 77% of the Java API classes & 87% of Android API classes Speed of coverage:

C. Parnin, C. Treude, L. Grammel and M.-A. Storey. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow”. at http://blog.ninlabs.com/2012/05/crowd-documentation/ May 2012.

Page 48: Visualization for Software Analytics

Crowd authored API documentation!

http://latest-print.crowd-documentation.appspot.com/?api=android

Page 49: Visualization for Software Analytics

http://graphoverflow.com

Page 50: Visualization for Software Analytics

How developers use Twitter

!

AwarenessLearningRelationshipsWhy non-adoptionStrategies

“It was evolving way faster than I was able to keep up with it. And the only way to keep up was to follow some Node.js people on Twitter.”

Leif Singer, Fernando Figueira Filho, Margaret-Anne Storey. Software Engineering at the Speed of Light: How Developers Stay Current Using Twitter ICSE 2014.

Page 51: Visualization for Software Analytics

Sentiments on Twitter for: shellshock

http://www.csc.ncsu.edu/faculty/healey/tweet_viz/tweet_app/

Page 52: Visualization for Software Analytics

Visualization ubiquity

Visual analytics (gain insights) Deep integration (cognitive support in context) Infographics (tell a story) Dashboards (awareness) !

Page 53: Visualization for Software Analytics

DashboardsAwareness Making informed decisions Live data Business intelligence

Page 54: Visualization for Software Analytics

Dashboards for developer awareness

Treude, C., and M.-A. Storey, “Awareness 2.0: staying aware of projects, developers and tasks using dashboards and feeds,” in ICSE’10: Proc. of the 32nd ACM/IEEE Int. Conference on Software Engineering, ACM.

Page 55: Visualization for Software Analytics

Assessing and watching developers

!L. Singer, F. F. Filho, B. Cleary, C. Treude, M.-A. Storey, K. Schneider. Mutual Assessment in the Social Programmer Ecosystem: An Empirical Investigation of Developer Profile Aggregators Blog: http://to.leif.me/devprofiles

Page 56: Visualization for Software Analytics

Recap…

Developers: solo coder -> social coder

Software development: code centric -> data centric

Visualization: standalone -> ubiquitous

Visualization for software analytics

Page 57: Visualization for Software Analytics

Opportunities and challengesTL;DR !

Mobile !

Scale !

Visualizations as social media !

Visual software analytics should be actionable!

Page 58: Visualization for Software Analytics

http://think.withgoogle.com/databoard/

Visualize and share your research results!

Page 59: Visualization for Software Analytics

TakeawaysSoftware developers are the prototype knowledge workers of tomorrow !

Software visualization has come of age: social coder software analytics ubiquitous visualization

Page 60: Visualization for Software Analytics

AcknowledgementsCHISEL group, UVic, Canada: – Christoph Treude – Brendan Cleary – Alexey Zagalsky – Peter Rigby – Lars Grammel – …… Chris Parnin, NCSU Leif Singer, I Done This Daniel German, UVic Arie van Deursen, TU DelftFernando Figueira Filho, Brazil

Page 61: Visualization for Software Analytics

Software visualization: Stasko, J. T., Brown, M. H. & Price, B. A. (Eds.) Software Visualization MIT Press, 1997Petre, M. "UML in practice," Proceedings of the 2013 International Conference on

Software Engineering (ICSE), 2013, pp.722-731Blackwell, A., Britton, C., Cox, A., Green, T., Gurr, C., Kadoda, G., Kutar, M., Loomes,

M., Nehaniv, C., Petre, M., Roast, C., Roe, C., Wong, A. & Young, "Cognitive Dimensions of Notations: Design Tools for Cognitive Technology Cognitive Technology: Instruments of Mind," Springer Berlin Heidelberg, 2001, vol.2117, pp.325-341

DeLine, R., Bragdon, A., Rowan, K., Jacobsen, J., & Reiss, S. "Debugger canvas: industrial experience with the code bubbles paradigm," Proceedings of the 34th International Conference on Software Engineering (ICSE), 2012, pp.1064-1073.

Bull, R. I. & Storey, M.-A. "Towards visualization support for the eclipse modeling framework," A Research-Industry Technology Exchange, 2005

Cleary, B., Gorman, P., Verbeek, E., Storey, M.-A, Salois, M., Painchaud, F., "Reconstructing program memory state from multi-gigabyte instruction traces to support interactive analysis," 20th Working Conference on Reverse Engineering (WCRE), Oct. 2013, pp.42-51!

!

Selected additional References

Page 62: Visualization for Software Analytics

Social coding:Communities of practice: http://www.ewenger.com/theory/ !C. Treude and M.-A. Storey. Effective Communication of Software Development Knowledge Through Community Portals. ESEC/FSE ’11. M.-A. Storey, C. Treude, A. van Deursen and L.-T. Cheng. The Impact of Social Media on Software Engineering Practices and Tools. In FoSER ’10: Proceedings of the FSE/SDP workshop on Future of software engineering research.!Storey, M.-A., L. Singer, F. Figueira Filho, B. Cleary and A. Zagalsky,The (R)evolutionary Role of Social Media in Software Engineering, ICSE 2014 Future of Software Engineering Track, 36th International Conference on Software Engineering (ICSE 2014) Hyderabad, 2014!Begel, A., J. Bosch, and M.-A. Storey., Social Networking Meets Software Development: Perspectives from GitHub, MSDN, Stack Exchange, and TopCoder. Software, IEEE 30.1 (2013): 52-66. !!!!!

Page 63: Visualization for Software Analytics

Software analytics:IEEE Software — two special issues on Software Analytics, July/August 2013Tao Xie’s tutorial on software analytics: http://www.slideshare.net/taoxiease/software-

analytics-towards-software-mining-that-matters!

Research methods: Easterbrook, S., Singer, J., Storey, M.-A. & Damian, D. "Selecting Empirical Methods for

Software Engineering Research," Guide to Advanced Empirical Software Engineering, Springer London, 2008, pp.285-311

Walenstein, A., "Observing and measuring cognitive support: steps toward systematic tool evaluation and engineering," 11th IEEE International Workshop on Program Comprehension (IWPC), 2003, pp.185-194

Begel, A. & Zimmermann, T. "Analyze this! 145 questions for data scientists in software engineering," Proceedings of the 36th International Conference on Software Engineering (ICSE), 2014, pp.12-23.

!

Visual analytics: Illuminating the path: http://vis.pnnl.gov/pdf/RD_Agenda_VisualAnalytics.pdfMark Smiciklas (2012). The Power of Infographics: Using Pictures to Communicate and

Connect with Your Audience.!

Page 64: Visualization for Software Analytics

TakeawaysSoftware developers are the prototype knowledge workers of tomorrow !

Software visualization has come of age: social coder software analytics ubiquitous visualization