SlideShare a Scribd company logo
APIs, APIs and more APIs!
Anand Ashok Sawant
APIs, APIs and more APIs
Software Engineering is the discipline wherein a software engineer
“writes a software component that will be combined with
components written by other software engineers to build a system”
APIs, APIs and more APIs
APIs, APIs and more APIs
So what’s an API?
An Application Programming Interface (API) is a set of routines,
protocols, and tools for building software applications
APIs, APIs and more APIs
Approaches Used Till Date
Approaches Used Till Date
Text matching
Text matching
Inaccurate!
Approaches Used Till Date
Bytecode analysis
Bytecode analysis
Too expensive
Approaches Used Till Date
Partial Program Analysis (PPA)
Partial Program Analysis (PPA)
No support for
Java 1.5+
Approaches Used Till Date
Abstract Syntax Tree (AST) parsing
Abstract Syntax Tree (AST) parsing
Abstract Syntax Tree (AST) parsing
No type information
fine-GRAPE
Maven POM file
<project xmlns=“http://maven.apache.org/POM/4.0.0”
…
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
…
</dependencies>
…
</project>
fine-GRAPE
Popular JAVA APIs
0 5000 10000 15000 20000 25000
hibernate-entitymanager
guava
spring-test
spring-context
log4j
junit
Number of projects referencing the APIs
APIartifactID
Selected APIs
Data collected
API Total Method
Invocations
Annotation Usages
Guava 1,148,412 -
Guice 59,097 48,945
Spring 19,894 40,525
Hibernate 196,169 16,259
Easymock 38,523 -
Studies
Studies
Client Lag Time Study
Goal: Analyze the upgrade behavior of a client to
see if they move to the latest version of an API or
not.
Outcome: We see that in most cases clients do not
transition to the latest version of the API.
APIs, APIs and more APIs
Research Questions
RQ: Do clients of APIs migrate to a new version of the API?
Lag time is defined as the amount of time elapsed between a
client’s API reference and the release date
Lag Time Example
Results
Probability Density of Lag Time
Popular Releases
Release Frequency of APIs
APIs, APIs and more APIs
Projects do not upgrade versions often
The latest version is not the most popular version
Clients of frequently releasing APIs display less lag time
Studies
API Usage Study
Goal: Measure the number features of an API that
are actually used and rank them based on
popularity
Outcome: We see that very small portion of the
APIs are used by clients.
APIs, APIs and more APIs
RQ: How much of an API is broadly used?
Research Questions
Hotspot features are those in the top 15% of popularity that is
ranked by usage
Neutral features are those that are used by clients of an API
but do not figure in the top 15% in terms of popularity
Coldspot features are those that are not used by any client of
the API
Results
Usage of features
Easymock
13.4%
Guava
9.6%
Spring
7.4%
Hibernate
1.8%
Guice
1.2%
Popularity breakdown
Core features
APIs, APIs and more APIs
Small portions of the API are actually used in practice
There are very few features that can be marked as hotspots
Most features are coldspots
Over ~ 90% of popular features can be regarded as core features
Newer features have a low adoption percentage
Studies
API Popularity and Bug Relationship
Goal: See if more bug reports emanate from parts
of the API that are more popularly used by clients.
Outcome: We observe that popular parts of the API
are better tested and are in general less buggy than
more popular parts of the API.
APIs, APIs and more APIs
• RQ1: Are tests made for APIs exhaustive? That is do they cover the
API artifacts well?
• RQ2: Is there a connection between API coverage and popularity of
an API artifact? Are popular parts better covered?
• RQ3: Is there a connection between bugs in an API and popular parts
of the API? Are more bugs reported in popular parts?
• RQ4: Are core features of an API the most popular parts?
Research Questions
Initial Intuition
Popular parts of
the API
Buggy parts of the
API
Test Coverage of the API
Dynamic Static
Initial Intuition Correct?
Popular parts of
the API
Buggy parts of the
API
APIs, APIs and more APIs
APIs are generally well tested
Popular parts of the API appear to be better tested
There are fewer bugs that originate from the popular parts
Studies
API Deprecation Study
Goal: Analyze the reaction of an API client to
deprecation of an API artifact.
Outcome: We see that in most cases clients do not
react to a deprecated artifact, in fact they may
even add more calls to a deprecated artifact.
Deprecation is an attribute applied to a computer software
feature, characteristic, or practice to indicate that it should be
avoided (often because it is being superseded).
APIs, APIs and more APIs
Specific dataset
Dynamically typed language
“Small” dataset
Implicit versions
APIs, APIs and more APIs
APIs, APIs and more APIs
APIs, APIs and more APIs
Research Questions
RQ0: What API versions do clients use?
RQ1: How does API method deprecation affect clients?
RQ2: What is the scale of reaction in affected clients?
RQ3: What proportion of deprecations does affect clients?
RQ4: What is the time-frame of reaction in affected clients?
RQ5: Do affected clients react similarly?
Example API
goo
boo
f oo
v4
goo
boo
f oo
goo
f oo
goo
f oo
v5 v6 v7
Client 2
used API versions
and API methods
v6
f oo
Client 4
used API versions
and API methods
v4 v5 v6
boo
Client 1
used API versions
and API methods
v4
f oo
f oo
Client 5
used API versions
and API methods
v4 v5 v4
boo
timetodeprecation timetoreact
Client 3
used API versions
and API methods
v7v6v4
boo
f oo
boo boo
v5
timetoreact
timeto
deprecation
data collectionpoint
& deprecated methods
released versions,
declared methods,
Results
Results
RQ0: What API versions do clients use?
Example API
goo
boo
f oo
v4
goo
boo
f oo
goo
f oo
goo
f oo
v5 v6 v7
Client 2
used API versions
and API methods
v6
f oo
Client 4
used API versions
and API methods
v4 v5 v6
boo
Client 1
used API versions
and API methods
v4
f oo
f oo
Client 5
used API versions
and API methods
v4 v5 v4
boo
timetodeprecation timetoreact
Client 3
used API versions
and API methods
v7v6v4
boo
f oo
boo boo
v5
timetoreact
timeto
deprecation
data collectionpoint
& deprecated methods
released versions,
declared methods,
RQ0: What API versions do clients use?
Results
Results
RQ1: How does API method deprecation
affect clients?
Example API
goo
boo
f oo
v4
goo
boo
f oo
goo
f oo
goo
f oo
v5 v6 v7
Client 2
used API versions
and API methods
v6
f oo
Client 4
used API versions
and API methods
v4 v5 v6
boo
Client 1
used API versions
and API methods
v4
f oo
f oo
Client 5
used API versions
and API methods
v4 v5 v4
boo
timetodeprecation timetoreact
Client 3
used API versions
and API methods
v7v6v4
boo
f oo
boo boo
v5
timetoreact
timeto
deprecation
data collectionpoint
& deprecated methods
released versions,
declared methods,
RQ1: How does API method deprecation
affect clients?
APIs, APIs and more APIs
Results
Results
RQ2: What is the scale of reaction in affected
clients?
Example API
goo
boo
f oo
v4
goo
boo
f oo
goo
f oo
goo
f oo
v5 v6 v7
Client 2
used API versions
and API methods
v6
f oo
Client 4
used API versions
and API methods
v4 v5 v6
boo
Client 1
used API versions
and API methods
v4
f oo
f oo
Client 5
used API versions
and API methods
v4 v5 v4
boo
timetodeprecation timetoreact
Client 3
used API versions
and API methods
v7v6v4
boo
f oo
boo boo
v5
timetoreact
timeto
deprecation
data collectionpoint
& deprecated methods
released versions,
declared methods,
API Affected clients
that react
Median Max
Easymock 17 11 109
Guava 161 3 283
Hibernate 40 5 59
Spring 10 31 131
RQ2: What is the scale of reaction in affected
clients?
API Potentially
affected clients
Median Max
Easymock 178 55 4,464
Guava 917 12 8,568
Hibernate 521 15 17,471
Spring 41 3 205
RQ2: What is the scale of reaction in affected
clients?
Results
Results
RQ3: What proportion of deprecations does
affect clients?
Example API
goo
boo
f oo
v4
goo
boo
f oo
goo
f oo
goo
f oo
v5 v6 v7
Client 2
used API versions
and API methods
v6
f oo
Client 4
used API versions
and API methods
v4 v5 v6
boo
Client 1
used API versions
and API methods
v4
f oo
f oo
Client 5
used API versions
and API methods
v4 v5 v4
boo
timetodeprecation timetoreact
Client 3
used API versions
and API methods
v7v6v4
boo
f oo
boo boo
v5
timetoreact
timeto
deprecation
data collectionpoint
& deprecated methods
released versions,
declared methods,
13%
7% 6%
11%
RQ3: What proportion of deprecations does
affect clients?
Results
Results
RQ4: What is the time-frame of reaction in
affected clients?
Example API
goo
boo
f oo
v4
goo
boo
f oo
goo
f oo
goo
f oo
v5 v6 v7
Client 2
used API versions
and API methods
v6
f oo
Client 4
used API versions
and API methods
v4 v5 v6
boo
Client 1
used API versions
and API methods
v4
f oo
f oo
Client 5
used API versions
and API methods
v4 v5 v4
boo
timetodeprecation timetoreact
Client 3
used API versions
and API methods
v7v6v4
boo
f oo
boo boo
v5
timetoreact
timeto
deprecation
data collectionpoint
& deprecated methods
released versions,
declared methods,
RQ4: What is the time-frame of reaction in
affected clients?
Results
RQ5: Do all clients react similarly?
APIs, APIs and more APIs
Similar to Smalltalk
Deprecation in SmallTalk
Deprecation in Java
package org.serg;
import java.util.Date;
public class DateUser {
public static void main(String args[]) {
Date date = new Date();
int year = date.getYear();
}
}pecific
Similar to Smalltalk
Not many API clients change their version of the API
Few clients react to deprecation
APIs document deprecated changes well
Clients tend to delete references to deprecated entities and not replace them
Smalltalk clients actually replace deprecated calls
Results
Conclusion

