kth.sePublications
Change search
Link to record
Permanent link

Direct link
Publications (7 of 7) Show all publications
Etemadi, K., Harrand, N., Larsén, S., Adzemovic, H., Luong Phu, H., Verma, A., . . . Monperrus, M. (2023). Sorald: Automatic Patch Suggestions for SonarQube Static Analysis Violations. IEEE Transactions on Dependable and Secure Computing, 20(4), 2794-2810
Open this publication in new window or tab >>Sorald: Automatic Patch Suggestions for SonarQube Static Analysis Violations
Show others...
2023 (English)In: IEEE Transactions on Dependable and Secure Computing, ISSN 1545-5971, E-ISSN 1941-0018, Vol. 20, no 4, p. 2794-2810Article in journal (Refereed) Published
Abstract [en]

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.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2023
Keywords
automatic program repair, Codes, Computer bugs, Java, Maintenance engineering, metaprogramming, Software development management, Static analysis, Static code analysis, Syntactics, Codes (symbols), Computer software, Java programming language, Program debugging, Repair, Software design, Trees (mathematics), Automatic programs, Code, Meta Programming, Static analyzers, Static codes
National Category
Computer Sciences
Identifiers
urn:nbn:se:kth:diva-323274 (URN)10.1109/TDSC.2022.3167316 (DOI)001029054600009 ()2-s2.0-85128651786 (Scopus ID)
Funder
Wallenberg AI, Autonomous Systems and Software Program (WASP)Swedish Foundation for Strategic Research, trustfull
Note

QC 20250513

Available from: 2023-01-24 Created: 2023-01-24 Last updated: 2025-05-13Bibliographically approved
Larsén, S., Falleri, J., Baudry, B. & Monperrus, M. (2023). Spork: Structured Merge for Java with Formatting Preservation. IEEE Transactions on Software Engineering, 49(1), 64-83
Open this publication in new window or tab >>Spork: Structured Merge for Java with Formatting Preservation
2023 (English)In: IEEE Transactions on Software Engineering, ISSN 0098-5589, E-ISSN 1939-3520, Vol. 49, no 1, p. 64-83Article in journal (Refereed) Published
Abstract [en]

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 tool, 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 present SPORK, a novel structured merge tool for JAVA. SPORK is unique as it preserves formatting to a significantly greater degree than comparable state-of-the-art tools. SPORK is also overall faster than the state of the art, in particular significantly reducing worst-case performance 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 between SPORK and the state of the art with in-depth case studies.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2023
Keywords
Codes, Computer languages, Java, Merging, Semantics, structured merge, Syntactics, Time complexity, Version control, Abstracting, Codes (symbols), Java programming language, Open source software, Software design, Trees (mathematics), Code, Highly parallels, Source codes, State of the art, State of the practice, Work-flows
National Category
Computer Sciences Software Engineering
Identifiers
urn:nbn:se:kth:diva-319611 (URN)10.1109/TSE.2022.3143766 (DOI)001020827200004 ()2-s2.0-85123384747 (Scopus ID)
Funder
Wallenberg AI, Autonomous Systems and Software Program (WASP)Swedish Foundation for Strategic Research, trustfull
Note

QC 20250513

Available from: 2022-10-05 Created: 2022-10-05 Last updated: 2025-05-13Bibliographically approved
Larsén, S. & Glassey, R. (2021). Double-blind Peer Review using RepoBee for Git-based Assignments. In: Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE: . Paper presented at 26th ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2021, 26 June 2021 through 1 July 2021 (pp. 615-616). Association for Computing Machinery (ACM)
Open this publication in new window or tab >>Double-blind Peer Review using RepoBee for Git-based Assignments
2021 (English)In: Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, Association for Computing Machinery (ACM) , 2021, p. 615-616Conference paper, Published paper (Refereed)
Abstract [en]

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. 

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2021
Keywords
Git, peer review, version control systems, Education computing, Engineering education, Engineering research, Administrative burdens, External systems, Key feature, Student development, Students
National Category
Pedagogy Pedagogical Work Educational Sciences
Identifiers
urn:nbn:se:kth:diva-310148 (URN)10.1145/3456565.3460031 (DOI)2-s2.0-85108873601 (Scopus ID)
Conference
26th ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2021, 26 June 2021 through 1 July 2021
Note

Part of proceedings: ISBN 978-1-4503-8397-4

QC 20220330

