Sommersemester 2018

Praxis der Softwareentwicklung (PSE)

Blockchain-basiertes E-Voting

Prof. Dr. Bernhard Beckert
Mihai Herda, Michael Kirsten

Aktuelles

  • 05.04.2018: Bekanntgabe des Themas

Allgemeines

In "Praxis der Softwareentwicklung" (PSE) lernen die Teilnehmer, ein vollständiges Softwareprojekt nach dem Stand der Softwaretechnik in einem Team mit etwa 5 bis 6 Teilnehmern durchzuführen. Ziel ist es insbesondere, Verfahren des Software-Entwurfs und der Qualitätssicherung praktisch einzusetzen, Implementierungskompetenz umzusetzen, und arbeitsteilig im Team zu kooperieren.

Allgemeine Informationen zum Bachelor-Modul inklusive formaler Voraussetzungen und Prüfungsmodalitäten sind auf den Seiten des Lehrstuhls für Programmierparadigmen am IPD zu finden.

Projektinhalt

Hintergrund

Eines der Forschungsthemen an unserem Lehrstuhl ist die Spezifikation und Verifikation von Wahlverfahren, um nachzuweisen, dass diese korrekt ablaufen. Die Entwicklung von Distributed-Ledger-Technologien (bzw. Blockchains) stellt nun eine Möglichkeit dar, die Nachverfolgbarkeit der Stimmabgabe über eine Kette von Transaktionen in der Blockchain zu gewährleisten. Neben den sehr populär gewordenen Umsetzungen öffentlicher Blockchains wie Ethereum oder Bitcoin existieren außerdem sogenannte permissioned Ledger-Technologien, die spezialisierte Blockchains für einen begrenzten Nutzerkreis inklusive einer individuellen Rechteverwaltung ermöglichen. Innerhalb dieses Projekts wollen wir diese Technologie nun auf elektronische Wahlverfahren anwenden.

Dieses PSE-Projekt ist Teil des Forschungsprojekts VeriSmart. Im Rahmen von VeriSmart (ein Software Campus-Projekt) entwickelt unsere Forschungsgruppe Wege für die Spezifikation und formale Verifikation von Smart Contracts.

Aufgabenbeschreibung

Innerhalb dieses Projekts sollen Sie ein Blockchain-basiertes E-Voting-System entwerfen und implementieren. Vorerst soll die Stimmabgabe öffentlich sein und für kleine Wahlen (bspw. für Vereinswahlen o.Ä.) funktionieren. Optional können verschiedene Abstimmungstypen (Mehrheitswahlen, Zustimmungswahlen, Präferenzwahlen, etc.) ergänzt sowie zusätzliche Konzepte wie etwa eine Stimmendelegation unterstützt werden. Hierbei erwarten wir, dass Sie sich selbstständig in das Blockchain-Framework einarbeiten. Wenn Sie gut mit dem Framework zurechtkommen, sind auch Erweiterungen auf (teil-)private Wahlen denkbar.

Anforderungen

  • Funktionalität für Wähler und Wahlleiter
  • Stimmen im Ledger gespeichert
  • Automatische Überprüfung und Auszählung mit Smart Contracts
  • Zwei graphische Benutzeroberflächen (eine für Wähler, eine für Wahlleiter)

Technischer Rahmen

Hinweise und Erwartungen

  • Aktives Source Code Management mittels eines Versionsverwaltungssystems
  • Automatische Softwaretests
  • Kontinuierliche Integration
  • Anwendung bzw. Einhaltung von Design Patterns, Best Practices, und Style-Konventionen
  • Kommentierter Quellcode, sowie Dokumentation und Testprotokolle

Termine

Abgabe der Artefakte: Jeweils 11:00 Uhr am Mittwoch vor dem Kolloquium im SVN-Depot.1

Termin Zeit Inhalt Ort
24.04.2018 15:45 Uhr Auftaktveranstaltung -- Projektvorstellung Gaede-Hörsaal (Geb. 30.22)
04.05.2018 15:45 Uhr Erstes Gruppentreffen -- KickOff-Folien Raum 211, Gebäude 50.34
11.05.2018 15:45 Uhr Gruppentreffen -- Aufgabenbeschreibung, Pflichtenheftaufgabe Raum 211, Gebäude 50.34
18.05.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
25.05.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
01.06.2018 15:45 Uhr Kolloquium Pflichtenheft (Abgabe am 30.05.2018) -- Entwurfsaufgabe Raum 211, Gebäude 50.34
08.06.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
15.06.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
22.06.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
29.06.2018 16:15 Uhr Kolloquium Entwurf (Abgabe am 27.06.2018) -- Implementierungsaufgabe Raum 211, Gebäude 50.34
06.07.2018 15:00 Uhr Gruppentreffen Raum 211, Gebäude 50.34
13.07.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
20.07.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
30.07.2018 10:00 Uhr Kolloquium Implementierung (Abgabe am 25.07.2018) -- Qualitätssicherungsaufgabe Raum 211, Gebäude 50.34
30.07.2018  –  10.08.2018 Klausurenpause
17.08.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
24.08.2018 15:45 Uhr Gruppentreffen Raum 211, Gebäude 50.34
31.08.2018 09:45 Uhr Kolloquium Qualitätssicherung (Abgabe am 29.08.2018) Raum 211, Gebäude 50.34
07.09.2018 15:45 Uhr Interne Abnahme -- Abschlusspräsentationsaufgabe Raum 211, Gebäude 50.34
21.09.2018 15:00 Uhr Abschlusspräsentation Raum 301, Gebäude 50.34

Dokumente

Weiteres Material



1. Bitte erst hier registrieren.