Study on Concurrency Checking in .NET

Krucker, Rafael and Schaden, Markus (2016) Study on Concurrency Checking in .NET. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.

[img]
Preview
Text
HS16-SA-EP-Krucker-Schaden-ConcurrencyChecking.pdf - Supplemental Material

Download (2MB) | Preview

Abstract

Abstract Diese Arbeit soll eruieren, inwiefern das Erkennen von Code Smells im Bereich Parallele Programmierung das Schreiben von Software weniger fehleranfällig machen kann. Als Grundlage wurde dafür ein Paper verwendet, dass 10 solche Code Smells identifiziert und beschreibt. Das Ziel war das Schreiben einer Library, welche für die statische Code Analyse in C# zuständig ist. Als Grundlage dafür wird der Roslyn Compiler von Microsoft verwendet, welcher eine mächtige API für C# Code-Analysen bereitstellt. Dabei sollte die Library möglichst frei anwendbar sein. So wurden Integrationen für Microsofts Visual Studio sowie SonarQube erstellt, so dass die Analyse von der Kommandozeile bis hin zum Build Sever einsetzbar ist. Hauptaugenmerk wurde dabei auf Behandlung in die Breite gelegt. In einer Analyse von bekannten Open Source Projekten sowie einigen unbekannten, eher unvollständigen Programmen wurde dann untersucht, ob diese Code Smells in der Praxis vorkommen und auch zuverlässig erkannt werden können. Dabei zeigen sich grosse Unterschiede bei den Häufigkeiten des Auftretens der einzelnen Smells. Es treten bei den verschiedenen Projekten oft die gleichen Muster im Code auf, so dass durch entsprechende Warnungen Programmierer früh auf solche Probleme sensibilisiert werden können. Vergleicht man die Häufigkeit mit den Auswirkungen der Smells auf die Qualität, offenbart sich, welche Smells besonders verfolgt werden sollen. Die Untersuchung hat gezeigt, dass Smells im Bereich der parallelen Programmierung erkannt werden können und in der Realität auch auftreten. Dadurch kann gesagt werden, dass der Einsatz von Tools, die Smells erkennen, das Programmieren nebenläufiger Anwendungen sicherer und angenehmer macht. Die Untersuchung von realen Projekten hat weiterhin gezeigt, dass nicht alle Smells gleich häufig auftreten. Daher wurde eine Empfehlung gemacht, auf welche Smells sich die Tools konzentrieren sollten.

Item Type: Thesis (Student Research Project)
Subjects: Topics > Software > Refactoring
Area of Application > Statistics
Technologies > Programming Languages > C#
Technologies > Frameworks and Libraries > .NET
Brands > Microsoft
Metatags > INS (Institute for Networked Solutions)
Creators:
CreatorsEmail
Krucker, RafaelUNSPECIFIED
Schaden, MarkusUNSPECIFIED
Contributors:
ContributionNameEmail
Thesis advisorBläser, LucUNSPECIFIED
Depositing User: HSR Deposit User
Date Deposited: 09 Mar 2017 13:27
Last Modified: 09 Mar 2017 13:27
URI: http://eprints.hsr.ch/id/eprint/565

Actions (login required)

View Item View Item