Available from: 2022-03-30 Created: 2022-03-30 Last updated: 2025-02-18Bibliographically approved
Hansson, T., Glassey, R. & Larsén, S. (2021). Sanitize This! Sharing Assignments and Solutions Safely in a Single Git Repository. In: Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE: . Paper presented at 26th ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2021, 26 June 2021 through 1 July 2021 (pp. 364-365). Association for Computing Machinery (ACM)
Open this publication in new window or tab >>Sanitize This! Sharing Assignments and Solutions Safely in a Single Git Repository
2021 (English)In: Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, Association for Computing Machinery (ACM) , 2021, p. 364-365Conference paper, Published paper (Refereed)
Abstract [en]

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. 

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2021
Keywords
assignment management, Git, version control systems, Education computing, Engineering education, Engineering research, Reference solution, Student assignments, Students
National Category
Pedagogical Work Didactics Educational Sciences
Identifiers
urn:nbn:se:kth:diva-310145 (URN)10.1145/3456565.3460036 (DOI)2-s2.0-85108895835 (Scopus ID)
Conference
26th ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2021, 26 June 2021 through 1 July 2021
Note

Part of proceedings: ISBN 978-1-4503-8397-4

QC 20220330

Available from: 2022-03-30 Created: 2022-03-30 Last updated: 2025-02-18Bibliographically approved
Sabin, M., Buffardi, K., Larsén, S. & MacKellar, B. (2020). Panel: Synergistic Perspectives on Collaborative Learning with Version Control Tools. In: Proceedings IEEE Frontiers in Education Conference (FIE 2020): . Paper presented at IEEE Frontiers in Education Conference (FIE), OCT 21-24, 2020, Uppsala, SWEDEN. Institute of Electrical and Electronics Engineers (IEEE)
Open this publication in new window or tab >>Panel: Synergistic Perspectives on Collaborative Learning with Version Control Tools
2020 (English)In: Proceedings IEEE Frontiers in Education Conference (FIE 2020), Institute of Electrical and Electronics Engineers (IEEE) , 2020Conference paper, Published paper (Refereed)
Abstract [en]

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.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2020
Series
Frontiers in Education Conference, ISSN 0190-5848
Keywords
version control, collaborative learning, version control tools, version control platforms, Git
National Category
Didactics
Identifiers
urn:nbn:se:kth:diva-296661 (URN)10.1109/FIE44824.2020.9273944 (DOI)000646660800076 ()2-s2.0-85098590509 (Scopus ID)
Conference
IEEE Frontiers in Education Conference (FIE), OCT 21-24, 2020, Uppsala, SWEDEN
Note

QC 20210623

Available from: 2021-06-23 Created: 2021-06-23 Last updated: 2022-06-25Bibliographically approved
Glassey, R. & Larsén, S. (2020). Towards Flexible and Extensible Git-based Course Management with RepoBee. In: Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE: . Paper presented at 25th annual conference on Innovation and Technology in Computer Science Education, Trondheim, Jun 17, 2020 - Jun 19, 2020 (pp. 537-538). Association for Computing Machinery (ACM)
Open this publication in new window or tab >>Towards Flexible and Extensible Git-based Course Management with RepoBee
2020 (English)In: Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, Association for Computing Machinery (ACM) , 2020, p. 537-538Conference paper, Published paper (Refereed)
Abstract [en]

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. 

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2020
Keywords
course management, Git/Github, version control systems, Control systems, Curricula, Education computing, Engineering education, Engineering research, Grading, Students, User experience, Common features, Course models, Design philosophy, Open source tools, Peer review, Version control system, Teaching
National Category
Pedagogical Work
Identifiers
urn:nbn:se:kth:diva-301679 (URN)10.1145/3341525.3393999 (DOI)2-s2.0-85086464770 (Scopus ID)
Conference
25th annual conference on Innovation and Technology in Computer Science Education, Trondheim, Jun 17, 2020 - Jun 19, 2020
Note

QC 20210915

Available from: 2021-09-15 Created: 2021-09-15 Last updated: 2024-01-10Bibliographically approved
Larsén, S. & Glassey, R. (2019). Repobee: Developing Tool Support for Courses using Git/GitHub. In: Proceeding ITiCSE '19 Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education: . Paper presented at 2019 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2019; University of Aberdeen, Aberdeen; United Kingdom; 15 July 2019 through 17 July 2019 (pp. 534-540). Association for Computing Machinery (ACM)
Open this publication in new window or tab >>Repobee: Developing Tool Support for Courses using Git/GitHub
2019 (English)In: Proceeding ITiCSE '19 Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, Association for Computing Machinery (ACM), 2019, p. 534-540Conference paper, Published paper (Refereed)
Abstract [en]

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.

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2019
Series
Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, ISSN 1942-647X
Keywords
Computing Education, Course Management, Git/GitHub, Version Control Systems
National Category
Educational Sciences
Identifiers
urn:nbn:se:kth:diva-262581 (URN)10.1145/3304221.3319784 (DOI)000532563500135 ()2-s2.0-85070893871 (Scopus ID)
Conference
2019 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2019; University of Aberdeen, Aberdeen; United Kingdom; 15 July 2019 through 17 July 2019
Note

QC 20200605

Part of ISBN 9781450363013

Available from: 2019-10-24 Created: 2019-10-24 Last updated: 2024-10-22Bibliographically approved
Organisations
Identifiers
ORCID iD: ORCID iD iconorcid.org/0000-0002-8343-057x

Search in DiVA

Show all publications