htw saar
Zurück zur Hauptseite

Version des Moduls auswählen:
XML-Code

Software Engineering

Modulbezeichnung: Software Engineering
Studiengang: Wirtschaftsinformatik, Bachelor, ASPO 01.10.2021
Code: DBWINFO-220
SWS/Lehrform: -
ECTS-Punkte: 6
Studienjahr: 2
Pflichtfach: ja
Arbeitssprache:
Deutsch
Prόfungsart:
Klausur (120 Minuten, davon 80 Min. für Methoden der Softwareentwicklung und 40 Min. für Werkzeuge der Softwareentwicklung)
Pro Bearbeitungsminute ist ein Punkt zu vergeben.

[letzte Änderung 06.10.2021]
Verwendbarkeit / Zuordnung zum Curriculum:
DBWINFO-220 Wirtschaftsinformatik, Bachelor, ASPO 01.10.2021, 2. Semester, Pflichtfach
Arbeitsaufwand:
Der Gesamtaufwand des Moduls beträgt 180 Arbeitsstunden.
Empfohlene Voraussetzungen (Module):
Keine.
Als Vorkenntnis empfohlen fόr Module:
Modulverantwortung:
Prof. Dr. Dieter Hofbauer
Dozent: Prof. Dr. Dieter Hofbauer

[letzte Änderung 01.09.2021]
Lernziele:
Methoden der Softwareentwicklung:
 
Die Studierenden kennen grundlegende Probleme, Ziele und Methoden der Softwareentwicklung.
Die wesentlichen Tätigkeiten, Vorgehensweisen und Rollen im Softwarelebenszyklus sind bekannt.
Die Studierenden sind in der Lage, Softwareentwicklungsprojekte mit Hilfe aktueller objektorientierter Analyse- und Entwurfsmethoden durchzuführen und die Rolle objektorientierter Konzepte in
der Praxis zu bewerten. Die Studierenden sind mit verschiedenen Entwicklungsmodellen vertraut;
Vor- und Nachteile wesentlicher Modelle für unterschiedliche Einsatzbereiche sind verstanden. Sie
sind in der Lage, die Modellierungssprache UML in der Softwareentwicklung sinnvoll einzusetzen.
Instanzen wesentlicher UML-Diagrammarten können sowohl gelesen als auch erstellt werden. Die
Studierenden haben wichtige Entwurfsmuster kennengelernt und können sie auf neue Problemstellungen übertragen.
  
Werkzeuge der Softwareentwicklung:
 
Die Studierenden kennen die grundlegenden Ziele und Aufgaben einer Werkzeugunterstützung
und können sie in alle relevanten Softwareentwicklungsprozesse einordnen; insbesondere verstehen sie die Relevanz von Verfahren und Werkzeugen zur kontinuierlichen Integration (CI) für agile
Prozessmodelle. Die Studierenden kennen aktuelle Werkzeuge zur Automatisierung von Buildprozessen und können Buildskripte zur Unterstützung wesentlicher Entwicklungsschritte (Compilierung, Dokumentation, Archivierung, Deployment) erstellen. CI-Werkzeuge sind ihnen über praktische Übungen bekannt. Sie sind mit verschiedenen Modellen und ausgewählten Werkzeugen aus dem Bereich Versionsverwaltung bzw. Sourcecode-Management vertraut. Die Studierenden verstehen das Konzept der testgetriebenen Entwicklung und können automatisierte Tests unter Verwendung von Unit-Tests durchführen. Ihre Fähigkeit zum Einsatz der behandelten Werkzeuge in einer integrierten Entwicklungsumgebung ist durch praktische Übungen vertieft.

[letzte Änderung 06.10.2021]
Inhalt:
Methoden der Softwareentwicklung:
 
1. Probleme, Ziele und Tätigkeiten in der Softwareentwicklung
2. Ausgewählte Vorgehens- und Prozessmodelle
  2.1. Wasserfallmodell
  2.2. V-Modell 97, V-Modell XT
  2.3. Prototyping
  2.4. Spiralmodell
  2.5. Agile Modelle: Agiles Manifest, Extreme Programming, Scrum
 
3. Requirements Engineering
4. Objektorientierter Softwarelebenszyklus
5. Statische Konzepte der objektorientierten Analyse35
  5.1. OO-Basiskonzepte
  5.2. Klassen- und Objektdiagramme
 
