Avatar vom Dozent:in

Sichere Softwareentwicklung verteilter, web-basierte Systeme edit

Modulverantwortlich Prof. Dr. Hoai Viet Nguyen
Dozent:innen Prof. Dr. Hoai Viet Nguyen
Kürzel SSW
Studiensemester 2
Sprache deutsch
Kreditpunkte 6
Voraussetzungen nach Prüfungsordnung keine über die Zulassungsvorrausetzungen zum Studium hinausgehenden
Empfohlene Voraussetzungen IT-Sicherheit,Fortgeschrittene Themen verteilter, web-basierter Systeme (Web Architekturen), Web Technologien
Prüfungsformen Hausarbeit und mündliche Prüfung
Level Schwerpunkt
Häufigkeit des Angebots jedes Sommersemester
Letzte Aktualisierung 10. Mai 2024

Kurzbeschreibung

Die Lehrveranstaltung vermittelt grundlegende Konzepte zur Gestaltung eines sicheren Softwareentwicklungsprozesses verteilter, web-basierter Systeme, beginnend beim Requirements Engineering und erstreckt sich bis zur Inbetriebnahme und Wartung.

Lehrform/SWS

4 SWS: Vorlesung 2 SWS; Seminar 2 SWS

Arbeitsaufwand

Gesamtaufwand 180 Stunden, davon

Angestrebte Lernergebnisse

(WAS) Studierende können Sicherheitsgutachten über den gesamten Softwareentwicklungsprozess erstellen,

(WOMIT) indem sie

(WOZU) um später qualitativ hochwertige Sicherheitskonzepte sowie Sicherheitsbewertungen zu verfassen mit dem Ziel Entwickler, Architekten, Requirements Engineers und Testingenuiere bei der sicheren von Entwicklung von komplexen Softwaresytemen zu unterstützen.

Inhalt

Medienformen

Literatur

Geförderter Kompetenzerwerb

Das Modul zahlt auf folgende Handlungsfelder und Kompetenzbereiche ein. Eine ausführliche Beschreibung der konkreten Komptenzen finden Sie weiter unten.

Designing for User Experiences

Developing Interactive and Distributed Systems

Exploring Advanced Interactive Media

Driving Creation Process

Developing Interactive and Distributed Systems

  • Technologie

    • Kennen State-of-the-art Technologie zur Umsetzung von software-basierten Anwendungen (insb. in den Bereichen Web, Mobile, IoT, AR/VR, AI), können konkurrierende alternative Technologien auswählen und evaluieren, sich neue technologische Möglichkeiten erschließen, diese bewerten, nutzen, und integrieren sowie zukunftsorientiert neue Möglichkeiten screenen.

    • Wissen wie Kommunikation zwischen Computern realisiert wird (bspw. req/res, pub/sub und Protokolle wie HTTP, MQTT).

    • Wissen was ein Computer ist und wie Software darauf ausgeführt wird.

  • Entwurf

    • Können abstrahieren, logisch denken und komplexe Zusammenhänge verstehen.

    • Können Aspekte realweltlicher Probleme zu identifizieren, die für eine informatische Modellierung geeignet sind, algorithmische Lösungen für diese (Teil-)Probleme bewerten und selbst so zu entwickeln, dass diese Lösungen mit einem Computer operationalisiert werden können.

    • Konzepte (bspw. Paradigmen, Architekturen, Pattern) für die web-basierte Verteilung von Komponenten (bspw. Frontend/Clients/Apps, Backend/Server/Cloud) für verteilte interaktive Anwendungen kennen und umsetzen können.

  • Implementierung

    • Kennen Entwicklungsumgebungen, Tools und entwicklungsnahe Prozesse und diese praktisch nutzen (insb. IDE, Compiler, Linker, Libraries, Debugging, Unit-Testing, Repositories für eigenen Code / git, Build Tools, Paketmanager).

    • Können digitale Produkte und verschiedene Software-Artefakte zur Evaluation und zur Nutzung auf typischen Distributionswegen (bspw. Clickdummy, Web-Deployment, App Store) für verschiedene Zielgruppen bereit stellen (lauffähig, sicher und gebrauchstauglich).

