Abschnittsübersicht

    • Ziel der Übung

      Analog zur Vorlesung befassen sich die Übungsaufgaben mit der zuverlässigen Entwicklung zuverlässiger Software. Im Rahmen eines Produktentwicklungszyklus werden in den Übungsaufgaben sowohl selbstgeschriebene als auch fremde Codestücke unter die Lupe genommen. Die Programmiersprache ist hierbei vorwiegend C. Als Vorraussetzung für die Übung sollte man deshalb grundlegende C-Kenntnisse mitbringen.

      Zuverlässige Software entwickeln

      Während der erste Teil sich auf das Finden von Entwicklungsfehlern konzentriert, betrachten wir in der zweiten Hälfte auch Fehler, die zur Laufzeit auftreten können. Hierzu zählen vor allem unerwartete Hardwarefehler, die den Programmfluss bzw. Rechenergebnisse beeinflussen können. In der Übung werden wir hierzu verschiedene konstruktive Maßnahmen kennenlernen und umsetzen, die die Software gegen derartige Fehlerszenarien härten können.

      Zuverlässig entwickeln

      Ein wesentlicher Bestandteil dieser Veranstaltung ist das Kennenlernen und der Umgang mit Werkzeugen, die die Entwicklung verlässlicher Systeme unterstützen. Hierzu zählen u.a.:

    • Helpdesk

      Der HelpDesk findet online in unserem Matrix-Raum #vss-helpdesk:fachschaften.org (z.B. via Matrix-Server der Fachschaft) statt. Dort steht euch asynchron ein Tutor zur Seite, um Fragen zu beantworten und Hilfestellungen zu geben. Sollte die Textform nicht als Kommunikationskanal ausreichen, besteht die Möglichkeit, auf unseren Raum auf unseren BigBlueButton-Server auszuweichen.

      Matrix

      Matrix ist ein föderiertes Chat-System. Unsere Fachschaft betreibt einen Server dieser Föderation auf fachschaften.org und hat ausführlich dokumentiert, wie dieser genutzt werden kann. Kurzfassung:


    • Übungsmaterial

      Der Großteil der Videos wurde im Sommersemester 2020 aufgezeichnet. Sofern nötig, wurden diese neu eingespielt. Sollten sich dennoch veraltete Daten oder ins SS20 verweisende Links in den Videos finden, bitte entsprechend durch SS22 ersetzen (und uns mitteilen).

    • Kapitel
      Start
      Thema Folien
      Screencasts
      1
      14.04.
      1. Versionsverwaltung mit git
      1.0 Organisatorisches
      1.1 Nachschlagewerk: Reguläre Übungsfolien
      Git by Example

      Animiert | A4
      Animiert | A4



      Video
      2
      21.04.
      2. Softwareentwurf, Festkommaarithmetik und Schnittstellendesign
      2.0 Prinzipien des Softwareentwurfs
      2.1 C als standardisierte Programmiersprache
      2.2 Festkommaarithmetik
      2.3 Softwareentwurf am Beispiel eines einfachen Filters
      2.4 Aufgabe2: Filterimplementierung mit Festkommaarithmetik

      Animiert | A4
      Animiert | A4
      Animiert | A4
      Animiert | A4
      Animiert | A4


      Video
      Video
      Video
      Video
      3
      27.04. 3. Triple Modular Redundancy
      3.0 Die Zahl 3
      3.1 Replikation auf Quellcodeebene, Untersuchung von Binärdateien
      3.2 Aufgabe 3: Triple Modular Redundancy
      Exkurs: Replikation in der Praxis
      Exkurs: Arbeiten mit Unixoiden Benutzerschnittstellen


      Animiert | A4
      Animiert | A4

      Youtube
      Video, Video
      Video
      Video
      Video
      4
      12.05.
      4. Kodierung und Fehlerraumanalyse
      4.0 Implementierungsaspekte Arithmetische Codierung
      4.1 Fehlerinjektion

      Animiert | A4
      Animiert | A4

      Video
      5
      02.06.
      5. Testen
      5.0 Dynamisches Testen
      5.1 Exkurs: Werkzeuggestütztes Testen
      5.2 Iteratorentwurf

      Animiert | A4
      Animiert | A4
      Animiert | A4

      Video
      Video
      5
      23.06.
      6. Analyse und Verifikation funktionaler und nicht-funktionaler Eigenschaften
      6.0 Verifikation Laufzeitfehler mittels Astrée
      6.1 Funktionale Verifikation mittels Frama-C

      Animiert | A4
      Animiert | A4

      Video
      Video