6. Dynamische Konzepte der objektorientierten Analyse
  6.1. OO-Basiskonzepte
  6.2. Anwendungsfälle und Use-Case-Diagramme
  6.3. Aktivitätsdiagramme
  6.4. Szenarios und Sequenzdiagramme
  6.5. Zustandsautomaten
  6.6. Ablauf des Analyseprozesses
 
7. Entwurfsphase
  7.1. Einführung in den objektorientierten Entwurf
  7.2. Architekturmuster
  7.3. Ausgewählte Entwurfsmuster
 
Werkzeuge der Softwareentwicklung:
 
1. Werkzeugunterstützung im Entwicklungsprozess (CASE-Tools); Einordnung in ausgewählte Softwareentwicklungsmodelle
2. Softwaretests
  2.1. Zielsetzung; Testarten und -kategorien (Unit-Tests, Integrationstests, Akzeptanztests, Lasttests)
  2.2. Testautomatisierung: Testspezifikation, -implementierung, -ausführung
  2.3. Unit-Tests mit JUnit: Zielsetzung und Verwendung; Testklassen und -methoden
  2.4. Test Driven Development
  2.5. Test-Management; Issue-Tracking-Systeme
 
3. Werkzeugunterstützung bei Reengineering und Refactoring
4. Versionsverwaltung und Sourcecode-Management-Systeme (SCM)
  4.1. Ziele und Konzepte
  4.2. Beispiele für SCM-Werkzeuge (Subversion, Git)
 
5. Build-Management am Beispiel (Apache Ant versus Apache Maven)
  5.1. Voraussetzung für den Einsatz; IDE-Unterstützung
  5.2. Typische Tasks für Java-Builds
  5.3. Repository-Konzept; Abhängigkeitsverwaltung
 
6. Continuous Integration
  6.1. Einordnung in den Buildprozess
6.2. Arbeitsweise von CI-Werkzeugen am Beispiel von Jenkins

[letzte Änderung 06.10.2021]
Weitere Lehrmethoden und Medien:
Vorlesung, praktische Übungen

[letzte Änderung 06.10.2021]
Literatur:
Methoden der Softwareentwicklung:
 
• Balzert, Heide: Lehrbuch der Objektmodellierung – Analyse und Entwurf mit der UML 2; Spektrum Akademischer Verlag; Heidelberg
• Gamma, Erich/Helm, Richard/Johnson, Ralph E./Vlissides, John: Entwurfsmuster – Elemente wiederverwendbarer objektorientierter Software; mitp; Frechen
• Geirhos, Matthias: Entwurfsmuster – Das umfassende Handbuch; Rheinwerk; Bonn
• Ludewig, Jochen/Lichter, Horst: Software Engineering – Grundlagen, Menschen, Prozesse,
Techniken; dpunkt; Heidelberg
• Oestereich, Bernd, Scheithauer, Axel: Analyse und Design mit der UML 2.5 – Objektorientierte
Softwareentwicklung; Oldenbourg; München
• Rupp, Chris/Queins, Stefan/Sophisten, die: UML 2 glasklar – Praxiswissen für die UML-Modellierung; Hanser; München
• Sommerville, Ian: Software Engineering; Pearson; München
Werkzeuge der Softwareentwicklung:
• Inden, Michael: Der Weg zum Java-Profi – Konzepte und Techniken für die professionelle
Java-Entwicklung; dpunkt; Heidelberg
• Osherove, Roy: The Art of Unit Testing; mitp, Frechen
• Popp, Gunther: Konfigurationsmanagement mit Subversion, Maven und Redmine – Grundlagen für Softwarearchitekten und Entwickler; dpunkt; Heidelberg
• Spillner, Andreas/Linz, Tilo: Basiswissen Softwaretest – Aus- und Weiterbildung zum Certified
Tester; dpunkt; Heidelberg
• Wolff, Eberhard: Continuous Delivery – Der pragmatische Einstieg; dpunkt; Heidelberg

[letzte Änderung 06.10.2021]
[Wed Aug 10 09:55:16 CEST 2022, CKEY=asea, BKEY=aswwinf, CID=DBWINFO-220, LANGUAGE=de, DATE=10.08.2022]