Skip to main content
Log in

What are developers talking about? An analysis of topics and trends in Stack Overflow

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Programming question and answer (Q&A) websites, such as Stack Overflow, leverage the knowledge and expertise of users to provide answers to technical questions. Over time, these websites turn into repositories of software engineering knowledge. Such knowledge repositories can be invaluable for gaining insight into the use of specific technologies and the trends of developer discussions. Previous work has focused on analyzing the user activities or the social interactions in Q&A websites. However, analyzing the actual textual content of these websites can help the software engineering community to better understand the thoughts and needs of developers. In the article, we present a methodology to analyze the textual content of Stack Overflow discussions. We use latent Dirichlet allocation (LDA), a statistical topic modeling technique, to automatically discover the main topics present in developer discussions. We analyze these discovered topics, as well as their relationships and trends over time, to gain insights into the development community. Our analysis allows us to make a number of interesting observations, including: the topics of interest to developers range widely from jobs to version control systems to C# syntax; questions in some topics lead to discussions in other topics; and the topics gaining the most popularity over time are web development (especially jQuery), mobile applications (especially Android), Git, and MySQL.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

References

  • Adamic LA, Zhang J, Bakshy E, Ackerman MS (2008) Knowledge sharing and Yahoo answers: everyone knows something. In: Proceedings of the 17th international conference on World Wide Web, pp 665–674

  • Apache Subversion (2012) http://subversion.apache.org/. Accessed 29 Sept 2012

  • Bajracharya S, Lopes C (2012) Analyzing and mining a code search engine usage log. Empir Software Eng 17:424–466

    Article  Google Scholar 

  • Barnard K, Duygulu P, Forsyth D, De Freitas N, Blei DM, Jordan MI (2003) Matching words and pictures. J Mach Learn Res 3:1107–1135

    MATH  Google Scholar 

  • Barua A, Thomas SW, Hassan AE (2012) Replication package. http://sailhome.cs.queensu.ca/replication/stackoverflow. Accessed 29 Sept 2012

  • Becher M, Freiling FC, Hoffmann J, Holz T, Uellenbeck S, Wolf C (2011) Mobile security catching up? Revealing the nuts and bolts of the security of mobile devices. In: IEEE symposium on security and privacy, pp 96–111

  • Blei DM, Lafferty J (2009) Topic models. Text mining: theory and applications. Taylor and Francis, London

    Google Scholar 

  • Blei DM, Ng AY, Jordan MI (2003) Latent Dirichlet allocation. J Mach Learn Res 3:993–1022

    MATH  Google Scholar 

  • Cox D, Stuart A (1955) Some quick sign tests for trend in location and dispersion. Biometrika 42(1–2):80–95

    MATH  MathSciNet  Google Scholar 

  • Díaz-Herrera JL (2005) Computing & information sciences: the discipline, careers, and future directions. In: ACM southeast regional conference

  • Dugan RF (2004) Performance lies my professor told me: the case for teaching software performance engineering to undergraduates. In: Proceedings of the 4th international workshop on software and performance, pp 37–48

  • Evans Data Corporation (2011) Software development platforms—2011 rankings. http://www.evansdata.com/reports/viewRelease_download.php?reportID=19. Accessed 29 Sept 2012

  • Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Boston

    Google Scholar 

  • Geman S, Geman D (1984) Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images. IEEE Trans Pattern Anal Mach Intelli PAMI-6(6):721–741

    Article  MATH  Google Scholar 

  • Git SCM (2012) http://git-scm.com/. Accessed 29 Sept 2012

  • Google Play (2012) https://play.google.com/about/features. Accessed 29 Sept 2012

  • Grant S, Cordy JR (2010) Estimating the optimal number of latent concepts in source code analysis. In: Proceedings of the 10th international working conference on source code analysis and manipulation, pp 65–74

  • Griffiths TL, Steyvers M (2004) Finding scientific topics. Proc Natl Acad Sci 101:5228–5235

    Article  Google Scholar 

  • Griffiths TL, Steyvers M, Tenenbaum JB (2007) Topics in semantic representation. Psychol Rev 114(2):211–244

    Article  Google Scholar 

  • Gyöngyi Z, Koutrika G, Pedersen J, Garcia-Molina H (2008) Questioning Yahoo! Answers. In: Proceedings of the 1st workshop on question answering on the Web

  • Hall D, Jurafsky D, Manning CD (2008) Studying the history of ideas using topic models. In: Proceedings of the conference on empirical methods in natural language processing, pp 363–371

  • Hassan AE (2008) The road ahead for mining software repositories. In: Frontiers of software maintenance, pp 48–57

  • Heymann P, Garcia-Molina H (2006) Collaborative creation of communal hierarchical taxonomies in social tagging systems. Technical Report 2006-10, Stanford InfoLab. http://ilpubs.stanford.edu:8090/775/. Accessed 29 Sept 2012

  • Hindle A, Godfrey MW, Holt RC (2009) What’s hot and what’s not: windowed developer topic analysis. In: Proceedings of the 25th international conference on software maintenance, pp 339–348

  • jQuery (2012) http://docs.jquery.com/How_jQuery_Works. Accessed 29 Sept 2012

  • Kuhn A, Ducasse S, Girba T (2007) Semantic clustering: identifying topics in source code. Inf Softw Technol 49(3):230–243

    Article  Google Scholar 

  • Linstead E, Lopes C, Baldi P (2008) An application of latent Dirichlet allocation to analyzing software evolution. In: Proceedings of the 7th international conference on machine learning and applications, pp 813–818

  • Mamykina L, Manoim B, Mittal M, Hripcsak G, Hartmann B (2011) Design lessons from the fastest Q&A site in the west. In: Proceedings of the conference on human factors in computing systems, pp 2857–2866

  • Manning CD, Raghavan P, Schtze H (2008) Introduction to information retrieval. Cambridge University Press, New York

    Book  MATH  Google Scholar 

  • McCallum A (2002) MALLET: a machine learning for language toolkit. http://mallet.cs.umass.edu. Accessed 29 Sept 2012

  • McGraw G (2002) Building secure software: better than protecting bad software. IEEE Softw 19(6):57–58

    Article  Google Scholar 

  • McIntosh S, Adams B, Nguyen TH, Kamei Y, Hassan AE (2011) An empirical study of build maintenance effort. In: Proceedings of the 33rd international conference on software engineering, pp 141–150

  • Mei Q, Shen X, Zhai C (2007) Automatic labeling of multinomial topic models. In: Proceedings of the 13th international conference on knowledge discovery and data mining, pp 490–499

  • Microsoft Developer Network (2012) http://msdn.microsoft.com/en-us/. Accessed 29 Sept 2012

  • Microsoft SQL Server (2012) http://www.microsoft.com/sqlserver/en/us/default.aspx. Accessed 29 Sept 2012

  • Microsoft Visual Studio (2012) http://msdn.microsoft.com/en-us/vstudio. Accessed 29 Sept 2012

  • MySQL (2012) http://www.mysql.com/. Accessed 29 Sept 2012

  • Neuhaus S, Zimmermann T (2010) Security trend analysis with CVE topic models. In: Proceedings of the 21st international symposium on software reliability engineering, pp 111–120

  • Nielsen Company (2012) The mobile media report: state of the media. http://www.nielsen.com/content/dam/corporate/us/en/reports-downloads/2011-Reports/state-of-mobile-Q3-2011.pdf. Accessed 29 Sept 2012

  • Oracle Java (2012) http://www.java.com/en/. Accessed 29 Sept 2012

  • OSS Watch (2012) Essential tools for running a community-led project. http://www.oss-watch.ac.uk/resources/communitytools.xml. Accessed 29 Sept 2012

  • Pagano D, Maalej W (2012) How do open source communities blog? Empirical Software Engineering, Springer Netherlands, pp 1–35

  • Perforce (2012) http://www.perforce.com/. Accessed 29 Sept 2012

  • Porter MF (1997) An algorithm for suffix stripping. In: Readings in information retrieval. Morgan Kaufmann, San Francisco, pp 313–316

    Google Scholar 

  • Pressman RS (2005) Software engineering: a practitioner’s approach. McGraw-Hill

  • Shah C, Pomerantz J (2010) Evaluating and predicting answer quality in community QA. In: Proceedings of the 33rd international conference on research and development in information retrieval, pp 411–418

  • Stack Overflow (2012a) http://www.stackoverflow.com

  • Stack Overflow (2012b) Stack overflow creative commons license data dump. http://blog.stackoverflow.com/2009/06/stack-overflow-creative-commons-data-dump/. Accessed 29 Sept 2012

  • Tan C, Wang Y, Lee C (2002) The use of bigrams to enhance text categorization. Inf Process Manag 38:529–546

    Article  MATH  Google Scholar 

  • Thomas SW (2012) Mining software repositories with topic models. Tech. Rep. 2012-586, School of Computing, Queen’s University

  • Thomas SW, Adams B, Hassan AE, Blostein D (2010) Validating the use of topic models for software evolution. In: Proceedings of the 10th international working conference on source code analysis and manipulation, pp 55–64

  • Thomas SW, Adams B, Hassan AE, Blostein D (2011) Modeling the evolution of topics in source code histories. In: Proceedings of the 8th working conference on mining software repositories, pp 173–182

  • Thomas SW, Adams B, Hassan AE, Blostein D (2012) Studying software evolution using topic models. Sci. Comput. Programming. doi:10.1016/j.scico.2012.08.003

    Google Scholar 

  • Treude C, Barzilay O, Storey M (2011) How do programmers ask and answer questions on the web? In: Proceedings of the 33rd international conference on software engineering, pp 804–807

  • Wallach HM, Murray I, Salakhutdinov R, Mimno D (2009) Evaluation methods for topic models. In: Proceedings of the 26th international conference on machine learning, pp 1105–1112

  • Yahoo! Answers (2012) http://answers.yahoo.com. Accessed 29 Sept 2012

Download references

Acknowledgements

We would like the thank the anonymous reviewers for their valuable feedback.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Stephen W. Thomas or Ahmed E. Hassan.

Appendix: Topic Listings

Appendix: Topic Listings

Table 1 The 40 topics discovered by LDA
Table 2 Topic shares and trends
Table 3 The top Stack Overflow tags related to each topic

Rights and permissions

Reprints and permissions

About this article

Cite this article

Barua, A., Thomas, S.W. & Hassan, A.E. What are developers talking about? An analysis of topics and trends in Stack Overflow. Empir Software Eng 19, 619–654 (2014). https://doi.org/10.1007/s10664-012-9231-y

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-012-9231-y

Keywords

Navigation