inf005 - Softwaretechnik I (Vollständige Modulbeschreibung)

inf005 - Softwaretechnik I (Vollständige Modulbeschreibung)

Originalfassung Englisch PDF Download
Modulbezeichnung Softwaretechnik I
Modulkürzel inf005
Kreditpunkte 6.0 KP
Workload 180 h
Einrichtungsverzeichnis Department für Informatik
Verwendbarkeit des Moduls
  • Fach-Bachelor Informatik (Bachelor) > Aufbaumodule
  • Fach-Bachelor Mathematik (Bachelor) > Nebenfachmodule
  • Fach-Bachelor Wirtschaftsinformatik (Bachelor) > Aufbaucurriculum - Pflichtbereich
  • Master of Education (Wirtschaftspädagogik) Informatik (Master of Education) > Pflichtbereich
  • Master Umweltmodellierung (Master) > Mastermodule
  • Zwei-Fächer-Bachelor Informatik (Bachelor) > Aufbaumodule (60 KP)
Zuständige Personen
  • Winter, Andreas (Modulverantwortung)
  • Lehrenden, Die im Modul (Prüfungsberechtigt)
Teilnahmevoraussetzungen

Erwartete/Nützliche Vorkenntnisse

aus inf030 Programmierung, Datenstrukturen und Algorithmen

Fachkompetenzen
Die Studierenden: 

  • beschreiben grundlegende Konzepte der imperativen Programmierung mit Java
  • erkennen die Terminologie der imperativen Programmierung und verwenden die entsprechenden Begriffe präzise bei Diskussionen
  • erkennen grundlegende Terminologie der objektorientierten Programmierung
  • beschreiben, was ihnen vorgelegte Programme tun
  • entwickeln selbstständig Programme für die Lösung kleinerer Probleme
  • untersuchen systematisch eigene und fremde Programme auf Fehler
  • setzen moderne Programmentwicklungsumgebungen zum Entwickeln und Testen von Programmen ein
  • erstellen Algorithmen mit allgemeinen Entwurfskonzepten (z.B. Greedy-Verfahren, Divide-and-Conquer- Verfahren)
  • benennen Algorithmen und Datenstrukturen zur Lösung von häufig vorkommenden Problemen und bewerten diese in ihrer Anwendbarkeit
  • benennen Probleme der Effizienz von algorithmischen Lösungen konkreter Fragestellungen und bewerten diese
  • wählen fundiert einen Algorithmus und eine Datenstruktur zur Lösung eines konkreten Problems aus
  • wenden die gelernten Algorithmen und Datenstrukturen sinnvoll auf gegebene und konkrete Probleme an

Methodenkompetenzen
Die Studierende: 

  • lösen gegebene Probleme unter den Gesichtspunkt der imperativen bzw. objektorientierten Programmierung
  • übertragen praktische Erfahrungen in der Programmentwicklung auf neue Aufgaben

Sozialkompetenzen
Die Studierenden 

  • vermitteln die Struktur und Wirkungsweise selbst entwickelter Programme an andere
  • präsentieren Lösungen zu kleinen Aufgaben vor Gruppen

Selbstkompetenzen
Die Studierenden: 

  • organisieren sich beim Finden von algorithmischen Lösungen für kleine und mittelgroße Probleme der Informatik
  • beziehen die Konzepte des allgemeinen Programmentwurfs in ihr Handeln ein

 

aus inf031 Objektorientierte Modellierung und Programmierung

Fachkompetenzen
Die Studierendende:

  • kennen grundlegende Konzepte der objektorientierten Modellierung und UML als Modellierungsnotation
  • kennen grundlegende Konzepte der objektorientierten Programmierung mit Java
  • kennen die Terminologie der objektorientierten Modellierung und Programmierung und verwenden die entsprechenden Begriffe präzise bei Diskussionen
  • können beschreiben, was ihnen vorgelegte objektorientierte Programme tun
  • entwickeln selbstständig Modelle und Programme für die Lösung mittelgroßer Probleme
  • untersuchen systematisch eigene und fremde Modelle und Programme auf Fehler
  • setzen moderne Entwicklungsumgebungen zum Modellieren und Entwickeln von Programmen ein
  • kennen die Unterschiede zwischen dem imperativen, objektorientierten, funktionalen, logischen und regelbasierten Programmierparadigma

Methodenkompetenzen
Die Studierenden:

  • entwickeln selbstständig Programme für gegebene Probleme durch konsequente Anwendung der Konzepte der objektorientierten Modellierung und Programmierung
  • übertragen praktische Erfahrungen in der Programmentwicklung auf neue Aufgaben
  • entwickeln selbstständig Programme mit Nebenläufigkeiten
  • können selbstständig bekannte Lösungsmethoden auf komplexe Probleme anwenden

Sozialkompetenzen
Die Studierenden:

  • vermitteln die Struktur und Wirkungsweise selbst entwickelter Modelle und Programme an andere
  • präsentieren selbstständig entwickelte Lösungen vor Gruppen

