Abstract
Connections between source code components are important to know in the whole software life. Traditionally, we use syntactic analysis to identify source code dependencies which may not be sufficient in cases of dynamically typed programming languages, loosely coupled components or when multiple programming languages are combined. We aim at using developer activity as a source for identifying implicit source code dependencies, to enrich or supplement explicitly stated dependencies in the source code. We propose a method for identification of implicit dependencies from activity logs in IDE, mainly of switching between source code files in addition to usually used logs of copy-pasting code fragments and commits. We experimentally evaluated our method using data of students’ activity working on five projects. We compared implicit dependencies with explicit ones including manual evaluation of their significance. Our results show that implicit dependencies based on developer activity partially reflect explicit dependencies and so may supplement them in cases of their unavailability. In addition, implicit dependencies extend existing dependency graph with new significant connections applicable in software development and maintenance.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Antunes, B., Cordeiro, J., Gomez, P.: An Approach to Context-based Recommendation in Software Development. In: Proc. of the 6th ACM Conf. on Recommendation Systems, pp. 171–178. ACM (2012)
Bieliková, M., Návrat, P., Chudá, D., Polášek, I., Barla, M., Tvarožek, J., Tvarožek, M.: Webification of Software Development: General Outline and the Case of Enterprise Application Development. In: AWERProcedia Information Technology and Computer Science: 3rd World Conf. on Information Technology, vol. 3, pp. 1157–1162 (2013)
Bieliková, M., Polášek, I., Barla, M., Kuric, E., Rástočný, K., Tvarožek, J., Lacko, P.: Platform Independent Software Development Monitoring: Design of an Architecture. In: Geffert, V., Preneel, B., Rovan, B., Štuller, J., Tjoa, A.M. (eds.) SOFSEM 2014. LNCS, vol. 8327, pp. 126–137. Springer, Heidelberg (2014)
Bird, C., Nagappan, N., Gall, H., et al.: Putting It All Together: Using Socio-technical Networks to Predict Failures. In: 20th Int. Symposium on Software Reliability Engineering, pp. 109–119. IEEE CS Press (2009)
Boehm, B.W., Brown, J.R., Lipow, M.: Quantitative Evaluation of Software Quality. In: Proc. of the 2nd Int. Conf. on Program Comprehension, pp. 592–605. IEEE CS Press (1976)
Coman, I.D., Sillitti, A.: Automated Identification of Tasks in Development Sessions. In: Proc. of 16th IEEE Int. Conf. on Program Comprehension, pp. 212–217. IEEE CS Press (2008)
Counsell, S., Hassoun, Y., Loizou, G., et al.: Common Refactorings, a Dependency Graph and Some Code Smells: An Empirical Study of Java OSS. In: Proc. of the ACM/IEEE Int. Symp. on Empirical Software Engineering, pp. 288–296. ACM (2006)
DeLine, R., Czerwinski, M., Robertson, G.: Easing Program Comprehension by Sharing Navigation Data. In: Proc. of the 2005 IEEE Symp. on Visual Languages and Human-Centric Computing, pp. 241–248. IEEE CS Press (2005)
Ebbinghaus, H.: Memory: A Contribution to Experimental Psychology. Ruger, H.A., Bussenius, C.E. (trans.) Teachers College, New York (1885/1913)
Fenton, N.E., Pfleeger, S.L.: Software Metrics: A Rigorous and Practical Approach, 2nd edn. PWS Pub. Co., Boston (1998)
Fritz, T., Murphy, G.C., Hill, E.: Does a Programmer’s Activity Indicate Knowledge of Code? In: Proc. of 6th Joint Meeting of the European Software Eng. Conf. and the ACM SIGSOFT Symp. on The Foundations of Software Eng., pp. 341–350. ACM (2007)
Kalliamvakou, E., Gousios, G., Spinellis, D., et al.: Measuring Developer Contribution from Software Repository Data. In: Proc. of the 4th Mediterranean Conf. on Information Systems, pp. 600–611 (2008)
Kersten, M., Murphy, G.C.: Using Task Context to Improve Programmer Productivity. In: Proc. of 14th ACM SIGSOFT Int. Symp. on Foundations of Software Eng., pp. 1–11. ACM (2006)
Polášek, I., Ruttkay-Nedecký, I., Ruttkay-Nedecký, P., Tóth, T., Černík, A., Dušek, P.: Information and Knowledge within Software Projects and Their Graphical Representation for Collaborative Programming. Acta Polytechnica Hungarica 10(2), 173–192 (2013) ISSN: 1785-8860
Robillard, M.P., Murphy, G.C.: Automatically Inferring Concern Code from Program Investigation Activities. In: Proc. of 18th IEEE Int. Conf. on Automated Software Engineering, pp. 225–234. IEEE CS Press (2003)
White, K.G.: Forgetting Functions. Animal Learning & Behavior 29(3), 193–207 (2001)
Zimmermann, T., Nagappan, N.: Predicting Defects Using Network Analysis on Dependency Graphs. In: Proc. of 30th Int. Conf. on Software Engineering, pp. 531–540. ACM (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Konôpka, M., Bieliková, M. (2015). Software Developer Activity as a Source for Identifying Hidden Source Code Dependencies. In: Italiano, G.F., Margaria-Steffen, T., Pokorný, J., Quisquater, JJ., Wattenhofer, R. (eds) SOFSEM 2015: Theory and Practice of Computer Science. SOFSEM 2015. Lecture Notes in Computer Science, vol 8939. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-46078-8_37
Download citation
DOI: https://doi.org/10.1007/978-3-662-46078-8_37
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-46077-1
Online ISBN: 978-3-662-46078-8
eBook Packages: Computer ScienceComputer Science (R0)