More Related Content

PDF
Api testing and steps to do it
PPTX
Introduction to APIs & how to automate APIs testing with selenium web driver?
PDF
Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study
PDF
Accelerating Software Product Development with API Testing
PPT
Api tools overview
PDF
API TESTING
PDF
4 Major Advantages of API Testing
PPTX
Api testing
Api testing and steps to do it
Introduction to APIs & how to automate APIs testing with selenium web driver?
Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study
Accelerating Software Product Development with API Testing
Api tools overview
API TESTING
4 Major Advantages of API Testing
Api testing

What's hot (20)

PPTX
Understanding and Executing on API Developer Experience
PPTX
Evaluating and Testing Web APIs
PPTX
The State of Testing 2017
PPTX
Effective API Lifecycle Management
PPTX
Meetup #5 API Testing World
PDF
API Best Practices Webinar: Metrics - What to Measure
PDF
Testing APIs in the Cloud
PDF
API Testing: Answers to Your Top 3 Questions
PPTX
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
PPTX
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
PDF
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
PPTX
Next Generation Tooling for building streaming analytics app
PPTX
Curing the Kafka Blindness
PPTX
An introduction to api testing | David Tzemach
PPTX
Advanced Mocking for Swagger APIs
PPTX
Advanced Automation in Your API Lifecycle
PPTX
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
PPTX
Preparing for Holiday Performance, API edition
PDF
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
PDF
API-Consumption compressed (1)
Understanding and Executing on API Developer Experience
Evaluating and Testing Web APIs
The State of Testing 2017
Effective API Lifecycle Management
Meetup #5 API Testing World
API Best Practices Webinar: Metrics - What to Measure
Testing APIs in the Cloud
API Testing: Answers to Your Top 3 Questions
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
9 Months and Counting with Jeff Borek of IBM OpenAPI Meetup 2016 09 15
Next Generation Tooling for building streaming analytics app
Curing the Kafka Blindness
An introduction to api testing | David Tzemach
Advanced Mocking for Swagger APIs
Advanced Automation in Your API Lifecycle
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Preparing for Holiday Performance, API edition
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
API-Consumption compressed (1)
Ad

