What Should I Code Now?

In the software development field, the amount of data related to docu- mentation and to the source code itself is huge. Relevant knowledge can be extracted from these data, provided that the adequate tools are in place. In this context, data mining can be seen as an important tool. This paper presents a new approach for code completion based on sequential patterns mined from previous developed source code. According to what is being coded, suggestions of new code sequences are made based on the mined patterns. As a result, a plug-in for the Eclipse IDE, named Vertical Code Completion, was developed and applied over widely known Open Source systems, identifying that our approach could provide suggestions that would anticipate what a developer intends to code.

[1]  Tao Xie,et al.  Parseweb: a programmer assistant for reusing open source code on the web , 2007, ASE.

[2]  Jian Pei,et al.  Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach , 2006, Sixth IEEE International Conference on Data Mining - Workshops (ICDMW'06).

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .

[5]  Rosco Hill,et al.  Automatic method completion , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[6]  Romain Robbes,et al.  How Program History Can Improve Code Completion , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[7]  Ian Parberry,et al.  Problems on Algorithms , 1995, SIGA.

[8]  Ramakrishnan Srikant,et al.  Fast algorithms for mining association rules , 1998, VLDB 1998.

[9]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[10]  Mira Mezini,et al.  Learning from examples to improve code completion systems , 2009, ESEC/SIGSOFT FSE.

[11]  Hung Viet Nguyen,et al.  Graph-based pattern-oriented, context-sensitive source code completion , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[12]  S. C. Hui,et al.  CS-Mine: An Efficient WAP-Tree Mining for Web Access Patterns , 2004, APWeb.

[13]  Jian Pei,et al.  Data Mining: Concepts and Techniques, 3rd edition , 2006 .

[14]  C MurphyGail,et al.  How Are Java Software Developers Using the Eclipse IDE , 2006 .

[15]  Thomas D. LaToza,et al.  Active code completion , 2011, 2012 34th International Conference on Software Engineering (ICSE).

[16]  Kajal T. Claypool,et al.  XSnippet: mining For sample code , 2006, OOPSLA '06.

[17]  Andreas Zeller,et al.  Predicting Software Metrics at Design Time , 2008, PROFES.

[18]  Mira Mezini,et al.  IDE 2.0: collective intelligence in software development , 2010, FoSER '10.

[19]  Leonardo Gresta Paulino Murta,et al.  Vertical Code Completion: Going Beyond the Current Ctrl+Space , 2012, 2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse.

[20]  Petra Perner,et al.  Data Mining - Concepts and Techniques , 2002, Künstliche Intell..

[21]  Ramakrishnan Srikant,et al.  Mining Sequential Patterns: Generalizations and Performance Improvements , 1996, EDBT.

[22]  Ramakrishnan Srikant,et al.  Fast Algorithms for Mining Association Rules in Large Databases , 1994, VLDB.

[23]  Marta Mattoso,et al.  Using Provenance to Improve Workflow Design , 2008, IPAW.

[24]  Rastislav Bodík,et al.  Jungloid mining: helping to navigate the API jungle , 2005, PLDI '05.

[25]  R. Holmes,et al.  Using structural context to recommend source code examples , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[26]  Mik Kersten,et al.  How are Java software developers using the Elipse IDE? , 2006, IEEE Software.

[27]  Rob Miller,et al.  Code Completion from Abbreviated Input , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[28]  Marta Mattoso,et al.  Provenance and Annotation of Data and Processes , 2016, Lecture Notes in Computer Science.

[29]  Yi Liu,et al.  PLWAP sequential mining: open source code , 2005 .