Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3385032.3385050acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisecConference Proceedingsconference-collections
short-paper

Code Nano-Pattern Detection using Deep Learning

Published: 25 March 2020 Publication History

Abstract

Nano-patterns are the method-level code building blocks of the code which can reveal crucial information of the code. In this paper, we present some initial results of our investigation to detect nano-patterns in a Java code using a deep learning approach. For this purpose, first, we generated a method level tagged corpus for 15 nano-patterns using nine open source Java projects. Subsequently, the tagged corpus was used to train a Long Short-Term Memory (LSTM) network to predict the nano-patterns present in the Java code. Our deep learning model gave an average accuracy of 88.3% with an average precision of 74.4% and average recall of 78.3%.

References

[1]
Francesca Arcelli, Stefano Masiero, and Claudia Raibulet. 2005. Elemental design-patterns recognition in Java. In 13th IEEE International Workshop on Software Technology and Engineering Practice. IEEE 2005. 196--205.
[2]
Erich Gamma. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. (book).
[3]
Y. Gil and I. Maman. 2005. micro-patterns in Java code. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, 2005. 97--116.
[4]
Chengwan He, Zheng Li, and Keqing He. 2008. Identification and Extraction of design-pattern Information in Java Program. In 2008 Ninth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing. IEEE 2008. 828--834.
[5]
Sepp Hochreiter and JÃijrgen Schmidhuber. 1997. Long short-term memory. Neural Computation 9, 8 (November 15, 1997 1997), 1735--1780. https://doi.org/10.1162/neco.1997.9.8.1735
[6]
E. W. Host and B. M. Ostvold. 2007. The programmers lexicon, volume i: The verbs. In Seventh IEEE International Working Conference on Source Code Analysis and Manipulation. IEEE 2007 (SCAM 2007). 193--202.
[7]
Sunghun Kim, Kai Pan, and E. James Whitehead Jr. 2006. micro-pattern evolution. In Proceedings of the 2006 international workshop on Mining software repositories. ACM, 2006. 40--46.
[8]
Stefano Maggioni and Francesca Arcelli. 2010. Elemental design-patterns recognition in Java. In Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics. ACM 2010. 39--46.
[9]
Sawan Rai, Tejaswini Gaikwad, Sparshi Jain, and Atul Gupta. 2017. Method Level Text Summarization for Java Code Using Nano-Patterns. In 24th Asia-Pacific Software Engineering Conference (APSEC), 2017. IEEE 2008. 199--208.
[10]
J. Singer, G. Brown, M. LujÃan, A. Pocock, and P. Yiapanis. 2010. Fundamental nano-patterns to characterize and classify Java methods. Electronic Notes in Theoretical Computer Science 253, 7 (17 September 2010 2010), 191--204. https://doi.org/10.1016/j.entcs.2010.08.0425
[11]
Kazi Zakia Sultana, Ajay Deo, and Byron J. Williams. 2017. Correlation analysis among Java nano-patterns and software vulnerabilities. In 2017 IEEE 18th International Symposium on High Assurance Systems Engineering (HASE). 69--76.
[12]
Christian Tosi, Marco Zanoni, and Stefano Maggioni. 2009. A design-pattern detection plugin for eclipse. In Proceedings of the 4th Italian Workshop on Eclipse Technologies (Eclipse-IT 2009). Eclipse Italian Community.

Cited By

View all
  • (2024)Balanced knowledge distribution among software development teams—Observations from open‐ and closed‐source software developmentJournal of Software: Evolution and Process10.1002/smr.2655Online publication date: 13-Feb-2024
  • (2021)A Literature Review of Using Machine Learning in Software Development Life Cycle StagesIEEE Access10.1109/ACCESS.2021.31197469(140896-140920)Online publication date: 2021

Index Terms

  1. Code Nano-Pattern Detection using Deep Learning

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ISEC '20: Proceedings of the 13th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference)
    February 2020
    166 pages
    ISBN:9781450375948
    DOI:10.1145/3385032
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 March 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Deep learning
    2. LSTM
    3. Nano-pattern
    4. RNN
    5. Word Embeddings

    Qualifiers

    • Short-paper
    • Research
    • Refereed limited

    Conference

    ISEC 2020

    Acceptance Rates

    Overall Acceptance Rate 76 of 315 submissions, 24%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 26 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Balanced knowledge distribution among software development teams—Observations from open‐ and closed‐source software developmentJournal of Software: Evolution and Process10.1002/smr.2655Online publication date: 13-Feb-2024
    • (2021)A Literature Review of Using Machine Learning in Software Development Life Cycle StagesIEEE Access10.1109/ACCESS.2021.31197469(140896-140920)Online publication date: 2021

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media