Simon Larsén

dblp:280/6665 · DBLP profile ↗
← Back
8ranked-venue papers
4as first author
5since 2021 · last 2023
0000-0002-8343-057XORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 6 · 3 first-author · 3 since 2021Security and privacy · 1 · 1 since 2021Software engineering, systems software and programming languages · 1 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2023 Sorald: Automatic Patch Suggestions for SonarQube Static Analysis Violations
abstract
Previous work has shown that early resolution of issues detected by static code analyzers can prevent major costs later on. However, developers often ignore such issues for two main reasons. First, many issues should be interpreted to determine if they correspond to actual flaws in the program. Second, static analyzers often do not present the issues in a way that is actionable. To address these problems, we present Sorald: a novel system that uses metaprogramming templates to transform the abstract syntax trees of programs and suggests fixes for static analysis warnings. Thus, the burden on the developer is reduced from interpreting and fixing static issues, to inspecting and approving full fledged solutions. Sorald fixes violations of 10 rules from SonarJava, one of the most widely used static analyzers for Java. We evaluate Sorald on a dataset of 161 popular repositories on Github. Our analysis shows the effectiveness of Sorald as it fixes 65% (852/1,307) of the violations that meets the repair preconditions. Overall, our experiments show it is possible to automatically fix notable violations of the static analysis rules produced by the state-of-the-art static analyzer SonarJava.
Khashayar Etemadi, Nicolas Harrand, Simon Larsén, Haris Adzemovic, Henry Luong Phu, Ashutosh Verma, Fernanda Madeiral, Douglas Wikström, Martin Monperrus
IEEE Trans. Dependable Secur. Comput.3
2023 Spork: Structured Merge for Java With Formatting Preservation
abstract
The highly parallel workflows of modern software development have made merging of source code a common activity for developers. The state of the practice is based on line-based merge, which is ubiquitously used with “git merge”. Line-based merge is however a generalized technique for any text that cannot leverage the structured nature of source code, making merge conflicts a common occurrence. As a remedy, research has proposed structured merge tools, which typically operate on abstract syntax trees instead of raw text. Structured merging greatly reduces the prevalence of merge conflicts but suffers from important limitations, the main ones being a tendency to alter the formatting of the merged code and being prone to excessive running times. In this paper, we presentspork, a novel structured merge tool forjava.sporkis unique as it preserves formatting to a significantly greater degree than comparable state-of-the-art tools.sporkis also overall faster than the state of the art, in particular significantly reducing worst-case running times in practice. We demonstrate these properties by replaying 1740 real-world file merges collected from 119 open-source projects, and further demonstrate several key differences betweensporkand the state of the art with in-depth case studies.
Simon Larsén, Jean-Rémy Falleri, Benoit Baudry, Martin Monperrus
IEEE Trans. Software Eng.1
2021 Sanitize This! Sharing Assignments and Solutions Safely in a Single Git Repository
abstract
This paper presents Sanitizer, a tool for maintaining a student assignment and its reference solution in a single Git repository. The solution to the assignment is kept on its own branch, and is annotated with a simple inline markup. Based on this markup, Sanitizer removes files or parts of them, and commits the result to the student branch that can then be safely distributed to students. This provides a consistent workflow for developing assignments and their solutions together, avoiding the problem of drift between assignment and solutions over time, and simplifying the sharing of solutions with other teachers.
Tobias Hansson, Richard Glassey, Simon Larsén
ITiCSE (2)3
2021 Double-blind Peer Review using RepoBee for Git-based Assignments
abstract
Peer review is an important component of student development. As such, systems have been developed to support teachers in facilitating peer review. A key feature is double-blind review, were the reviewer and reviewee remain anonymous to each other. As more courses adopt Git along with a platform like GitHub, an interesting challenge emerges - all changes are tracked along with the identity of the student and it is not obvious how to conduct double-blind peer review. While external systems can be used, we believe it is more authentic for students to conduct their peer review within the environment provided by platforms such as GitHub, and less of an administrative burden for teachers. This paper presents our extension to RepoBee that facilitates double-blind peer review with minimal effort on the GitHub, GitLab and Gitea platforms, as well as the results of an informal study of teachers using it in their practice.
Simon Larsén, Richard Glassey
ITiCSE (2)1
2021 Automate, Alter & Extend Git Repository Workflow with RepoBee
abstract
To make effective use of version control systems like Git in teaching, teachers require tool support to manage student repositories. RepoBee (https://repobee.org) is a command line tool that assists teachers in creating repositories for students, batch cloning of student repositories, facilitating industry-inspired peer review, and much more. A powerful plugin system makes RepoBee flexible, allowing it to execute workflow-specific tasks such as running JUnit test cases on cloned student repositories, managing repositories created by GitHub Classroom, and extracting grades from grading issues on issue trackers. Also by way of the plugin system, RepoBee uniquely supports both the GitHub and GitLab platforms. In this demo, we shall demonstrate how teachers can apply RepoBee to manage student repositories. We shall first show the core features of student repository creation and cloning, and then how workflows can be customized with the plugin system. To cultivate interaction, participants will be able to suggest desirable features, which we then attempt to start developing plugins for. Finally, we shall conclude with an open discussion on tool support for version control in education and attempt to identify future directions.
Simon Larsén, Richard Glassey
SIGCSE1
2020 Panel: Synergistic Perspectives on Collaborative Learning with Version Control Tools
abstract
Version control systems are widely used in industry and form a staple of modern software development, and this panel addresses the benefits and difficulties of introducing version control in education. Version control systems such as Git, and software development platforms such as GitHub, Bitbucket and GitLab are industry standards for which there is an increasing appeal within education. In general, students and teachers are motivated to use these tools in the classroom to increase graduates' competitiveness in the job market. Although highly desirable, the adoption of version control is hindered by a steep learning curve for both teachers and students, a lack of resources tailored to specific instructional and learning needs, as well as inadequate integration and alignment with the learning outcomes in the program curricula. The panel will analyze these challenges, solicit feedback from the audience's experience with version control tools, and facilitate discussions around promising strategies that could benefit student learning and graduates' professional competencies expected in the workplace.
Mihaela Sabin, Kevin Buffardi, Simon Larsén, Bonnie K. MacKellar
FIE3
2020 Towards Flexible and Extensible Git-based Course Management with RepoBee
abstract
RepoBee is an open source tool that helps teachers to use Git effectively in teaching. Use of version control systems has been growing in popularity, with more teachers adopting the technology, or planning to in the future. However, systems like Git are challenging to use and were not designed with teaching in mind. In response, tools have emerged that attempt to reduce the complexity of this task for teachers, whilst providing students with an authentic experience of using a version control system. We have developed RepoBee to provide common features a teacher might need: the ability to distribute assignments to students; gather their efforts for grading; run grading tasks and other analytics; as well enabling support for peer review. In sharing our solution with other academics, it has become clear that there is a wide range of needs. This in turn has influenced our design philosophy for RepoBee such that it should be flexible and extensible, in order to be used in a broad range of teaching contexts and can be extended to accommodate course specific needs. This paper aims to draw attention to three particular aspects that distinguish RepoBee: support for different course models; support for course specific features; and support for multiple repository hosting platforms.
Richard Glassey, Simon Larsén
ITiCSE2
2019 RepoBee: Developing Tool Support for Courses using Git/GitHub
abstract
The use of version control systems within computing education is growing in popularity. However, this is challenging because such systems are not particularly well designed to support educational situations, nor are they easy to use with confidence in teaching, as specialist knowledge and experience is required. This experience paper reports the development of the open source tool RepoBee, which assists in the use of Git/GitHub in an educational context. The tool provides a straightforward interface for managing batch tasks such as repository generation and cloning for setting and gathering assignments, opening and closing of issues to communicate with students, as well as facilitating peer reviews. Parts of RepoBee are open to integration with third party tools for additional tasks, such as running unit tests or static analysis on student repositories. We also include the perspectives of both teachers and teaching assistants who have been using the tool as part of a first year course for computer scientists.
Simon Larsén, Richard Glassey
ITiCSE1