Why do they ask? An exploratory study of crowd discussions about Android application programming interface in stack overflow

Qiang Fan , Tao Wang , Cheng Yang , Gang Yin , Yue Yu , Huai-min Wang

Journal of Central South University ›› 2019, Vol. 26 ›› Issue (9) : 2432 -2446.

PDF
Journal of Central South University ›› 2019, Vol. 26 ›› Issue (9) : 2432 -2446. DOI: 10.1007/s11771-019-4185-5
Article

Why do they ask? An exploratory study of crowd discussions about Android application programming interface in stack overflow

Author information +
History +
PDF

Abstract

Nowadays, more and more Android developers prefer to seek help from Q&A website like Stack Overflow, despite the rich official documentation. Several researches have studied the limitations of the official application programming interface (API) documentations and proposed approaches to improve them. However, few of them digged into the requirements of the third-party developers to study this. In this work, we gain insight into this question from multidimensional perspectives of API developers and API users by a kind of cross-validation. We propose a hybrid approach, which combines manual inspection on artifacts and online survey on corresponding developers, to explore the different focus between these two types of stakeholders. In our work, we manually inspect 1000 posts and receive 319 questionnaires in total. Through the mutual verification of the inspection and survey process, we found that the users are more concerned with the usage of API, while the official documentation mainly provides functional description. Furthermore, we identified 9 flaws of the official documentation and summarized 12 aspects (from the content to the representation) for promotion to improve the official API documentations.

Keywords

API documentation / Android / online survey / Stack Overflow

Cite this article

Download citation ▾
Qiang Fan, Tao Wang, Cheng Yang, Gang Yin, Yue Yu, Huai-min Wang. Why do they ask? An exploratory study of crowd discussions about Android application programming interface in stack overflow. Journal of Central South University, 2019, 26(9): 2432-2446 DOI:10.1007/s11771-019-4185-5

登录浏览全文

4963

注册一个新账户 忘记密码

References

[1]

GentlemanR C, LareyV J, BatesD M, BolstadB, DettlingM, DudoitS, EllisB, GautierL, GeY, GentryJ, HornikK, HothornT, HuberW, IacusS, IrizarryR, LeischF, LiC, MaechlerM, RossiniA J, SawitzkiG, SmithC, SmythG, TierneyL, YangJ Y H, ZhangJ. Bioconductor: Open software development for computational biology and bioinformatics [J]. Genome Biology, 2004, 5(10): R80

[2]

Forward, LethbridgeT C. The relevance of software documentation, tools and technologies: A survey [C]//. Proceedings of the 2002 ACM Symposium on Document Engineering. ACM, 200226-33

[3]

RoehmT, TiarksR, KoschkeR, MaalejW. How do professional developers comprehend software? [C]//. Proceedings of the 34th International Conference on Software Engineering. IEEE, 2012255265

[4]

DekelU, HerbslebJ D. Improving API documentation usability with knowledge pushing [C]//. Proceedings of the 31st International Conference on Software Engineering. IEEE Computer Society, 2009320330

[5]

ZhongH, ZhangL, XieT, MeiH. Inferring resource specifications from natural language API documentation [C]//. 24th IEEE ACM International Conference IEEE, 2009307318

[6]

ChenC, ZhangK. Who asked what: Integrating crowd sourced FAQ s into API documentation [C]//. roceedings of the 36th International Conference on Software Engineering. ACM, 2014456459

[7]

YinG, WangT, WangH, FanQ, ZhangY, YuY, YangC. OSSEAN: Mining crowd wisdom in open source communities [C]//. Service-Oriented System Engineering (SOSE). IEEE, 2015367371

[8]

UddinG, RobillardM P. How API documentation fails [J]. IEEE Software, 2015, 32(4): 68-75

[9]

API documentation [EB/OL]. [2017-6-4]. http://blog.ninlabs.com/2013/03/api-documentation/.

[10]

BrandtJ, DontchevaM, WeskampM, KlemmerS R. Example centric programming: Integrating web search into the development environment [C]//. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. ACM, 2010513522

