Softwaretechnologie
Kurs-Beschreibung
Professionelle Softwareentwicklung erfordert deutlich mehr als die bloße Fähigkeit, funktionierenden Programmcode zu schreiben. Dies reicht von der Erfassung von Kundenanforderungen über detaillierte Projektplanung, Entwurf von Architektur und Schnittstellen bis zur Qualitätssicherung und Wartung des fertigen Produkts. Für das effiziente und zielgerichtete Bearbeiten all dieser Themen im Laufe des Softwarelebenszyklus stehen heutzutage glücklicherweise viele moderne Tools zur Unterstützung der Prozesse zur Verfügung.
In der Veranstaltung "Softwaretechnologie" beschäftigen wir uns sowohl mit theoretischen Aspekten der obigen Konzepte als auch mit dem Erwerb von praktischen Fähigkeiten im Umgang mit wichtigen Werkzeugen.
Literatur
- M. Seidl, M. Scholz, Ch. Huemer, G. Kappel. UML @ Classroom. Springer UTiCS, Heidelberg, 2015.
- H. Balzert. Lehrbuch der Softwaretechnik: Entwurf, Implementierung, Installation und Betrieb. Spektrum Akademischer Verlag, Heidelberg, 2011.
- H. Balzert. Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering. Spektrum Akademischer Verlag, Heidelberg, 2009.
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software, mitp-Verlag, 2015.
- R. C. Martin. Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code. mitp Professional, Heidelberg, 2009.
- I. Sommerville. Software Engineering. Pearson, Hallbergmoos, 2018.
- H. Balzert. Lehrbuch der Objektmodellierung: Analyse und Entwurf mit UML 2. Spektrum Akademischer Verlag, Heidelberg, 2005.
Bewertung und Abschlussprüfung
Die Note für dieses Modul wird über eine einzelne Klausur am Semesterende bestimmt. Falls nicht anders angekündigt, wird diese den gesamten Kursinhalt abdecken.
Bonus
Durch Bearbeiten von Übungsblättern können im Laufe des Semesters bis zu 10 Bonuspunkte für die Klausur erworben werden. Diese Bonuspunkte werden zur in der Klausur erreichten Punktzahl addiert, sofern die Klausur bereits ohne Bonus bestanden wurde. In der Klausur können maximal 100 Punkte erzielt werden, so dass der maximale Bonus 10% der Klausurpunkte entspricht.
Syllabus
Requirements Engineering
- Software-Anforderungen
- Lastenheft
- Pflichtenheft
Projektmanagement
- Aufwandsschätzung
- Netzplantechnik
- Klassische Prozessmodelle
Objektorientierter Entwurf mit Hilfe der UML
- Klassendiagramme
- Use-Case-Diagramme
- Sequenzdiagramme
- Aktivitätsdiagramme
- Zustandsautomaten
- Analyse- und Design-Patterns
Versionsverwaltung
- Arten von Versionsverwaltung
- Grundlegende Benutzung von Git
- Branching
- GitFlow
- Trunk-based Development
Qualitätssicherung
- Arten von Softwaretests
- Unit Tests, Testüberdeckung
- Unit Tests in Java mit JUnit 5
- Code Quality & Software Craftsmanship
- Statische Codeanalyse
- Code Reviews
Modernes Software Engineering
- Continuous Integration & Continuous Deployment
- Agile Softwareentwicklung
- Test Driven Development