Similar to APIs, APIs and more APIs (20)

PDF
Thesis+of+wei+wu.ppt
PDF
API Deprecation: A Systematic Mapping Study
PDF
API Testing Interview Preparation and Methods
PDF
Versioning Best Practices for API Architecture.pdf
PPTX
B4USolution_API-Testing
PPTX
Test execution
PPTX
Lessons learned on the Azure API Stewardship Journey.pptx
PDF
Next-Level API Automation Testing Techniques – Part 1
PDF
API Testing
PDF
Icws 2016 v1
PPTX
Api Testing
PPTX
Api Testing
PDF
API Testing Interview Questions PDF By ScholarHat
PDF
How To Get Started With API Testing In Your Organization.pdf
PDF
How Libraries Evolve. A Survey of Two Industrial Companies and an Open-Source...
PDF
API Best Practices
PPTX
How to deal with REST API Evolution
PDF
JavaScript API Deprecation in the Wild: A First Assessment (SANER 2020)
PDF
GlueCon 2018: Are REST APIs Still Relevant Today?
PPTX
API Documentation Workshop tcworld India 2015
Thesis+of+wei+wu.ppt
API Deprecation: A Systematic Mapping Study
API Testing Interview Preparation and Methods
Versioning Best Practices for API Architecture.pdf
B4USolution_API-Testing
Test execution
Lessons learned on the Azure API Stewardship Journey.pptx
Next-Level API Automation Testing Techniques – Part 1
API Testing
Icws 2016 v1
Api Testing
Api Testing
API Testing Interview Questions PDF By ScholarHat
How To Get Started With API Testing In Your Organization.pdf
How Libraries Evolve. A Survey of Two Industrial Companies and an Open-Source...
API Best Practices
How to deal with REST API Evolution
JavaScript API Deprecation in the Wild: A First Assessment (SANER 2020)
GlueCon 2018: Are REST APIs Still Relevant Today?
API Documentation Workshop tcworld India 2015
Ad