[11]

HartmannB, DhillonM, ChanM K. Hypersource: Bridging the gap between source and code-related web sites [C]//. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. ACM, 201122072210

[12]

StylosJ, FaulringA, YangZ, MyersB A. Improving API documentation using API usage information [C]//. Visual Languages and Human-Centric Computing IEEE Symposium on. IEEE, 2009119126

[13]

StylosJ, MyersB A, YangZ. Improving API documentation using usage information [C]//. CHI’ 09 Extended Abstracts on Human Factors in Computing Systems. ACM, 200944294434

[14]

McburneyP W, McmillanC. An empirical study of the textual similarity between source code and source code summaries [J]. Empirical Software Engineering, 2016, 21(1): 17-42

[15]

JiangJ, YangY, HeJ, BlancX, ZhangL. Who should comment on this pull request? Analyzing attributes for more accurate commenter recommendation in pull-based development [J]. Information and Software Technology, 2017, 84: 48-62

[16]

YangD, HussainA, LopesC V. From query to usable code: An analysis of stack overflow code snippets [C]//. Proceedings of the 13th International Conference on Mining Software Repositories. ACM, 2016391402

[17]

YangC, ZhangX, ZengL, FanQ, WangT, YuY, YinG, WangH. RevRec: A two-layer reviewer recommendation algorithm in pull-based development model [J]. Journal of Central South University, 2018, 25(5): 1129-1143

[18]

XuanQ, ZhangZ Y, FuC, HuH X, FilkovV. Social synchrony on complex networks [J]. IEEE Transactions on Cybernetics, 2018, 48(5): 1420-1431

[19]

BosuA, CorleyC S, HeatonD, ChatterjiD, CarverJ C, KraftN A. Building reputation in StackOverFlow: An empirical investigation [C]//. Proceedings of the 10th Working Conference on Mining Software Repositories. IEEE Press, 20138992

[20]

KrkaI, BrunY, MedvidovicN. Automatic mining of specifications from invocation traces and method invariants [C]//. Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, 2014178189

[21]

MonperrusM, EichbergM, TekesE, MeziniM. What should developers be aware of an empirical study on the directives of API documentation [J]. Empirical Software Engineering, 2012, 17(6): 703-737

[22]

SaiedM A, SahraouiH, DufourB. An observational study on API usage constraints and their documentation [C]//. Software Analysis, Evolution and Reengineering (SPANER), 2015 IEEE 22nd International Conference IEEE, 20153342

[23]

CheM. An approach to documenting and evolving architectural design decisions [C]//. Software Engineering (ICSE), 2013, 35th International Conference IEEE, 201313731376

[24]

ShahinM, LiangP, LiZ. Do architectural design decisions improve the understanding of software architecture? two controlled experiments [C]//. Proceedings of the 22nd International Conference on Program Comprehension. ACM, 2014313

[25]

ZapalowskiV, NunesI, NunesD J. Revealing the relationship between architectural elements and source code characteristics [C]//. Proceedings of the 22nd International Conference on Program Comprehension. ACM, 20141425

[26]

KirchmayrW, MoserM, NockeL, PichlerJ, ToberR. Integration of static and dynamic code analysis for understanding legacy source code [C]//. Software Maintenance and Evolution (ICSME), 2016 IEEE International Conference IEEE, 2016543552

[27]

HeijstekW, KuhneT, ChaudronM R. Experimental analysis of textual and graphical representations for software architecture design [C]//. Empirical Software Engineering and Measurement (ESEM), 2011 International Symposium IEEE, 2011167176

[28]

AllamanisM, BarrE T, BirdC, SuttonC. Suggesting accurate method and class names [C]//. Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM, 20153849

[29]

AbidN J, DraganN, CollardM L, MaleticJ I. Using stereotypes in the automatic generation of natural language summaries for C++ methods [C]//. Software Maintenance and Evolution (ICSME), 2015 IEEE International Conference IEEE, 2015561565

[30]

