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 (Vorläufig)
Theorie | Übung / Projekt | |
---|---|---|
Woche 1 | Was ist Software engineering | Übung 0: JabRef Setup |
Eigenschaften von Software | ||
Woche 2 | Prozesse und Werkzeuge des Software Engineerings | Übung 1: Erste Änderungen an JabRef |
Woche 3 | Qualitätsmerkmale von Software | Übung 2: Code verstehen |
Anforderungsanalyse | Gruppe gewählt / Projektvorschlag eingereicht | |
Woche 4 | Architektur / Design | Übung 3: Unit tests |
UML | Entwurf Pflichtenheft | |
Woche 5 | Modularität / Architektur / Design Patterns I | Übung 4: JabRef erweitern |
Woche 6 | Modularität | Prototyping eigene Erweiterung |
Pflichtenheft Besprechung | ||
Woche 7 | Design patterns (Zweiter Teil von Woche 6) | Entwurf Designdoc |
Woche 8 | Verifikation / Grundlagen des Testens | Besprechen Designdoc |
Testen im Grossen | Testplan erstellen | |
Implementation eigene Erweiterung | ||
Woche 9 | Testen im Kleinen | Testplan erstellen |
Implementation eigene Erweiterung | ||
Woche 10 | Modellieren mit Alloy I | Besprechung Testplan |
Woche 11 | Modellieren mit Alloy II | Implementation eigene Erweiterung |
Woche 12 | Projektpräsentationen | Projektpräsentationen |
Woche 13 | Gastvortrag Agile Softwareentwicklung | Gastvortrag Agile Softwareentwicklung |
Woche 14 | Zusammenfassung | Besprechung der Alloy Übungen |
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.