Raula Gaikovina Kula, Daniel German, Takashi Ishio, Katsuro Inoue

Slides:



Advertisements
Similar presentations
Case Study: Examining the Results of P2P Collaboration at PricewaterhouseCoopers February 14, 2001 Case Study: Examining the Results of Collaboration at.
Advertisements

FpML Versioning An AWG Discusion Document. Versioning in FpML To Date Based on major.minor numbering –Major increments to indicate a breaking change –Minor.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Identifying Source.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
What is a Programming Language? The computer operates using binary numbers. The computer only knows about 1’s and 0’s. Humans can also use 1’s and 0’s,
Software Construction and Evolution - CSSE 375 Software Maintenance at 30K Feet Shawn and Steve Left – Tibet from ft. (~9 km).
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
SWE Introduction to Software Engineering
1 Release Management Hohmann Chapter 15.
1 CMPT 275 Software Engineering Revision Control.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Measuring Copying.
Platform Upgrades As A Service Raj Nagarajan, Robert Enyedi.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University What Do Practitioners.
Oracle Patching and Maintenance A practical guide for System Administrators October 2009.
Open MPI Project June 2015 Updated Version Numbering Scheme and Release Planning.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University A Method to Detect License Inconsistencies for Large-
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University VerXCombo: An.
Community Codes Free and shared resource Ongoing distributed development by both research and operational communities – Maintained under version control.
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University An Empirical Study of Out-dated Third-party Code.
© 2011 LabKey Software ExtJS Migration Plan Ben Bimber, Ph.D. LabKey Software.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
May 2015 New version numbering proposal. Where this proposal started from… Odd / even scheme doesn’t seem to be working well  Most users only using even.
1. Introducing C Lecturer: Chih Hung Wang Fall 2010 Programming Design (I) Modified from: C Programming – A Modern Approach 2008 W. W. Norton & Company.
Marco Cattaneo, 6th July Remedy bug tracking tool CERN Problem Report Management System (PRMS)
Developing tools for X-Plane Some personal observations Jonathan Harris (aka “Marginal”)
Operationalize the State Strategic Plan for IT Software Currency May 11,2016.
Yesdatabas Team Void Main. Team Members Daniel MeteyerMichael MartinCorey McClymondsPatrick Stetter.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Software Ingredients:
MASS C++ Updates JENNIFER KOWALSKY, What is MASS? Multi-Agent Spatial Simulation A library for parallelizing simulations and data analysis Uses.
Version Control How and why to control changes in a software artifact.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
Zscaler Support Best Practices Guide Version September 27, 2016.
Practical Project Maintenance
Tutorial 4 IT323.  Q1. As a software project manager in a company that specializes in the development of software for the offshore oil industry, you.
Search-Based Peer Reviewers Recommendation in Modern Code Review 32 nd IEEE International Conference on Software Maintenance and Evolution (ICSME) 2016.
Daoyuan Wu, Ximing Liu*, Jiayun Xu*, David Lo, and Debin Gao
Part 1: Overview of LINQ Intro to LINQ Presenter: PhuongNQK.
Pragmatics 4 Hours.
Configuration Management
Overview Software Maintenance and Evolution Definitions
Regression Testing with its types
eTrice Release Review Planned Review Date:
Source File Set Search for Clone-and-Own Reuse Analysis
Naoya Ujihara1, Ali Ouni2, Takashi Ishio1, Katsuro Inoue1
OpenSAF Developer Days 2008 OpenSAF Release Management Session 15-07
Ben Bimber, Ph.D. LabKey Software
Configuration Management
Subversion User Training
Do Developers Focus on Severe Code Smells?
draft-clacla-netmod-yang-model-update-02
Evolution of Enterprise Search at Merck: Sucks to Success
A Generalized Model for Visualizing Library Popularity, Adoption, and Diffusion within a Software Ecosystem Raula Gaikovina Kula, Coen De Roover, Daniel.
Balazs Lengyel, Ericsson
Joe Clarke (presenting)
Boris Todorov1, Raula Gaikovina Kula2, Takashi Ishio2, Katsuro Inoue1
Software Engineering Laboratory, Osaka University
Third-party library mismanagement: How it can derail your plans
Visualizing the Evolution of Systems and their Library Dependencies
Predicting Fault-Prone Modules Based on Metrics Transitions
Agile Evolution - We Heard Your Feedback Current Plan
Yuhao Wu1, Yuki Manabe2, Daniel M. German3, Katsuro Inoue1
Discussing an OVS/OVN Split
CS 240 – Advanced Programming Concepts
Open Source Development Challenges
Street Manager Training approach
NETMOD Versioning Design Team Update
Joe Clarke (presenting)
Rob Wilton (presenting)
Presentation transcript:

Trust of a Library: A Study of the Latency to Adopt the Latest Maven Release Raula Gaikovina Kula, Daniel German, Takashi Ishio, Katsuro Inoue Osaka University, Japan SANER2015-ERA Track 12/1/2018

Software Library Reuse Developer Next System Release Adopt 3rd party libraries from Previous System Version Why adopt libraries? extended features inherited quality time/effort cost efficient avoid reinvent wheel 12/1/2018

Software Systems As the system evolves, more libraries are added. library System As the system evolves, more libraries are added. As the system evolves, dependencies can become complex

Dependency Management Tools to the rescue… Build tools such as Maven and Gradle allow for management of library dependencies 12/1/2018

If, When and What to update?? As the system evolves, dependencies can become complex At the same time… As libraries evolve, Library Updates to fix bugs and new features 12/1/2018

System Maintainers are wary beings… But any changes may disrupt dependencies: aka breaking changes System Maintainer needs to decide `if’, `when’ and `what to update?’ Dependency Hell Our previous work + related works suggests breaking changes and systems still using older versions 12/1/2018

Notion of Trust as a metric … Trusted Adoption: When the latest adoption is adopted Latent Adoption: When previous releases are adopted Assist with the `if’, `when’ and `what to update’ questions… 12/1/2018

Four types of trust ‘Do exactly what it says’ – ‘Play with others’ – Functional and non-functional specification Major: Minor: Patch (SemVer) API Documentation ‘Play with others’ – Volatile to current system environment Incompatibilities with other library transitive and non-transitive dependencies (Example: asm backward compatibility) 12/1/2018

Four types of trust 3. ‘Prior Engagements’ – 4. ‘Tried and tested’ – Loyalty to a release version based on previous experiences. Wary of other new libraries and rather stick to familiar libraries 4. ‘Tried and tested’ – Common belief that the latest release may contain untested bugs. Prefer to adopt release versions 1 or 2 releases behind the latest. 12/1/2018

Guiding Research Questions for this study How much ‘latent adoption’ exists? What is the current trend of maintainers trust? 12/1/2018

All about Systems and Libraries 12/1/2018

Research Approach 12/1/2018

Empirical Study pom.xml Maven Dataset Time Period 2005-11-03 ~ 2013-11-24 # of Dependency Relations 188,951 # of Systems 6,374 # of libraries 5,146 12/1/2018

Results Trusted Dependency Classifications # of libraries # of dependencies (%) iniTA 4,192 20, 372 (56.63%) iniLA 848 13, 791 (40.37%) introTA 3,064 29,303 (81.16%) introLA 823 6,543 (18.24%) 12/1/2018

Adoption Trends over time 12/1/2018

Back to RQs How much ‘latent adoption’ exists? It is common, almost 40% at initial conception as compared to introduced. What is the current trend of maintainers trust? Over time, maintainers are more inclined to adopt the latest release (trusted dependency adoptions). 12/1/2018

End Thoughts 12/1/2018