Startseite > Fachgruppen > Softwaretechnik > Lehre > Project Group Delphi - Mining Software Ecosystems using Static Program Analysis

Project Group Delphi - Mining Software Ecosystems using Static Program Analysis

The Project

Delphi is a platform to collect information on projects from code ecosystems such as Maven Central. It provides access to complex program properties like API usage. This information is useful for a variety of research questions. 

Your task as a project group will be to help users access the platform through an appealing web interface. Our current version is very limited and not deployed yet. To attract users that do not wish to access the system via a web service or the command-line interface, this new web interface should help people to develop their queries and should allow for a better insight into the data presented. 

Specifically those tasks for the web interface would be:

  • Extend the current very very basic Web User Interface
    • Present results in an appealing way
    • Help users to produce queries
  • Allow query storing
  • Produce charts and graphs out of data
  • Dashboard / Newsfeed feature

Additionally, there are also tasks on the crawler backend to be handled:

  • Write new crawlers
    • Androzoo - A collection of 6 million Android apps
    • … 
  • Write or integrate new analyzers
  • Extend the query language

The software will be written in Scala and TypeScript. The akka framework shall be used throughout to match the current architecture. On the web frontend we currently plan to use vue.js.

Learning outcomes

In this project, you will learn/practise the following:

  • Design the architecture of a web application (software architecture).
  • Design and prototype graphical user interfaces (iterative user-experience design).
  • Web-application development: vue.js on the frontend,  Scala on the backend, SQL to query our databases.
  • Test your code (functional automated testing).
  • Design and conduct user studies (usability testing).
  • Document and present an independent part of a bigger project.
  • Collaborate with other teams (University of Alberta - Canada, TU Darmstadt - Germany).

Requirements

  • Programming experience. This PG will programming-heavy.
  • Good understanding of the Scala (or Java) and JavaScript language
  • Experience with software design and efficient programming.
  • Knowledge of relational database systems.
  • Prior knowledge of Scala, vue.js and Docker is helpful, but not required.

References

[1]  Michael Reif, Michael Eichberg, Ben Hermann, and Mira Mezini. 2017. Hermes: assessment and creation of effective test corpora. In Proceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis (SOAP 2017). ACM, New York, NY, USA, 43-48. DOI: https://doi.org/10.1145/3088515.3088523

[2] Lisa Nguyen Quang Do, Michael Eichberg, and Eric Bodden. 2016. Toward an automated benchmark management system. In Proceedings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis (SOAP 2016). ACM, New York, NY, USA, 13-17. DOI: http://dx.doi.org/10.1145/2931021.2931023

Registering:

To attend the course, you have to take a test and an interview. Please FIRST take the test. It will be a task that you have to perform in Java. Please note that plagiarism will NOT be tolerated. After you have handed in your solution to the test, please schedule an interview date. 

Also, you have to register in the PAUL system as a participant.

Contact information:

Ben Hermann (ben.hermann@uni-paderborn.de)

Lisa Nguyen Quang Do (lisa.nguyen@uni-paderborn.de)