Modul 5300 -- Software Engineering - Software-Systeme


Modulbezeichnung Software Engineering - Software-Systeme
ggf. Kürzel 5300
Studiensemester 3. Semester
Modulverantwortlicher Beyer
Dozent Beyer
Sprache deutsch
Zuordnung zum Curriculum BSc. Inf./ITS, IC, Lehramt Inf. (vertieft)
Lehrform/SWS 2V + 1Ü
Arbeitsaufwand 45 h Präsenz + 30 h Übungsaufgaben + 75 h Nachbearbeitung und Prüfungsvorbereitung
Kreditpunkte 5
Voraussetzungen nach Prüfungsordnung keine
Empfohlene Voraussetzungen Programmierung I, Grundlagen der Informatik, Grundlagen der Mathematik I (für IC), Lineare Algebra I (für Inf.)
Angestrebte Lernergebnisse Kenntnisse:
Die Studenten erwerben grundlegende Kenntnisse zur Entwicklung und Wartung von Softwaresystemen, insbesondere erlernen die Studenten die Anwendung der Konzepte Divide&Conquer, Einfachheit, Rigor und Formalisierung, Strukturierung, Abstraktion und Hierarchie sowohl auf die Organisation des Softwareentwicklungsprozesses als auch auf die zu entwickelnde Software selbst.

Faehigkeiten:
Die in der Vorlesung vermittelten Kenntnisse ueber die Konzepte werden in den Uebungen vertieft und angewendet. Zusaetzlich zu dieser Veranstaltung wird im Software-Engineering-Praktikum ein reales Softwareprojekt simuliert und in einer Lerngruppe abgearbeitet.

Kompetenzen:
Die Studenten sind in der Lage, kleinere Softwaresysteme zu projektieren, beim Projektmanagement von grossen Systemen kompetent mitzuwirken, Konzepte und Werkzeuge zur Softwareentwicklung in der Praxis einzusetzen, die Qualitaet von Software zu beurteilen und qualitaetsverbessernde Massnahmen auszuwaehlen.

Inhalt Die Vorlesung behandelt die wichtigsten Prinzipien und Verfahren der Softwaretechnik, insbesondere:
  • Projekt-Management, Metriken, Team-Work, Risiko-Management
  • Softwareprozess-Modelle, Prozess-Aktivitaeten
  • Agile-Development, eXtreme Programming
  • Software-Architektur
  • Refactoring
  • Software-Engineering-Tools
  • Versionsverwaltungssysteme (RCS, CVS, Subversion, Mercury)
  • Free-Software, Software-Lizenzen, Patente
  • Software-Qualitaet, Software-Analyse, Testing
  • Automatisches Testen, Assertion-Checking, Unit-Testing (JUnit)
  • Software-Verifikation
  • Web-Service-orientierte Software-Entwicklung
  • Graph-Modelle von Softwaresystemen, Software-Structur-Analyse, Relational Querying
  • Software-Clustering, Layout-basierte Software-Dekomposition
  • Intellectual-Proterty und Software-Lizenzen
  • Cloud-Computing
Studien-/Prüfungsleistungen 90 min Klausur
Medienformen Beamer + Tafel
Literatur Balzert: Lehrbuch der Software-Technik, Band 1, -Software-Entwicklung. 2. Aufl., Elsevier-Verlag, 2001
Sommerville: Software Engineering. 7. Aufl., Addison-Wesley, 2004
Ghezzi, Jazayeri, Mandrioli: Fundamentals of Software Engineering. 2. Aufl., Pearson Education, 2002
Gamma, Helm et.al: Design Patterns. Addison-Wesley, 1995