To react, or not to react: Patterns of reaction to API deprecation
Application Programming Interfaces (API) provide reusable functionality to aid developers in the development process. The features provided by these APIs might change over time as the API evolves. To allow API consumers to peacefully transition from older obsolete features to new features, API produ...
Saved in:
Published in | Empirical software engineering : an international journal Vol. 24; no. 6; pp. 3824 - 3870 |
---|---|
Main Authors | , , |
Format | Journal Article |
Language | English |
Published |
New York
Springer US
01.12.2019
Springer Nature B.V |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Abstract | Application Programming Interfaces (API) provide reusable functionality to aid developers in the development process. The features provided by these APIs might change over time as the API evolves. To allow API consumers to peacefully transition from older obsolete features to new features, API producers make use of the deprecation mechanism that allows them to indicate to the consumer that a feature should no longer be used. The Java language designers noticed that no one was taking these deprecation warnings seriously and continued using outdated features. Due to this, they decided to change the implementation of this feature in Java 9. We question as to what extent this issue exists and whether the Java language designers have a case. We start by identifying the various ways in which an API consumer can react to deprecation. Following this we benchmark the frequency of the reaction patterns by creating a dataset consisting of data mined from 50 API consumers totalling 297,254 GitHub based projects and 1,322,612,567 type-checked method invocations. We see that predominantly consumers do not react to deprecation and we try to explain this behavior by surveying API consumers and by analyzing if the API’s deprecation policy has an impact on the consumers’ decision to react. |
---|---|
AbstractList | Application Programming Interfaces (API) provide reusable functionality to aid developers in the development process. The features provided by these APIs might change over time as the API evolves. To allow API consumers to peacefully transition from older obsolete features to new features, API producers make use of the deprecation mechanism that allows them to indicate to the consumer that a feature should no longer be used. The Java language designers noticed that no one was taking these deprecation warnings seriously and continued using outdated features. Due to this, they decided to change the implementation of this feature in Java 9. We question as to what extent this issue exists and whether the Java language designers have a case. We start by identifying the various ways in which an API consumer can react to deprecation. Following this we benchmark the frequency of the reaction patterns by creating a dataset consisting of data mined from 50 API consumers totalling 297,254 GitHub based projects and 1,322,612,567 type-checked method invocations. We see that predominantly consumers do not react to deprecation and we try to explain this behavior by surveying API consumers and by analyzing if the API’s deprecation policy has an impact on the consumers’ decision to react. |
Author | Bacchelli, Alberto Sawant, Anand Ashok Robbes, Romain |
Author_xml | – sequence: 1 givenname: Anand Ashok orcidid: 0000-0002-5816-8020 surname: Sawant fullname: Sawant, Anand Ashok email: A.A.Sawant@tudelft.nl organization: Software Engineering Research Group Delft University of Technology – sequence: 2 givenname: Romain surname: Robbes fullname: Robbes, Romain organization: Software and Systems Engineering Research Group Free University of Bozen-Bolzano – sequence: 3 givenname: Alberto surname: Bacchelli fullname: Bacchelli, Alberto organization: Departments of Informatics University of Zurich |
BookMark | eNp9kE1LAzEQhoNUsK3-AU8Br0YnH5vNeqvFj0LBHuo5xGxWWjSpSUrx35t1C96EgRneed8ZeCZo5IN3CF1SuKEA9W2iIKUgQBsCTU05OZygMa1qTmpJ5ajMXDHCWSXP0CSlLUCxiWqM7tcBR2dsvsYhYh8yzkfhDq9Mzi76hEM3SJvg-_VstcCt20VnTS-do9POfCR3cexT9Pr4sJ4_k-XL02I-WxIrKM2krS1YkJ0Uby1rHai266wRhjWKO2qNMap1XFWSVa5RSnBwjAM3HVegGqP4FF0Nd3cxfO1dynob9tGXl5pxVkox0bvY4LIxpBRdp3dx82nit6age1Z6YKULK_3LSh9KiA-hVMz-3cW_0_-kfgDHiG1a |
CitedBy_id | crossref_primary_10_1007_s10664_021_10061_x crossref_primary_10_1109_TSE_2021_3055123 crossref_primary_10_1109_MS_2021_3103134 crossref_primary_10_1007_s11831_022_09864_y crossref_primary_10_1002_spe_2906 crossref_primary_10_1002_spe_2928 |
Cites_doi | 10.1109/CSMR.2013.14 10.1109/MobileSoft.2015.9 10.1145/1368088.1368153 10.1109/ICSM.2013.18 10.1145/1137983.1137997 10.1007/s10664-015-9411-7 10.1007/s10664-016-9444-6 10.1145/2393596.2393662 10.1109/TSE.2014.2367027 10.1109/TSE.2007.70747 10.1109/SANER.2016.99 10.1109/WCRE.2011.24 10.1145/1869459.1869486 10.1145/2950290.2950325 10.1007/s11219-013-9221-3 10.1086/209351 10.1109/ICSE.2009.5070565 10.1145/1062455.1062512 10.1007/s10664-017-9554-9 10.1109/ICSM.2012.6405296 10.1002/smr.328 10.1016/0191-8869(86)90014-0 10.1007/s10664-014-9325-9 10.1007/s10664-017-9521-5 10.1109/ICSME.2016.64 10.1007/978-1-4842-0076-6 10.1145/1806799.1806848 10.1145/3180155.3180170 10.1109/ICSE.2007.71 10.1109/SCAM.2014.30 10.1109/SANER.2017.7884616 10.1109/ICSME.2018.00011 10.1109/SCAM.2014.33 10.1016/j.jss.2016.04.008 10.1145/1289971.1290000 10.1109/MSR.2012.6224294 10.1145/1869459.1869518 10.1145/1368088.1368154 10.1145/2597008.2597155 10.1109/ICSM.2015.7332471 10.1145/1176617.1176671 10.1016/j.jss.2017.12.007 10.1109/ICSM.1996.565039 10.1145/2950290.2950306 10.1145/2597073.2597074 10.1007/978-3-662-45391-9_17 10.1145/1806799.1806867 |
ContentType | Journal Article |
Copyright | The Author(s) 2019 Empirical Software Engineering is a copyright of Springer, (2019). All Rights Reserved. © 2019. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License. |
Copyright_xml | – notice: The Author(s) 2019 – notice: Empirical Software Engineering is a copyright of Springer, (2019). All Rights Reserved. © 2019. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License. |
DBID | C6C AAYXX CITATION 7SC 8FD 8FE 8FG ABJCF AFKRA ARAPS BENPR BGLVJ CCPQU DWQXO HCIFZ JQ2 L6V L7M L~C L~D M7S P5Z P62 PQEST PQQKQ PQUKI PRINS PTHSS S0W |
DOI | 10.1007/s10664-019-09713-w |
DatabaseName | Springer Open Access CrossRef Computer and Information Systems Abstracts Technology Research Database ProQuest SciTech Collection ProQuest Technology Collection Materials Science & Engineering Collection ProQuest Central Advanced Technologies & Aerospace Database (1962 - current) ProQuest Central Technology Collection ProQuest One Community College ProQuest Central SciTech Premium Collection ProQuest Computer Science Collection ProQuest Engineering Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional Engineering Database Advanced Technologies & Aerospace Database ProQuest Advanced Technologies & Aerospace Collection ProQuest One Academic Eastern Edition (DO NOT USE) ProQuest One Academic ProQuest One Academic UKI Edition ProQuest Central China Engineering Collection DELNET Engineering & Technology Collection |
DatabaseTitle | CrossRef Technology Collection Technology Research Database Computer and Information Systems Abstracts – Academic ProQuest Advanced Technologies & Aerospace Collection ProQuest Computer Science Collection Computer and Information Systems Abstracts SciTech Premium Collection ProQuest One Community College ProQuest Central China ProQuest Central ProQuest Engineering Collection ProQuest Central Korea Advanced Technologies Database with Aerospace Engineering Collection Advanced Technologies & Aerospace Collection Engineering Database ProQuest One Academic Eastern Edition ProQuest Technology Collection ProQuest SciTech Collection Computer and Information Systems Abstracts Professional Advanced Technologies & Aerospace Database ProQuest One Academic UKI Edition ProQuest DELNET Engineering and Technology Collection Materials Science & Engineering Collection ProQuest One Academic |
DatabaseTitleList | Technology Collection |
Database_xml | – sequence: 1 dbid: C6C name: Springer Open Access url: http://www.springeropen.com/ sourceTypes: Publisher – sequence: 2 dbid: 8FG name: ProQuest Technology Collection url: https://search.proquest.com/technologycollection1 sourceTypes: Aggregation Database |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISSN | 1573-7616 |
EndPage | 3870 |
ExternalDocumentID | 10_1007_s10664_019_09713_w |
GroupedDBID | -4Z -59 -5G -BR -EM -Y2 -~C .86 .DC .VR 06D 0R~ 0VY 199 1N0 1SB 2.D 203 28- 29G 2J2 2JN 2JY 2KG 2LR 2P1 2VQ 2~H 30V 4.4 406 408 409 40D 40E 5GY 5QI 5VS 67Z 6NX 78A 8FE 8FG 8TC 8UJ 95- 95. 95~ 96X AABHQ AABYN AAFGU AAHNG AAIAL AAJKR AANZL AAOBN AAPBV AARHV AARTL AATNV AATVU AAUYE AAWCG AAWWR AAYFA AAYIU AAYOK AAYQN AAYTO ABBBX ABBXA ABDZT ABECU ABFGW ABFTD ABFTV ABHLI ABHQN ABJCF ABJNI ABJOX ABKAS ABKCH ABKTR ABMNI ABMQK ABNWP ABQBU ABSXP ABTEG ABTHY ABTKH ABTMW ABULA ABWNU ABXPI ACBMV ACBRV ACBXY ACBYP ACGFS ACHSB ACHXU ACIGE ACIPQ ACIWK ACKNC ACMDZ ACMLO ACOKC ACOMO ACSNA ACTTH ACVWB ACWMK ADGRI ADHHG ADHIR ADIMF ADINQ ADKNI ADKPE ADMDM ADOXG ADRFC ADTPH ADURQ ADYFF ADZKW AEBTG AEEQQ AEFIE AEFTE AEGAL AEGNC AEJHL AEJRE AEKMD AENEX AEOHA AEPYU AESKC AESTI AETLH AEVLU AEVTX AEXYK AEYWE AFEXP AFGCZ AFKRA AFLOW AFNRJ AFQWF AFWTZ AFZKB AGAYW AGDGC AGGBP AGGDS AGJBK AGMZJ AGQMX AGWIL AGWZB AGYKE AHAVH AHBYD AHKAY AHSBF AHYZX AIAKS AIIXL AILAN AIMYW AITGF AJBLW AJDOV AJRNO AJZVZ AKQUC ALMA_UNASSIGNED_HOLDINGS ALWAN AMKLP AMXSW AMYLF AMYQR AOCGG ARAPS ARMRJ ASPBG AVWKF AXYYD AYJHY AZFZN B-. BA0 BBWZM BDATZ BENPR BGLVJ BGNMA C6C CAG CCPQU COF CS3 CSCUP DDRTE DL5 DNIVK DPUIP DU5 EBLON EBS EIOEI EJD ESBYG FEDTE FERAY FFXSO FIGPU FINBP FNLPD FRRFC FSGXE FWDCC GGCAI GGRSB GJIRD GNWQR GQ6 GQ7 GQ8 GXS HCIFZ HF~ HG5 HG6 HMJXF HQYDN HRMNR HVGLF HZ~ I09 IHE IJ- IKXTQ ITM IWAJR IXC IZIGR IZQ I~X I~Z J-C J0Z JBSCW JCJTX JZLTJ KDC KOV KOW L6V LAK LLZTM M4Y M7S MA- N2Q NB0 NDZJH NPVJJ NQJWS NU0 O9- O93 O9G O9I O9J OAM P19 P62 P9O PF0 PT4 PT5 PTHSS Q2X QOK QOS R4E R89 R9I RHV RNI RNS ROL RPX RSV RZC RZE RZK S0W S16 S1Z S26 S27 S28 S3B SAP SCJ SCLPG SCO SDH SDM SHX SISQX SJYHP SNE SNPRN SNX SOHCF SOJ SPISZ SRMVM SSLCW STPWE SZN T13 T16 TSG TSK TSV TUC U2A UG4 UNUBA UOJIU UTJUX UZXMN VC2 VFIZW W23 W48 WK8 YLTOR Z45 Z7R Z7S Z7V Z7X Z7Z Z81 Z83 Z86 Z88 Z8M Z8N Z8P Z8R Z8T Z8U Z8W Z92 ZMTXR ~EX AACDK AAEOY AAJBT AASML AAYXX ABAKF ACAOD ACDTI ACZOJ AEFQL AEMSY AFBBN AGQEE AGRTI AIGIU CITATION H13 7SC 8FD DWQXO JQ2 L7M L~C L~D PQEST PQQKQ PQUKI PRINS |
ID | FETCH-LOGICAL-c411t-d7c0c06f64bd2de08dffca4a2983e1caaa8de385625e988430e2303af38089a83 |
IEDL.DBID | BENPR |
ISSN | 1382-3256 |
IngestDate | Fri Sep 13 07:34:05 EDT 2024 Thu Sep 12 18:57:06 EDT 2024 Sat Dec 16 12:00:39 EST 2023 |
IsDoiOpenAccess | true |
IsOpenAccess | true |
IsPeerReviewed | true |
IsScholarly | true |
Issue | 6 |
Keywords | Java Application programming interface API usage Deprecation |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-c411t-d7c0c06f64bd2de08dffca4a2983e1caaa8de385625e988430e2303af38089a83 |
ORCID | 0000-0002-5816-8020 |
OpenAccessLink | https://proxy.k.utb.cz/login?url=http://link.springer.com/10.1007/s10664-019-09713-w |
PQID | 2322328248 |
PQPubID | 326341 |
PageCount | 47 |
ParticipantIDs | proquest_journals_2322328248 crossref_primary_10_1007_s10664_019_09713_w springer_journals_10_1007_s10664_019_09713_w |
PublicationCentury | 2000 |
PublicationDate | 2019-12-01 |
PublicationDateYYYYMMDD | 2019-12-01 |
PublicationDate_xml | – month: 12 year: 2019 text: 2019-12-01 day: 01 |
PublicationDecade | 2010 |
PublicationPlace | New York |
PublicationPlace_xml | – name: New York – name: Dordrecht |
PublicationSubtitle | An International Journal |
PublicationTitle | Empirical software engineering : an international journal |
PublicationTitleAbbrev | Empir Software Eng |
PublicationYear | 2019 |
Publisher | Springer US Springer Nature B.V |
Publisher_xml | – name: Springer US – name: Springer Nature B.V |
References | Brooks Jr, FP (1995) The mythical Man-Month: Essays on software engineering, Anniversary Edition, 2/E Pearson Education India Schäfer T, Jonas J, Mezini M (2008) Mining framework usage changes from instantiation code. In: Proceedings of 30th International Conference on Software Engineering (ICSE), pp 471–480 Wang S, Keivanloo I, Zou Y (2014) How do developers react to restful api evolution? Service-Oriented Computing:245–259 Marks S (2017) JEP 277: Enhanced Deprecation, http://openjdk.java.net/jeps/277, 2014–2017 last accessed Spencer D, Warfel T (2004) Card sorting: a definitive guide. Boxes and Arrows:2 Chacon S, Straub B (2014) Pro git, Apress Sawant AA, Bacchelli A (2017) Fine-grape: fine-grained api usage extractor–an approach and dataset to investigate api usage, Empirical Software Engineering, pp 1–24 Decan A, Mens T, Claes M, Grosjean P (2016) eLick When github meets CRAN: an analysis of inter-repository package dependency problems. In: Proceedings of the 23rd IEEE International Conference on Software Analysis. Evolution, and Reengineering (SANER,) pp 493–504 Hora AC, Valente MT, Robbes R, Anquetil N (2016) When should internal interfaces be promoted to public? In: Proceedings of the 24th ACM, SIGSOFT International Symposium on Foundations of Software Engineering (FSE), pp 278–289 BholowaliaPKumarAEbk-means: a clustering technique based on elbow method and k-means in wsnInt J Comput Appl20149105 WuWKhomhFAdamsBGuéhéneucY-GAntoniolGAn exploratory study of api changes and usages based on apache and eclipse ecosystemsEmpir Softw Eng20162162366241210.1007/s10664-015-9411-7 Jansen H (2010) The logic of qualitative survey research and its position in the field of social research methods, In Forum Qualitative Sozialforschung/Forum: Qualitative Social Research, vol 11 Holmes R, Walker RJ (2010) Customized awareness: recommending relevant external change events. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1. ACM, pp 465–474 Cossette BE, Walker RJ (2012) Seeking the ground truth: a retroactive study on the evolution and migration of software libraries. In: Proceedings of 20th International Symposium on the Foundations of Software Engineering (FSE). ACM, pp 55 Kalliamvakou E, Gousios G, Blincoe K, Singer L, German DM, Damian D (2014) The promises and perils of mining github. In: Proceedings of the 11th working conference on mining software repositories. ACM, pp 92–101 Raemaekers S, van Deursen A, Visser J (2012) Measuring software library stability through historical version analysis. In: 28th IEEE International Conference onSoftware Maintenance (ICSM). IEEE, pp 378–387 Eclipse foundation (2018) Eclipse ide, http://www.eclipse.org Wu W, Guéhéneuc Y-G, Antoniol G, Kim M (2010) Aura: a hybrid approach to identify framework evolution. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1. ACM, pp 325–334 Xavier L, Brito A, Hora AC, Valente MT (2017) Historical and impact analysis of API breaking changes: A large-scale study. In: Proceedings of the 24th IEEE International Conference on Software Analysis. Evolution and Reengineering, (SANER,) pp 138–147 Chow K, Notkin D (1996) Semi-automatic update of applications in response to library changes. In: Proceedings of International Conference on Software Maintenance (ICSM), pp 359–368 Espinha Tiago, Zaidman Andy, Gross Hans-Gerhard (2014) Web api growing pains: Stories from client developers and their code. In: 2014 Software Evolution week-IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE). IEEE, pp 84–93 KulaRGGermanDMOuniAIshioTInoueKDo developers update their library dependencies?Empir Softw Eng201823138441710.1007/s10664-017-9521-5 BusingeJSerebrenikAvan den BrandMGJEclipse api usage: the good and the badSoftw Qual J201323110714110.1007/s11219-013-9221-3 Hora A, Robbes R, Anquetil N, Etien A, Ducasse S, Valente MT (2015) How do developers react to api evolution? the pharo ecosystem case. In: 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, pp 251–260 Linares-Vásquez M, Bavota G, Di Penta M, Oliveto R, Poshyvanyk D (2014) How do api changes trigger stack overflow discussions? a study on the android sdk. In: Proceedings of 22nd International Conference on Program Comprehension (ICPC). ACM, pp 83–94 Brito G, Hora A, Valente MT, Robbes R (2016a) Do developers deprecate apis with replacement messages? a large-scale analysis on java systems. In: 23nd IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016, Osaka, p to appear McDonnell T, Ray B, Kim M (2013) An empirical study of API stability and adoption in the android ecosystem. In: Proceedings of 29th IEEE International Conference on Software Maintenance (ICSM). IEEE, pp 70–79 Henkel J, Diwan A (2005) Catchup!: capturing and replaying refactorings to support api evolution. In: Proceedings of the 27th international conference on Software engineering. ACM, pp 274–283 Decan A, Mens T, Claes M (2017) eLick An empirical comparison of dependency issues in OSS packaging ecosystems. In: Proceedings of the 24th IEEE International Conference on Software Analysis. Evolution and Reengineering (SANER,) pp 2–12 Bogart C, Kästner C, Herbsleb J, Thung F (2016a) How to break an api: cost negotiation and community values in three software ecosystems. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, pp 109–120 DigDJohnsonRHow do apis evolve? a story of refactoringJ Softw Maint Evol: Res Pract20061828310710.1002/smr.328 Sawant AA, Robbes R, Bacchelli A (2016) On the reaction to deprecation of 25,357 clients of 4 + 1 popular java apis. In: 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, pp 400–410 Brooks FP (1975) No silver bullet. Software state-of-the-art:14–29 Robbes R, Lungu M, Röthlisberger D (2012) How do developers react to api deprecation?: the case of a smalltalk ecosystem. In: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. ACM, pp 56 BavotaGabrieleLinares-VasquezMarioBernal-CardenasCarlos EduardoPentaMassimiliano DiOlivetoRoccoPoshyvanykDenysThe Impact of API Change- and Fault-Proneness on the User Ratings of Android AppsIEEE Transactions on Software Engineering201541438440710.1109/TSE.2014.2367027 TeytonCFalleriJ-RPalyartMBlancXA study of library migrations in javaJ Softw: Evol Process2014261110301052 Kapur P, Cossette B, Walker RJ (2010) Refactoring references for library migration. ACM, vol 45 BavotaGCanforaGDi PentaMOlivetoRPanichellaSHow the apache community upgrades dependencies: an evolutionary studyEmpir Softw Eng20152051275131710.1007/s10664-014-9325-9 Xie T, Pei J (2006) Mapo: Mining api usages from open source repositories. In: Proceedings of the 2006 international workshop on Mining software repositories. ACM, pp 54–57 Sawant AA, Huang G, Vilen G, Stojkovski S, Bacchelli A (2018a) Why are features deprecated? an investigation into the motivation behind deprecation. In: Proceedings of the 34th IEEE International Conference on Software Maintainance and Evolution. IEEE, p in print Gousios G, Spinellis D (2012) Ghtorrent: Github’s data from a firehose. In: Proceedings of the 9th IEEE Working Conference on Mining Software Repositories. IEEE Press, pp 12–21 Raemaekers S, Van Deursen A, Visser J (2014) Semantic versioning versus breaking changes: A study of the maven repository. In: Technical Report Series TUD-SERG-2014-016 Accepted for publication by the 14th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2014). Delft University of Technology, Software Engineering Research Group, Victoria Brito G, Hora A, Valente MT, Robbes R (2016b) Do developers deprecate apis with replacement messages? a large-scale analysis on java systems. In: 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER). IEEE, vol 1, pp 360–369 SawantAARobbesRBacchelliAOn the reaction to deprecation of clients of 4 + 1 popular java apis and the jdkEmpir Softw Eng20182342158219710.1007/s10664-017-9554-9 Rose JR (2017) How and when to deprecate apis, http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase11-419415.html#7122-jdk-1.1-doc-oth-JPR, 1996 last accessed XingZStrouliaEApi-evolution support with diff-catchupIEEE Trans Softw Eng2007331281883610.1109/TSE.2007.70747 Dagenais B, Robillard MP (2009) Semdiff: Analysis and recommendation support for api evolution. In: Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society. 599–602 RaemaekersSvan DeursenAVisserJSemantic versioning and impact of breaking changes in the maven repositoryJ Syst Softw201712914015810.1016/j.jss.2016.04.008 Espinha T, Zaidman A, Gross H-G (2015) Web api fragility: How robust is your mobile application?. In: Proceedings of the 2nd International Conference on Mobile Software Engineering and Systems (MOBILESoft). IEEE, pp 12–21 Bajracharya S, Ngo T, Linstead E, Dou Y, Rigor P, Baldi P, Lopes C (2006) Sourcerer: a search engine for open source code supporting structure-based search. In: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. ACM, pp 681– 682 FisherRJSocial desirability bias and the validity of indirect questioningJ Consum Res199320230331510.1086/209351 Businge J, Serebrenik A, van den Brand M (2013b) Analyzing the eclipse API usage: Putting the developer in the loop. In: Proceedings of the 17th European Conference on Software Maintenance and Reengineering, CSMR, pp 37–46 Perkins JH (2005) Automatically generating refactorings to support api evolution. In: ACM SIGSOFT Software Engineering Notes. ACM, vol 31, pp 111–114 Sawant AA, Aniche M, van Deursen A, Bacchelli A (2018b) Understanding developers’ needs on deprecation as a language feature. In: Pro 9713_CR24 9713_CR26 9713_CR28 9713_CR29 C Teyton (9713_CR56) 2014; 26 9713_CR1 9713_CR5 9713_CR8 9713_CR61 9713_CR6 RJ Fisher (9713_CR25) 1993; 20 9713_CR62 9713_CR7 9713_CR20 9713_CR22 9713_CR23 9713_CR35 9713_CR36 9713_CR38 9713_CR39 P Bholowalia (9713_CR4) 2014; 9 RG Kula (9713_CR37) 2018; 23 J Businge (9713_CR12) 2013; 23 Z Xing (9713_CR63) 2007; 33 9713_CR30 9713_CR31 AA Sawant (9713_CR51) 2018; 23 9713_CR32 9713_CR33 9713_CR34 9713_CR46 9713_CR47 9713_CR48 9713_CR49 S Raemaekers (9713_CR45) 2017; 129 Gabriele Bavota (9713_CR3) 2015; 41 G Bavota (9713_CR2) 2015; 20 9713_CR40 9713_CR41 9713_CR42 9713_CR43 9713_CR44 9713_CR13 9713_CR57 9713_CR14 9713_CR58 9713_CR15 9713_CR59 9713_CR16 9713_CR17 9713_CR18 9713_CR19 G Brito (9713_CR9) 2018; 137 D Dig (9713_CR21) 2006; 18 9713_CR50 A Furnham (9713_CR27) 1986; 7 9713_CR52 9713_CR53 9713_CR10 9713_CR54 W Wu (9713_CR60) 2016; 21 9713_CR11 9713_CR55 |
References_xml | – ident: 9713_CR10 – ident: 9713_CR13 doi: 10.1109/CSMR.2013.14 – ident: 9713_CR24 doi: 10.1109/MobileSoft.2015.9 – ident: 9713_CR20 – ident: 9713_CR54 doi: 10.1145/1368088.1368153 – ident: 9713_CR40 doi: 10.1109/ICSM.2013.18 – ident: 9713_CR62 doi: 10.1145/1137983.1137997 – volume: 21 start-page: 2366 issue: 6 year: 2016 ident: 9713_CR60 publication-title: Empir Softw Eng doi: 10.1007/s10664-015-9411-7 contributor: fullname: W Wu – ident: 9713_CR47 – ident: 9713_CR50 doi: 10.1007/s10664-016-9444-6 – volume: 26 start-page: 1030 issue: 11 year: 2014 ident: 9713_CR56 publication-title: J Softw: Evol Process contributor: fullname: C Teyton – ident: 9713_CR46 doi: 10.1145/2393596.2393662 – volume: 41 start-page: 384 issue: 4 year: 2015 ident: 9713_CR3 publication-title: IEEE Transactions on Software Engineering doi: 10.1109/TSE.2014.2367027 contributor: fullname: Gabriele Bavota – volume: 33 start-page: 818 issue: 12 year: 2007 ident: 9713_CR63 publication-title: IEEE Trans Softw Eng doi: 10.1109/TSE.2007.70747 contributor: fullname: Z Xing – ident: 9713_CR8 doi: 10.1109/SANER.2016.99 – ident: 9713_CR11 – ident: 9713_CR33 doi: 10.1109/WCRE.2011.24 – volume: 9 start-page: 105 year: 2014 ident: 9713_CR4 publication-title: Int J Comput Appl contributor: fullname: P Bholowalia – ident: 9713_CR41 doi: 10.1145/1869459.1869486 – ident: 9713_CR6 doi: 10.1145/2950290.2950325 – ident: 9713_CR42 – volume: 23 start-page: 107 issue: 1 year: 2013 ident: 9713_CR12 publication-title: Softw Qual J doi: 10.1007/s11219-013-9221-3 contributor: fullname: J Businge – volume: 20 start-page: 303 issue: 2 year: 1993 ident: 9713_CR25 publication-title: J Consum Res doi: 10.1086/209351 contributor: fullname: RJ Fisher – ident: 9713_CR7 doi: 10.1109/SANER.2016.99 – ident: 9713_CR18 doi: 10.1109/ICSE.2009.5070565 – ident: 9713_CR29 doi: 10.1145/1062455.1062512 – volume: 23 start-page: 2158 issue: 4 year: 2018 ident: 9713_CR51 publication-title: Empir Softw Eng doi: 10.1007/s10664-017-9554-9 contributor: fullname: AA Sawant – ident: 9713_CR43 doi: 10.1109/ICSM.2012.6405296 – volume: 18 start-page: 83 issue: 2 year: 2006 ident: 9713_CR21 publication-title: J Softw Maint Evol: Res Pract doi: 10.1002/smr.328 contributor: fullname: D Dig – volume: 7 start-page: 385 issue: 3 year: 1986 ident: 9713_CR27 publication-title: Person Individ Differ doi: 10.1016/0191-8869(86)90014-0 contributor: fullname: A Furnham – volume: 20 start-page: 1275 issue: 5 year: 2015 ident: 9713_CR2 publication-title: Empir Softw Eng doi: 10.1007/s10664-014-9325-9 contributor: fullname: G Bavota – volume: 23 start-page: 384 issue: 1 year: 2018 ident: 9713_CR37 publication-title: Empir Softw Eng doi: 10.1007/s10664-017-9521-5 contributor: fullname: RG Kula – ident: 9713_CR39 – ident: 9713_CR19 – ident: 9713_CR49 doi: 10.1109/ICSME.2016.64 – ident: 9713_CR14 doi: 10.1007/978-1-4842-0076-6 – ident: 9713_CR58 doi: 10.1145/1806799.1806848 – ident: 9713_CR16 – ident: 9713_CR53 doi: 10.1145/3180155.3180170 – ident: 9713_CR22 doi: 10.1109/ICSE.2007.71 – ident: 9713_CR26 – ident: 9713_CR44 doi: 10.1109/SCAM.2014.30 – ident: 9713_CR61 doi: 10.1109/SANER.2017.7884616 – ident: 9713_CR52 doi: 10.1109/ICSME.2018.00011 – ident: 9713_CR59 doi: 10.1109/SCAM.2014.33 – volume: 129 start-page: 140 year: 2017 ident: 9713_CR45 publication-title: J Syst Softw doi: 10.1016/j.jss.2016.04.008 contributor: fullname: S Raemaekers – ident: 9713_CR48 doi: 10.1145/1289971.1290000 – ident: 9713_CR5 doi: 10.1145/2950290.2950325 – ident: 9713_CR34 – ident: 9713_CR28 doi: 10.1109/MSR.2012.6224294 – ident: 9713_CR55 – ident: 9713_CR36 doi: 10.1145/1869459.1869518 – ident: 9713_CR17 doi: 10.1145/1368088.1368154 – ident: 9713_CR38 doi: 10.1145/2597008.2597155 – ident: 9713_CR31 doi: 10.1109/ICSM.2015.7332471 – ident: 9713_CR1 doi: 10.1145/1176617.1176671 – volume: 137 start-page: 306 year: 2018 ident: 9713_CR9 publication-title: J Syst Softw doi: 10.1016/j.jss.2017.12.007 contributor: fullname: G Brito – ident: 9713_CR15 doi: 10.1109/ICSM.1996.565039 – ident: 9713_CR23 – ident: 9713_CR32 doi: 10.1145/2950290.2950306 – ident: 9713_CR35 doi: 10.1145/2597073.2597074 – ident: 9713_CR57 doi: 10.1007/978-3-662-45391-9_17 – ident: 9713_CR30 doi: 10.1145/1806799.1806867 |
SSID | ssj0009745 |
Score | 2.3526623 |
Snippet | Application Programming Interfaces (API) provide reusable functionality to aid developers in the development process. The features provided by these APIs might... |
SourceID | proquest crossref springer |
SourceType | Aggregation Database Publisher |
StartPage | 3824 |
SubjectTerms | Application programming interface Compilers Computer Science Consumers Data mining Designers Interpreters Java Programming Languages Software Engineering/Programming and Operating Systems Surveying |
SummonAdditionalLinks | – databaseName: SpringerLINK - Czech Republic Consortium dbid: AGYKE link: http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV07T8MwED5Bu7BQnqJQkAc2miqJHcdhK6hQQKAOrVSmyK8sSAlqU1Xi12PnofAcqmTyRZZyZ9_D_u4O4FJ72jck4VAdaocIn1g9GDrcZSKQVIjItbnDzy90PCOP82De5HEXYPf6RrJQ1F9y3Si1gAmL8DGRlbPehnZg21K3oD28f30aNbV2w6I3sa2u52Bj0qtcmb9n-W6PGifzx71oYW7uOjCtk3ZKlMnbYJWLgfz4XcNxkz_Zg93K_UTDcr3sw5ZOD6BTt3ZA1U4_hJtphow7KfM-yhYozXKUVwPXaFKU5EyXKEvKISNaSx5OHlABrC1PAY9gdjea3o6dqt2CI4nn5Y4KpStdmlAilK-0y1SSSE64HzGsPck5Z0pjZiMmHTFGsKtN_IJ5gpnLIs7wMbTSLNUngEjIhcAJjRKVEKNDIqUCxrF5jIfHhOrCVc30-L2sqhE39ZMte2LDnrhgT7zuQq-WS1ztsGVsPEHzMp-wLvRrPjfk_2c73ezzM9jxragKBEsPWvlipc-NH5KLi2rdfQKRgNNC priority: 102 providerName: Springer Nature |
Title | To react, or not to react: Patterns of reaction to API deprecation |
URI | https://link.springer.com/article/10.1007/s10664-019-09713-w https://www.proquest.com/docview/2322328248/abstract/ |
Volume | 24 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwfR3LSsNAcLDtxYtvsVrLHrzZpUl2u9l4kVpaq2IpYqGewr5yTHxE_H130w1BQUnIYQb2MJOd9wPgwoQmsiiJmYkNpjKiTg7GWARcjhSTMglc7_Djgs1X9H49Wm_BvO6FcWWVtUysBLUulIuRD63mty-PKB8K6aIAqhxev75htz_K5Vn9Mo0WdKKQuoRt52a6WD41A3jjamGxG7mHidXzvoHGt9Ex5moxXPGQddrw108l1Viev5KllQ6a7cGONx7ReMPtfdgy-QHs1osZkL-nh3DzXCBrDKpygIp3lBclKj3gCi2rgZr5ByqyDcgyxqHHyztUlcVuYnhHsJpNnydz7JclYEXDsMQ6VoEKWMao1JE2AddZpgQVUcKJCZUQgmtDuPN3TMI5JYGx3gcRGeEBTwQnx9DOi9ycAKKxkJJkLMl0Rq0ESLQecUHsY-0zLnUXLmvqpK-bmRhpM_3Y0TK1tEwrWqZfXejVBEz9_fhIG252YVATtUH_fdrp_6edwXbk-FjVm_SgXb5_mnNrNZSyDy0-u-1DZ3z78jDt-9_DQidsYr-raPwNwJHCvA |
link.rule.ids | 315,786,790,12792,21416,27957,27958,33408,33779,41116,41155,41558,42185,42224,42627,43635,43840,51611,52146,52269,74392,74659 |
linkProvider | ProQuest |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwfV3NT8MgFCc6D3rx2zidysGbI7aFUerFqHFuui07bMluBAoc27nV7N8XWppGE0174iUcfo_3Be8DgFsd6siSJKI61ojIiDg9GCMRMNlLqZRJ4GqHxxM6mJP3RW_hL9zWPq2y1omlolZ56u7I763ltz-LCHtcfiI3Ncq9rvoRGttgh2BrOl2leP-tabobl0OKXZs9hK1t90UzvnSOUpd_4RKGbKCGNj8NU-Nt_nogLe1O_xDse4cRPlUcPgJbOjsGB_UwBuhl8wQ8z3JoHcC06MJ8BbO8gIVfeIDTsolmtoa5qZYsMxz5aTqEZSpsdW93Cub919nLAPkBCSglYVggFadBGlBDiVSR0gFTxqSCiChhWIepEIIpjZmLcXTCGMGBthEHFgazgCWC4TPQyvJMnwNIYiElNjQxyhAr9YlSPSaw_axPxqRqg7saHb6s-mDwpuOxw5JbLHmJJd-0QacGkHuZWPOGg23QrUFtyH_vdvH_bjdgdzAbj_hoOPm4BHuR42mZb9IBrWL1pa-s11DI6_JofAN5eLxJ |
linkToPdf | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwfV07T8MwELagSIiFN6JQwAMbtUhj13FYUHmElkfVoZW6WXZsj0lpg_r3sRNHEUigZPJJHu7su7P93X0AXOueDq1IIqojjYgMifODERIBk_2UShkHrnb4Y0yHM_I67889_mnlYZW1TywdtcpTd0d-ayO__VlI2K3xsIjJU3K_-ESOQcq9tHo6jU2w5ZJsx2bAkpemAW9UEha7lnsI2zjvC2h8GR2lDovhwEP20IbWP4NUk3n-eiwtY1CyD3Z98ggHlbUPwIbODsFeTcwA_T49Ag_THNpkMC26MF_CLC9g4Qfu4KRsqJmtYG6qIWsYJx5MRrCExVZ3eMdgljxPH4fIkyWglPR6BVJRGqQBNZRIFSodMGVMKogIY4Z1LxVCMKUxc-cdHTNGcKDt6QMLg1nAYsHwCWhleaZPASSRkBIbGhtliPUAsVJ9JrD9bH7GpGqDm1o7fFH1xOBN92OnS251yUtd8nUbdGoFcr8_VryxZht0a6U24r9nO_t_tiuwbVcFfx-N387BTuhMWkJPOqBVLL_0hU0gCnlZroxvVeTAfg |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=To+react%2C+or+not+to+react%3A+Patterns+of+reaction+to+API+deprecation&rft.jtitle=Empirical+software+engineering+%3A+an+international+journal&rft.au=Anand+Ashok+Sawant&rft.au=Robbes%2C+Romain&rft.au=Bacchelli%2C+Alberto&rft.date=2019-12-01&rft.pub=Springer+Nature+B.V&rft.issn=1382-3256&rft.eissn=1573-7616&rft.volume=24&rft.issue=6&rft.spage=3824&rft.epage=3870&rft_id=info:doi/10.1007%2Fs10664-019-09713-w&rft.externalDBID=HAS_PDF_LINK |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1382-3256&client=summon |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1382-3256&client=summon |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1382-3256&client=summon |