Recently uploaded (20)

PDF
Phytochemical Investigation of Miliusa longipes.pdf
PDF
An interstellar mission to test astrophysical black holes
PPTX
EPIDURAL ANESTHESIA ANATOMY AND PHYSIOLOGY.pptx
PPTX
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
PPTX
GEN. BIO 1 - CELL TYPES & CELL MODIFICATIONS
PDF
. Radiology Case Scenariosssssssssssssss
PDF
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
PPTX
Introduction to Fisheries Biotechnology_Lesson 1.pptx
PDF
HPLC-PPT.docx high performance liquid chromatography
PPTX
7. General Toxicologyfor clinical phrmacy.pptx
PPTX
INTRODUCTION TO EVS | Concept of sustainability
PDF
AlphaEarth Foundations and the Satellite Embedding dataset
PPTX
Vitamins & Minerals: Complete Guide to Functions, Food Sources, Deficiency Si...
PPTX
2. Earth - The Living Planet Module 2ELS
PPT
protein biochemistry.ppt for university classes
DOCX
Q1_LE_Mathematics 8_Lesson 5_Week 5.docx
PPTX
2. Earth - The Living Planet earth and life
PPTX
microscope-Lecturecjchchchchcuvuvhc.pptx
PPTX
Derivatives of integument scales, beaks, horns,.pptx
PDF
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...
Phytochemical Investigation of Miliusa longipes.pdf
An interstellar mission to test astrophysical black holes
EPIDURAL ANESTHESIA ANATOMY AND PHYSIOLOGY.pptx
G5Q1W8 PPT SCIENCE.pptx 2025-2026 GRADE 5
GEN. BIO 1 - CELL TYPES & CELL MODIFICATIONS
. Radiology Case Scenariosssssssssssssss
ELS_Q1_Module-11_Formation-of-Rock-Layers_v2.pdf
Introduction to Fisheries Biotechnology_Lesson 1.pptx
HPLC-PPT.docx high performance liquid chromatography
7. General Toxicologyfor clinical phrmacy.pptx
INTRODUCTION TO EVS | Concept of sustainability
AlphaEarth Foundations and the Satellite Embedding dataset
Vitamins & Minerals: Complete Guide to Functions, Food Sources, Deficiency Si...
2. Earth - The Living Planet Module 2ELS
protein biochemistry.ppt for university classes
Q1_LE_Mathematics 8_Lesson 5_Week 5.docx
2. Earth - The Living Planet earth and life
microscope-Lecturecjchchchchcuvuvhc.pptx
Derivatives of integument scales, beaks, horns,.pptx
IFIT3 RNA-binding activity primores influenza A viruz infection and translati...

