Software Engineering (Sommersemester 2020)


Aktueller Hinweis: Aufgrund der Präventivmaßnahmen findet der Unterricht bis auf weiteres Online statt, hierfür richten wir kurzfristig die Infrastruktur ein, Sie werden über den Campusboard-Mailverteiler informiert! Sollten Sie nicht im Campusboard für de Kurs registriert sein, melden Sie sich bitte per E-Mail bei mir, dann erhalten Sie die Zugangsdaten.

Das erste Online-Meeting findet heute testweise per Jitsi-Konferenz ab 11:00 Uhr statt, die Adresse und eine Telko-Festnetznummer als Alternative, wenn das Netz überlastet sein sollte, wird Ihnen per E-Mail mitgeteilt.

Vorlesungsbeginn: Mittwoch, 18.3.2020 09:45 Uhr in A209.2 per Webkonferenz

Vorläufiger Termin Robocode Präsentationen: Freitag, 05.7.2019 14:00 Uhr in A209.1

Zeiten und Gruppeneinteilung Software Engineering SS2020 für Information Management (BA)
SE VorlesungMittwochs 09:45-11:15 Uhr, A209.2 Online
SE Übung + ProjektMittwochs 11:45-13:15 Uhr, A209.2 Online

Die Veranstaltung besteht aus Vorlesung, Übungen am Rechner und einem praktischen Projekt, das in Gruppenarbeit bearbeitet wird (zuhause bzw. in diesem Semester auch online, 2SWS). Beschreibung und Informationen zum Software Engineering Projekt (Robocode) finden Sie unter http://knopper.net/bw/sep/. Schriftliche Klausur und Robocode-Projekt mit Präsentation fließen zu jeweils 50% in die Benotung ein.

Die zu jeder Vorlesung gehörenden Übungsblätter stehen unmittelbar nach der jeweiligen Vorlesung unter http://knopper.net/bw/se/uebungen/ zum Download bereit. Sie sollten schon vor der auf die Vorlesung folgenden Übung (in der Folgewoche) bearbeitet, und am Übungstermin im PC-Pool am Rechner nur noch kontrolliert bzw. nachbearbeitet werden.

Alle Übungen sind betriebssystemunabhängig lösbar, Sie benötigen für die Programmierteile eine eingerichtete Java Entwicklungs- (JDK) und Laufzeitumgebung (JRE). Java Version 8 ist für die Übungen ausreichend. Wenn Sie unter Linux arbeiten möchten, können Sie in den meisten Pools die Linux Live-DVD KNOPPIX verwenden, auf der die benötigten Entwicklungsumgebungen bereits vorinstalliert sind. Windows- und Mac-Anwender finden unter https://openjdk.java.net/ die lizenzkostenfreie OpenJDK Java-Edition. Unter http://www.eclipse.org/ finden Sie eine integrierte und sehr umfangreiche (mitunter ZU umfangreich!) Workbench-Umgebung für Java, für alle Plattformen.

Die in der folgenden Tabelle angegebenen Termine, Themen und Beschreibungen verstehen sich vorbehaltlich übersehener Feiertage und Durchführbarkeit innerhalb der zur Verfügung stehenden Zeit, und können sich daher noch entsprechend verschieben.

Als optionale Literatur zur Vorlesung werden folgende Bücher und Nachschlagewerke empfohlen:

Software Engineering Termine und Themen

1. Vorlesung (18.3.2020)Einführung
Organisatorisches: (vorläufiger) Zeitplan, Übersicht behandelte Themen, Rechnerzugang und Übungen.
Definition "Software Engineering", praktische Programmierung vs. konzeptionelles Design, Lebenszyklus von Softwareprojekten, V-Modell.
2. VorlesungPlanung & Analyse: Spezifikation Teil 1
Projektmanagement, Lastenheft (Anforderungsdefinition), Pflichtenheft (Mit technischen Ansätzen verfeinertes Lastenheft), Aufwandsabschätzung, Kostenbeeinflussende Lizenzmodelle (proprietär vs. Open Source), Beispiel/Übung: Erstellung eines Angebotes für ein Software-Projekt
3. VorlesungPlanung & Analyse: Spezifikation Teil 2
Agile Vorgehensmodelle: SCRUM. Rechtliche Rahmenbedingungen: Lizenzen und Haftung (Fortsetzung), Anforderungsanalyse, Datenanalyse, Prozessanalyse, Systemanalyse, Strukturierte Analyse (SA), Objektorientierte Analyse (OOA), Beispiel: Analyse für eine zu erstellende Unternehmenssoftware.
4. VorlesungUnified Modelling Language (UML)
Einführung in die normierte graphische Darstellungsweise (nicht nur) objektorientierter Softwareprojekte: Klassendiagramm, Sequenzdiagramm, Aktivitätsdiagramm, Kompositionsstrukturdiagramm (auch: Montagediagramm), Komponentendiagramm, Verteilungsdiagramm, Objektdiagramm, Paketdiagramm, Kommunikationsdiagramm, Interaktionsübersichtsdiagramm, Zeitverlaufsdiagramm, Anwendungsfalldiagramm (auch: Nutzfalldiagramm) und Zustandsdiagramm.
5. VorlesungEntwurf
Softwarearchitektur, Strukturiertes Design (SD), Objektorientiertes Design (OD), Computer Aided Software Engineering (CASE) Tools und IDE.
6. VorlesungEntwurfsmuster in Java, Strukturierte und/oder objektorientierte Programmierung
Prototypen, Entwurfsmuster allgemein, virtuelle Klassen und Methoden, Interfaces in Java, Entwurfsmuster: Strategie (Strategy)
7. VorlesungFortsetzung Entwurfsmuster: Beobachter (Observer), Dekorierer (Decorator)
8. VorlesungFortsetzung Entwurfsmuster: Fabrik (Factory), Einzelstück (Singleton), Fliegengewicht (Flyweight), ggf. auch Template Method. Fazit Enwurfsmuster
9. VorlesungTests, Begleitende Prozesse des Software Engineering, Dokumentation
Modultests (Low-Level), Integrationstests (Low-Level), Systemtests (High-Level), Akzeptanztests (High-Level), Bottom-up oder Top-down Methode, Arten der Dokumentation
10.+11. VorlesungErgänzungen, Tipps zur Prüfungsvorbereitung, Präsentationen der Teilnehmer und Abschluss ROBOCODE-Projekt
Klausur
Dauer: 120 Minuten,
zugelassene Hilfsmittel: nicht-programmierbarer Taschenrechner, Schreibzeug.
Hinweis: Mitgebrachte Unterlagen und elektronische Kommunikationsmittel jeglicher Form (auch Klingeltöne können Informationen übertragen!) sind während der Klausur nicht erlaubt, bitte schalten Sie insbesondere Smartphones vollständig ab, geben Sie Taschen bei der Aufsicht ab oder lassen Sie alles nicht benötigte am besten gleich zuhause.
Bitte beachten Sie auch die Klausur-Richtlinien!
KNOPPER.NET ist nicht verantwortlich für die Inhalte externer Webseiten.
Icon  Name                    Last modified      Size  Description
[PARENTDIR] Parent Directory - [DIR] uebungen/ 2020-04-08 06:34 - [DIR] vorlesung/ 2020-03-18 07:01 -
Apache/2.4.25 (Debian) Server at knopper.net Port 80