10915-01: Software Engineering
Departement Mathematik und Informatik, Universität Basel
Dozent
Tutoren
Kursbeschreibung
Die Vorlesung gibt eine erste Einführung in Software Engineering. Das Hauptziel der Vorlesung ist die Studierenden mit den Grundprinzipien von Software Engineering, sowie, zu einem gewissen Grad, auch mit der Geschichte des Gebiets vertraut zu machen. Aktuelle Methoden und Tools werden im Rahmen eines vorlesungsbegleitenden Projekts eingeführt.
Vorlesungsseite
Diese Seite entspricht der offiziellen Vorlesungsseite. Sie finden hier alle Informationen zur Vorlesung, sowie die Vorlesungsunterlagen. Diese Seite soll auch zeigen, wie man mittels Github Pages einfach technische Dokumentationen erstellen kann, die sich leicht pflegen lassen. Die Seite wird direkt aus dem Github Repository generiert. Wenn Sie Fehler finden, können Sie also gerne einen Pull Request machen.
Alles Material, welches nicht öffentlich zugänglich sein soll, wird auf unserem Adam workspace zur Verfügung gestellt.
Übungen und Vorlesungsbegleitendes Projekt
Das Open Source Projekt Jabref (Offizielles Github Repositories) dient als Grundlage für die praktischen Übungen und Projekt. Die Studierenden bringen kleine Änderungen am Projekt an, studieren den Source Code und implementieren dann eigene, grössere Erweiterungen.
Einen Überblick über die einzelnen Projektschritte finden Sie auf der Projektseite.
Programm
Theorie | Übung / Projekt | ||
---|---|---|---|
Woche 1 | Einführung / Administratives | Übung 0: Jabref Setup | |
Was ist Software engineering | |||
Kurze Geschichte des Software Engineerings | |||
Woche 2 | Eigenschaften von Software | Übung 1: Erste Änderungen an Jabref | |
Software Qualitätsmerkmale | |||
Woche 3 | Prinzipien des Software-Engineerings | Übung 2: Code verstehen | |
Modulbeziehungen | |||
Woche 4 | Softwaredesign | Übung 3: Unit tests | |
Woche 5 | OO Design | Übung 4: Jabref erweitern | |
Solid Prinzipien | Pitch: Projektideen | ||
Woche 6 | Anforderungsanalyse | Projektrepository erstellen | |
Pflichtenheft erstellen | |||
Woche 7 | Softwarespezifikation | Prototyping / Design | |
Woche 8 | UML | Prototyping / Design | |
Woche 9 | Verifikation / Grundlagen des Testens | Design / Testplan erstellen | |
Testen im Grossen | |||
Woche 10 | Testen im Kleinen | Implementation / Testen | |
Woche 11 | Softwareprozesse | Implementation / Testen | |
Agile Softwareentwicklung | |||
Woche 12 | Scrum | Implementation / Testen | |
Continuous delivery | |||
Woche 13 | Projektpräsentationen (I) | Projektpräsentationen (II) | |
Woche 14 | Zusammenfassung / Prüfungsvorbesprechung | - |
Literatur / Weiterführende Links
Empfohlene Lehrbücher
Der Vorlesungstoff kann gut mit dem zur Verfügung gestellten Material erarbeitet werden. Wer trotzdem ein Lehrbuch kaufen möchte, kann mit einem der folgenden, klassischen Büchern, keinen Fehler machen.
- S. L. Pfleeger, und J. M. Atlee. Software engineering: theory and practice
- Englischsprachiges Standardwerk des Software Engineerings. Wer nur ein Buch zum Thema kauft, sollte dieses kaufen.
- H. Lichter, und j. Ludewig, Software Engineering
- Deutschsprachiges Lehrbuch, welches einen guten Überblick über das Gebiet gibt. Es geht aber nicht so sehr ins Detail wie das Buch von Pfleeger und Atlee.
- C. Ghezzi, M. Jazayeri und D. Mandrioli, Fundamentals of Software Engineering
- Sehr empfehlenswerter Klassiker, welcher die Grundlage dieser Vorlesung bildet. Alle wichtigen Grundlagen werden hier hervorragend erklärt. Wegen des Alters des Buches fehlen aber aktuelle Themen. wie z.B. agile Softwareentwicklung.