Are you a student looking for a complex software engineering problem? Please check out this graduation project.
Context and Challenge
Over the past decades, code analysis tools have been developed to make it easier for software developers to do code reviews and develop high-quality software. These tools cover all kinds of different code metrics and integration with other platforms. Some examples of the most advanced tools are SonarSource and Checkmarx.
However, while other tools exist, code reviews are often done manually by developers through version control systems like GitLab. GitLab is a web-based, fully-integrated DevOps lifecycle tool that provides a Git-repository manager with an integrated wiki, issue-tracking and continuous integration/continuous deployment pipeline features. The problem is that these static analysis tools are external to the GitLab environment, and therefore they are often disregarded by the users. Consequently, these manual code reviews still take much time and are hard to perform when merge requests contain large numbers of changes.
Thus, there is a need for an appropriate selection of a set of tools and metrics which can aid code reviews and optimize the process of development. Furthermore, the outputs of the tools and the effect of certain metrics need to be analyzed and adapted to suit the needs of the developers and provide optimal results. The goal is to detect important issues, conflicts and weak spots of the code and merge requests and save the most time and effort for the developers while eliminating false positives as much as possible.
Expected project outcome
This project will be carried out based on a framework which has been developed in previous student projects. This framework helps diagnosing problems during code reviews and provides information about the code quality and merge requests.
The expected project outcome is to extend current framework with more metrics or code analysis tools, and investigate how to further handle false positives, for example, using the data collected by different code analysis tools as inputs for machine learning and statistical techniques.
The following technologies might be involved in this project (but not limited to):
Git and gitlab
Hosting (Cloud, Serverless)
Database (Relational, Graph)
• You are a BSc/ Master graduation student in Computer Science with mathematical affinity or the other way around.
• You have knowledge of object oriented programming and software design in a technical environment.
• You are self-propelling, smart and inquisitive.
This is a graduation internship for minimum 4 days a week with a duration of a minimum 5 months.
Please note that we can only consider students who are enrolled at a school for the entire duration of the internship.
Vul in waar je vergelijkbare vacatures zoekt en vergeet je e-mailadres niet!
We heten wel YoungCapital, maar iedereen is even welkom. Ook als je al wat meer ervaring hebt. Meer weten? Check onze FAQ.