MorenoL, AponteJ, SridharaG, MarcusA, PollockL, VijayshankerK. Automatic generation of natural language summaries for java classes [J]. Program Comprehension (ICSME), 2013 IEEE 21st International Conference IEEE, 20132332

[31]

Cortes-CoyL F, Linares-VÁSquezM, AponteJ, PoshyvanykD. On automatically generating commit messages via summarization of source code changes [C]//. Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference IEEE, 2014275284

[32]

NasehiS M, SillitoJ, MaurerF, BurnsC. What makes a good code example? A study of programming Q&A in StackOverFlow [C]//. In Software Maintenance (ICSM), 2012 28th IEEE International Conference IEEE, 20122534

[33]

ChatterjeeP, NishiM A, DamevskiK, AugustineV, PollockL, KraftN A. What information about code snippets is available in different software-related documents? an exploratory study [C]//. Software Analysis, Evolution and Reengineering (SANER), 2017 IEEE 24th International Conference IEEE, 2017382386

[34]

AbdalkareemR, ShihabE, RillingJ. What do developers use the crowd for? A study using StackOverflow [J]. IEEE Software, 2017, 34(2): 53-60

[35]

Duala-EkokoE, RobillardM P. Asking and answering questions about unfamiliar API s: An exploratory study [C]//. Proceedings of the 34th International Conference on Software Engineering. IEEE, 2012266276

[36]

RichardsonLBeautiful soup [EB/OL], 2017

[37]

SurveyMonkey: The world's most popular free online survey tool [EB/OL]. [2017-6-4]. http://surveymonkey.com/.

[38]

MaW, ChenL, ZhangX, ZhouY, XuB. How do developers fix cross-project correlated bugs? A case study on the GitHub scientific python ecosystem [C]//. Proceedings of the 39th International Conference on Software Engineering. IEEE, 2017381392

[39]

BirnholtzJ, MerolaN A R, PaulA. Is it weird to still be a virgin: Anonymous, locally targeted questions on facebook confession boards [C]//. Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems. ACM, 201526132622

[40]

Stack exchange data dump [EB/OL]. https://archive.org/details/stackexchange.

[41]

BacchelliA. Mining challenge 2013: Stack overflow [C]//. The 10th Working Conference on Mining Software Repositories, 2013

[42]

ParninC, TreudeC, GrammelL, StoreyM A. Crowd documentation: Exploring the coverage and the dynamics of API discussions on stack overflow [R]. Atlanta, USA: Georgia Institute of Technology, 2012

[43]

KavalerD, PosnettD, GiblerC, ChenH, DevanbuP T, FilkovV. Using and asking: API s used in the android market and asked about in StackOverFlow [C]//. International Conference on Social Informatics. Springer, Cham, 2013405418

[44]

Linares-VasquezM, BavotaG, di PentaM, OlivetoR, Poshy-AnykD. How do API changes trigger StackOverflow discussions? A study on the Android SDK [C]//. Proceedings of the 22nd International Conference on Program Comprehension. ACM, 20148394

[45]

YinR K. Case study research design and methods third edition [M]//. Applied Social Research Methods Series. Sage Publications, 1989

[46]

DigD, JohnsonR. How do API s evolve? A story of refactoring [J]. Journal of Software: Evolution and Process, 2006, 18(2): 83-107

[47]

LiJ, XiongY, LiuX, ZhangL. How does web service API evolution affect clients? [C]//. Web Services (ICWS), 2013 IEEE 20th International Conference. IEEE, 2013300307

[48]

RobillardP. What makes API s hard to learn? Answers from developers [J]. IEEE Software, 2009, 26(6): 27-34

[49]

RobillardP, DelineR. A field study of API learning obstacles [J]. Empirical Software Engineering, 2011, 16(6): 703-732

[50]

KimJ, LeeS, HwangS W, KimS. Enriching documents with examples: A corpus mining approach [J]. ACM Transactions on Information Systems (TOIS), 2013, 31(1): 1-27

AI Summary AI Mindmap
PDF

126

Accesses

0

Citation

Detail

Sections
Recommended

AI思维导图

/