Selbstkompetenzen
Die Studierenden:

  • organisieren sich beim Entwickeln von Programmen für kleine und mittelgroße Probleme der Informatik
  • beziehen die Konzepte des objektorientierten Programmentwurfs in ihr Handeln ein
Kompetenzziele

Ziel des Moduls ist die Vermittlung der ingenieurmäßigen Entwicklung und Wartung umfangreicher Softwaresysteme. Betrachtet wird der vollständige Software-Entwicklungsprozess inkl. Anforderungserhebung, Software-Architektur und Qualitätssicherung sowohl in klassischen wie in agilen Vorgehensweisen. Vertieft werden Grundkonzepte der objektorientierten Modellierung und Softwareentwicklung auf Basis der Unified Modeling Language.


Fachkompetenzen
Die Studierenden:

  • erkennen die Phasen im Software-Lebenszyklus (Anforderungsermittlung, Entwurf, Implementierung, Qualitätssicherung)
  • benennen die in den Phasen anfallenden Aufgaben
  • erkennen und bewerten die Anordnung dieser Phasen in klassischen und agilen Vorgehensweisen
  • beurteilen und wählen geeignete Vorgehensweisen zur Umsetzung von Projekten aus
  • erkennen die Sprachmöglichkeiten der Modellierung mit UML
  • entwickeln und bewerten Modelle in unterschiedlichen UML-Notationen und deren Kombinationen
  • lösen gegebene Probleme mit Hilfe der UML-Notationen

Methodenkompetenzen
Die Studierenden:

  • strukturieren, bewerten, unterscheiden und nutzen Vorgehenweisen der klassischen und agilen Projektdruchführung
  • strukturieren, dokumentieren, bewerten Probleme und Lösungen mit den Werkzeugen der objekt-orientierten Modellierung
  • wenden Methoden und Techniken der objekt-orientierten Modellierung mit UML gezielt an

Sozialkompetenzen
Die Studierenden:

  • erstellen, präsentieren und diskutieren Problemlösungen mit Hilfe von Modellierungstechniken
  • beschreiben und lösen gegebenen Probleme der Modellierung in Gruppen

Selbstkompetenzen
Die Studierenden:

  • reflektieren ihr Handeln bei der Problembeschreibung und der Entwicklung von Lösungsansätzen
Modulinhalte

In dem Modul werden die grundlegenden Begriffe und Konzepte der Softwaretechnik vermittelt.
Es sind dies u.a.:

  • Notwendigkeit der Softwaretechnik
  • Prinzipien der Softwaretechnik
  • Aktivitäten und Vorgehensmodelle der Software-Entwicklung (klassisch, agil))
  • Objektorientierte Modellierung, Metamodellierung
  • Synchronisation von Code und Modellen
  • Ermittlung und Dokumentation von Anforderung (klassisch, agil))
  • Definition von Software-Architekturen
  • Einsatz von Mustern der Software Entwicklung
  • Definition und Sicherung der Softwarequalität
  • Wartung und Betrieb von Softwaresystemen
Literaturempfehlungen
  • Folienskript zur Vorlesung
  • Ian Sommerville: Software Engineering, Addison-Wesley Longman, Amsterdam, 10. Auflage (Global Edition). 2015.
  • Helmut Balzert: Lehrbuch der Software-Technik, Spektrum Akademischer Verlag, 3. Auflage 2009.
  • Anja Metzner:  Software-Engineering – kompakt, Hanser, München, 2020.
  • Ravi Sethi: Software Engineering: Basic Principles and Best Practices, Cambridge University Press, 8. Dezember 2022. 
  • Chris Rupp, Stefan Queins: UML 2 glasklar. Praxiswissen für die UML-Modellierung, Carl Hanser Verlag, 4. Auflage 2012.
  • Martina Seidl,  Marion Scholz, Christian Huemer, Gerti Kappel, UML @ Classroom: An Introduction to Object-Oriented Modeling, Springer, 2015.
  • Christoph Kecher, Alexander Salvanos, Ralf Hoffmann-Elbern: UML 2.5, Das umfassende Handbuch. 7. Aufl. Rheinwerk Computing, 2021.
  • OMG Unified Modeling Language, Version 2.5.1 (formal/17-12-05), Dec. 2017, https://www.omg.org/spec/UML/,
Links
Unterrichtssprache Deutsch
Dauer in Semestern 1 Semester
Angebotsrhythmus Modul jährlich
Aufnahmekapazität Modul unbegrenzt
Lehr-/Lernform V+Ü
Lehrveranstaltungsform Kommentar SWS Angebotsrhythmus Workload Präsenz
Vorlesung 3 WiSe 42
Übung 2 WiSe 28
Präsenzzeit Modul insgesamt 70 h
Prüfung Prüfungszeiten Prüfungsform
Gesamtmodul

Am Ende der Vorlesungszeit

Klausur  (im Regelfall)

mündliche Prüfung oder Portfolio (nach Absprache mit dem Prüfungsamt z.B. bei bewilligtem Nachteilsausgleich)