DOI: 10.5281/zenodo.5902230
title: The General Index of Software Engineering Papers

description: <strong>The General Index of Software Engineering Papers</strong> <strong><em>Contents</em></strong> This is a database of papers for software engineering conferences. It contains the history for each of the following conferences: <strong>JSS</strong>, Elsevier - Journal of Systems and Software <strong>SW</strong>, IEEE Software <strong>ICSE</strong>, International Conference on Software Engineering <strong>IST</strong>, Information and Software Technology <strong>TSE</strong>, IEEE - Transactions on Software Engineering <strong>NOTES</strong>, ACM SIGSOFT Software Engineering Notes <strong>ASE</strong>, IEEE/ACM International Conference on Automated Software Engineering <strong>SPE</strong>, Software: Practice and Experience <strong>FSE</strong>, ACM SIGSOFT Symposium on the Foundations of Software Engineering <strong>ICSM</strong>, IEEE International Conference on Software Maintenance <strong>IJSEKE</strong>, International Journal of Software Engineering and Knowledge Engineering <strong>RE</strong>, IEEE International Requirements Engineering Conference <strong>ESE</strong>, Springer - Empirical Software Engineering <strong>SOSYM</strong>, Software and System Modeling <strong>MSR</strong>, Working Conference on Mining Software Repositories <strong>ESEM</strong>, International Symposium on Empirical Software Engineering and Measurement <strong>WCRE</strong>, Working Conference on Reverse Engineering <strong>ISSTA</strong>, International Symposium on Software Testing and Analysis <strong>ICSME</strong>, International Conference on Software Maintenance and Evolution <strong>ICPC</strong>, IEEE International Conference on Program Comprehension <strong>SMR</strong>, Journal of Software: Evolution and Process <strong>SQJ</strong>, Software Quality Journal <strong>TOSEM</strong>, ACM - Transactions on Software Engineering Methodology <strong>MODELS</strong>, International Conference On Model Driven Engineering Languages And Systems <strong>ASEJ</strong>, Automated Software Engineering <strong>REJ</strong>, Requirements Engineering Journal <strong>SCAM</strong>, International Working Conference on Source Code Analysis & Manipulation <strong>ISSE</strong>, Innovations in Systems and Software Engineering <strong>GPCE</strong>, Generative Programming and Component Engineering <strong>FASE</strong>, Fundamental Approaches to Software Engineering <strong>SSBSE</strong>, International Symposium on Search Based Software Engineering The data is stored in a PostgreSQL database (see db/swepapers.pgsql.gz ) Alternatively, the database can be recreated from CSV files using Python and the SQLAlchemy Object Relational Mapper using the scripts included (more details below). <em><strong>Data</strong></em> Papers and authors: the DBLP data dump. We used the data in dblp-2021-11-02.xml file. <em><strong>Using the database</strong></em> Directly Most simply, you can import the SQL dump in the db folder into your database management system and start querying. Via Python Alternatively, you can take a look at how the database was created using PostgreSQL, Python and SQLAlchemy, and use these mechanisms also for querying. This will allow you to easily extend the database or update its schema. <em><strong>Dependencies and installation instructions</strong></em> If you take this path, make sure you have Python and a PostgreSQL server installed before attempting anything. Follow the follwoing steps (tested on our OS 11.3 machine with Python 3.7.7): Install SQLAlchemy: <code>easy_install SQLAlchemy</code> Tweek <code>database.ini</code> for your particular PostgreSQL user and password (the script assumes user <em>root</em> with an empty password) Install Grobid [https://github.com/kermitt2/grobid] to extract content from PDF files or use zip file included here. <em><strong><em><strong>Python scripts</strong></em></strong></em> <em><strong><code>initDB.py</code>: declares the database schema using Python classes (will be automatically mapped to tables by SQLAlchemy).</strong></em> <em><strong><code>populateDB.py</code>: reads data about the papers for each conference and loads it into the database.</strong></em> <em><strong><code>1_downloadPdf.py</code>: download the pdf of the papers using a modified version PyPaperBot PyPaperBot. (The source code of our PyPaperBot is in the replication package).</strong></em> <em><strong><code>2_groibd.py</code>: Extract the text from the Pdf files into xml files the pdf.</strong></em> <em><strong><code>3_XmlToText.py</code>: Transform the XML files into text files.</strong></em> <em><strong><code>4_Ngrams.py</code>: Generate n-grams and update the database.</strong></em> <em><strong><em><strong>How to use</strong></em></strong></em> <em><strong>Python files arguments:</strong></em> <em><strong>Arguments</strong></em> <em><strong>Description</strong></em> <em><strong>Type</strong></em> <em><strong>--dir</strong></em> <em><strong>Directory path in which to save the result</strong></em> <em><strong>(str)</strong></em> <em><strong>--venue</strong></em> <em><strong>The venue you aim to download</strong></em> <em><strong>(str, optional)</strong></em> <em><strong>--year</strong></em> <em><strong>year of publication, defaults to None</strong></em> <em><strong>(int, optional)</strong></em> <em><strong>--Maxyear</strong></em> <em><strong>maximum year of publication, defaults to None</strong></em> <em><strong>(int, optional)</strong></em> <em><strong>--Minyear</strong></em> <em><strong>minimum year of publication, defaults to None</strong></em> <em><strong>(int, optional)</strong></em> <strong>Extend the dataset</strong> In order to add a venue, there are a few things that must be done. For example, if you want to add a new conference “New International Conference on Software Engineering” (<strong>NconfSW</strong>). First, add the name of the conf to the Cname list containing the list of conferences. Secondly, the acronym of the conference to conferences lists in the python file <code>populateDB.py</code> as shown in the code below. <pre><code> conferences = ['ASE', 'ESEM', 'FASE', 'FSE', ...,*'NconfSW'*] journals=['ASEJ', 'ESE', 'IJSEKE', 'ISSE', 'IST', ....] #and add it to : Cname = {., ., ., 'NconfSW':'New International Conference on Software Engineering', </code></pre> If you need to add papers in a specific period you can use the Maxyear and Minyear argument when running the script. <pre><code>python 1_downloadPDF.py --dir db --Minyear 2021 Maxyear 2022 </code></pre> <strong>Citation information</strong> If you find the dataset or tooling useful in your research, please consider citing the following paper:<br> Abou Khalil, Zeinab, and Stefano Zacchiroli. "The General Index of Software Engineering Papers." In MSR 2022-The 2022 Mining Software Repositories Conference. 2022.