APIs, APIs and more APIs

  • 1. APIs, APIs and more APIs! Anand Ashok Sawant
  • 3. Software Engineering is the discipline wherein a software engineer “writes a software component that will be combined with components written by other software engineers to build a system”
  • 6. So what’s an API? An Application Programming Interface (API) is a set of routines, protocols, and tools for building software applications
  • 17. Partial Program Analysis (PPA) No support for Java 1.5+
  • 19. Abstract Syntax Tree (AST) parsing
  • 20. Abstract Syntax Tree (AST) parsing
  • 21. Abstract Syntax Tree (AST) parsing No type information
  • 23. Maven POM file <project xmlns=“http://maven.apache.org/POM/4.0.0” … <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> … </dependencies> … </project>
  • 25. Popular JAVA APIs 0 5000 10000 15000 20000 25000 hibernate-entitymanager guava spring-test spring-context log4j junit Number of projects referencing the APIs APIartifactID
  • 27. Data collected API Total Method Invocations Annotation Usages Guava 1,148,412 - Guice 59,097 48,945 Spring 19,894 40,525 Hibernate 196,169 16,259 Easymock 38,523 -
  • 30. Client Lag Time Study Goal: Analyze the upgrade behavior of a client to see if they move to the latest version of an API or not. Outcome: We see that in most cases clients do not transition to the latest version of the API.
  • 32. Research Questions RQ: Do clients of APIs migrate to a new version of the API?
  • 33. Lag time is defined as the amount of time elapsed between a client’s API reference and the release date
  • 40. Projects do not upgrade versions often The latest version is not the most popular version Clients of frequently releasing APIs display less lag time
  • 42. API Usage Study Goal: Measure the number features of an API that are actually used and rank them based on popularity Outcome: We see that very small portion of the APIs are used by clients.
  • 44. RQ: How much of an API is broadly used? Research Questions
  • 45. Hotspot features are those in the top 15% of popularity that is ranked by usage
  • 46. Neutral features are those that are used by clients of an API but do not figure in the top 15% in terms of popularity
  • 47. Coldspot features are those that are not used by any client of the API
  • 53. Small portions of the API are actually used in practice There are very few features that can be marked as hotspots Most features are coldspots Over ~ 90% of popular features can be regarded as core features Newer features have a low adoption percentage
  • 55. API Popularity and Bug Relationship Goal: See if more bug reports emanate from parts of the API that are more popularly used by clients. Outcome: We observe that popular parts of the API are better tested and are in general less buggy than more popular parts of the API.
  • 57. • RQ1: Are tests made for APIs exhaustive? That is do they cover the API artifacts well? • RQ2: Is there a connection between API coverage and popularity of an API artifact? Are popular parts better covered? • RQ3: Is there a connection between bugs in an API and popular parts of the API? Are more bugs reported in popular parts? • RQ4: Are core features of an API the most popular parts? Research Questions
  • 58. Initial Intuition Popular parts of the API Buggy parts of the API
  • 59. Test Coverage of the API
  • 61. Initial Intuition Correct? Popular parts of the API Buggy parts of the API
  • 63. APIs are generally well tested Popular parts of the API appear to be better tested There are fewer bugs that originate from the popular parts
  • 65. API Deprecation Study Goal: Analyze the reaction of an API client to deprecation of an API artifact. Outcome: We see that in most cases clients do not react to a deprecated artifact, in fact they may even add more calls to a deprecated artifact.
  • 66. Deprecation is an attribute applied to a computer software feature, characteristic, or practice to indicate that it should be avoided (often because it is being superseded).
  • 68. Specific dataset Dynamically typed language “Small” dataset Implicit versions
  • 72. Research Questions RQ0: What API versions do clients use? RQ1: How does API method deprecation affect clients? RQ2: What is the scale of reaction in affected clients? RQ3: What proportion of deprecations does affect clients? RQ4: What is the time-frame of reaction in affected clients? RQ5: Do affected clients react similarly?
  • 73. Example API goo boo f oo v4 goo boo f oo goo f oo goo f oo v5 v6 v7 Client 2 used API versions and API methods v6 f oo Client 4 used API versions and API methods v4 v5 v6 boo Client 1 used API versions and API methods v4 f oo f oo Client 5 used API versions and API methods v4 v5 v4 boo timetodeprecation timetoreact Client 3 used API versions and API methods v7v6v4 boo f oo boo boo v5 timetoreact timeto deprecation data collectionpoint & deprecated methods released versions, declared methods,
  • 76. RQ0: What API versions do clients use? Example API goo boo f oo v4 goo boo f oo goo f oo goo f oo v5 v6 v7 Client 2 used API versions and API methods v6 f oo Client 4 used API versions and API methods v4 v5 v6 boo Client 1 used API versions and API methods v4 f oo f oo Client 5 used API versions and API methods v4 v5 v4 boo timetodeprecation timetoreact Client 3 used API versions and API methods v7v6v4 boo f oo boo boo v5 timetoreact timeto deprecation data collectionpoint & deprecated methods released versions, declared methods,
  • 77. RQ0: What API versions do clients use?
  • 80. RQ1: How does API method deprecation affect clients? Example API goo boo f oo v4 goo boo f oo goo f oo goo f oo v5 v6 v7 Client 2 used API versions and API methods v6 f oo Client 4 used API versions and API methods v4 v5 v6 boo Client 1 used API versions and API methods v4 f oo f oo Client 5 used API versions and API methods v4 v5 v4 boo timetodeprecation timetoreact Client 3 used API versions and API methods v7v6v4 boo f oo boo boo v5 timetoreact timeto deprecation data collectionpoint & deprecated methods released versions, declared methods,
  • 81. RQ1: How does API method deprecation affect clients?
  • 85. RQ2: What is the scale of reaction in affected clients? Example API goo boo f oo v4 goo boo f oo goo f oo goo f oo v5 v6 v7 Client 2 used API versions and API methods v6 f oo Client 4 used API versions and API methods v4 v5 v6 boo Client 1 used API versions and API methods v4 f oo f oo Client 5 used API versions and API methods v4 v5 v4 boo timetodeprecation timetoreact Client 3 used API versions and API methods v7v6v4 boo f oo boo boo v5 timetoreact timeto deprecation data collectionpoint & deprecated methods released versions, declared methods,
  • 86. API Affected clients that react Median Max Easymock 17 11 109 Guava 161 3 283 Hibernate 40 5 59 Spring 10 31 131 RQ2: What is the scale of reaction in affected clients?
  • 87. API Potentially affected clients Median Max Easymock 178 55 4,464 Guava 917 12 8,568 Hibernate 521 15 17,471 Spring 41 3 205 RQ2: What is the scale of reaction in affected clients?
  • 90. RQ3: What proportion of deprecations does affect clients? Example API goo boo f oo v4 goo boo f oo goo f oo goo f oo v5 v6 v7 Client 2 used API versions and API methods v6 f oo Client 4 used API versions and API methods v4 v5 v6 boo Client 1 used API versions and API methods v4 f oo f oo Client 5 used API versions and API methods v4 v5 v4 boo timetodeprecation timetoreact Client 3 used API versions and API methods v7v6v4 boo f oo boo boo v5 timetoreact timeto deprecation data collectionpoint & deprecated methods released versions, declared methods,
  • 91. 13% 7% 6% 11% RQ3: What proportion of deprecations does affect clients?
  • 94. RQ4: What is the time-frame of reaction in affected clients? Example API goo boo f oo v4 goo boo f oo goo f oo goo f oo v5 v6 v7 Client 2 used API versions and API methods v6 f oo Client 4 used API versions and API methods v4 v5 v6 boo Client 1 used API versions and API methods v4 f oo f oo Client 5 used API versions and API methods v4 v5 v4 boo timetodeprecation timetoreact Client 3 used API versions and API methods v7v6v4 boo f oo boo boo v5 timetoreact timeto deprecation data collectionpoint & deprecated methods released versions, declared methods,
  • 95. RQ4: What is the time-frame of reaction in affected clients?
  • 97. RQ5: Do all clients react similarly?
  • 101. Deprecation in Java package org.serg; import java.util.Date; public class DateUser { public static void main(String args[]) { Date date = new Date(); int year = date.getYear(); } }pecific
  • 102. Similar to Smalltalk Not many API clients change their version of the API Few clients react to deprecation APIs document deprecated changes well Clients tend to delete references to deprecated entities and not replace them Smalltalk clients actually replace deprecated calls

Editor's Notes

  • #7: What is an API? For some people here that do not know what is going on.
  • #19: Slide with pics of github etc