Driving Creation Process

  • Innovation

    • Kennen verschiedene Geschäftsmodelle und können einschätzen für welche Art von digitalem Produkt und Markt diese anwendbar sind.

  • Management

    • Können erkennen, welche Kompetenzen zur Lösung eines Problems erforderlich sind.

  • Kommunikation

    • Können Ideen vermitteln, sich über Anforderungen verständigen, Feedback einholen und mit verschiedenen Interessengruppen zu interagieren und verhandeln.

    • Sind in der Lage Arbeits- und Forschungsergebnisse klar und verständlich in aussagekräftigen, zielgruppengerechten Berichten, Präsentationen o.Ä. zu kommunizieren.

Exploring Advanced Interactive Media

  • Medien

    • Haben die Fähigkeit zur Darstellung und Visualisierung großer Datenmengen, um komplexe Daten auf verständliche und ansprechende Weise zu präsentieren.

  • Exploration & Kreativität

    • Können neue und unkonventionelle Ideen generieren, diese (systematisch) variieren und weiter entwickeln.

    • Können Ansätze, Denk- und Vorgehensweisen aus verschiedenen Fachrichtungen nutzen, kombinieren und einsetzen um neue Ideen und Lösungen zu erzeugen.

    • Haben eine offene Fehlerkultur in der Fehler nicht als Endpunkt betrachtet, sondern als Teil des Lernprozesses verstanden und genutzt werden, um Prozesse zu verbessern, zukünftige Fehler zu vermeiden und exploratives Handeln zu fördern.

    • Haben die Fähigkeit zur Selbstreflexion um Handlungen und Entscheidungen evaluieren und iterieren zu können.

    • Sind neugierig, offen und in der Lage Fragen zu stellen, Unbekanntes zu erkunden und verschiedene Perspektiven zu berücksichtigen.

  • Prototyping

    • Beherrschen verschiedene Formen von Prototyping zum frühzeitigen Einholen von Feedback und zum Erklären, Erkunden und erlebbar machen von Ideen und Ansätzen.

    • Können angemessene Prototypen für die jeweilige Fragestellung und Entwicklungsphase entwickeln und effizient einsetzen.

Enhancing Interactions on Different Scales

  • Analyse, Studien und Experimente

    • Sind erfahren und geübt Kooperation und Umgang mit Stakeholdern und zukünftigen Nutzer:innen.

  • Situated Interaction

    • Haben ein tiefes Verständnis für die Bedürfnisse, Verhaltensweisen und Erwartungen der Benutzer:innen.

    • Können technologische Aspekte, die bei der Implementierung situierter Interaktion eine Rolle spielen, berücksichtigen, dies beinhaltet Kenntnisse über Sensortechnologien, Datenverarbeitung, maschinelles Lernen und die Integration von Software in physische Umgebungen.

  • Selbstlernen

    • Können wissenschaftlich Arbeiten und Schreiben.

    • Können sich selbstständig neue Wissens- und Kompetenzbereiche zu Methoden, Technologien oder Domänen erschließen.

In der linken Spalte sehen Sie, welche Kompetenzen für das Modul vorausgesetzt werden (hellgrauer Balken). In der rechten Spalte sehen Sie, welche Kompetenzen Sie mit dem Modul erwerben können (farbiger Balken). Die Kompetenzen sind in Handlungsfelder und Bereiche gegliedert.

Wenn Sie auf den grauen oder farbigen Balken klicken, gelangen Sie zu einer Liste von Modulen, die auf diese Kompetenz einzahlen. Hier finden die eine Übersicht über alle Kompetenzen und die Module, die auf diese einzahlen.

arrow_upward