Praktikum Software Engineering für Fortgeschrittene

Description

Inhalt

Ziel des Software-Entwicklungspraktikums ist das Erlernen von Methoden zur Entwicklung größerer Software-Systeme und deren praktische Anwendung. Es werden verschiedene Techniken und Werkzeuge vorgestellt und geübt, die bei der Entwicklung von mittleren und größeren Software-Projekten nützlich sind. Im Fokus stehen dabei
  • Agiles Projektmanagement mit Scrum
  • Design-Patterns und -Prinzipen
  • Codequalität (readability, testability, changeability)
  • Testen (Unit-Testing und Test-Driven Development)
  • Tooling (Eclipse) und Refactoring
  • Bug-Tracking und Task-Tracking mit Milestones und Kanban-Boards (GitLab)
  • Versionsverwaltung, Buildprozess und Continuous Integration
Diese Techniken werden von den Teilnehmern bei der Durchführung eines kompletten Softwareprojekts geübt und angewendet. Dabei wird ein webbasiertes Multiplayer-Kartenspiel namens “The Bug is a Lie” implementiert.

Anrechnung

Ablauf und Termine

Das Praktikum besteht aus zwei Teilen: In den ersten drei Semesterwochen findet ein Vorlesungsteil statt, in dem Sie eine Einführung in die im Praktikum verwendeten Methoden und Technologien bekommen und diese üben. Danach beginnt das eigentliche Praktikum, das in zwei Teams aufgeteilt stattfindet.

Im Praktikumsteil gibt es vier Sprints und wöchentlich zwei Treffen des Teams mit dem Betreuer (Montag und Donnerstag Nachmittag), in denen Sprint Planning, Daily Standup, Sprint Review etc. stattfinden. Jedes dieser Treffen dauert maximal 2 Stunden. Das Praktikum endet mit einer Abschlusspräsentation.

Die Anwesenheit bei allen Terminen ist obligatorisch, da andernfalls ein Zusammenarbeiten im Team nicht möglich ist. Fehlzeiten sind mit (Arbeitnehmer-)Krankenschein zu belegen.

Der Gesamtzeitaufwand beträgt 180 Stunden.

Voraussetzungen

Die Voraussetzung für die Teilnahme an diesem Praktikum ist die Beherrschung der Programmiersprache Java (und dementsprechend einer Entwicklungsumgebung für diese Sprache). Konkret bedeutet dies nicht nur das Verständnis der Syntax und Semantik von Java, sondern auch der Klassen des Java-SDK (insbes. Collections-Framework und Netzwerk-Funktionalität) und der Fähigkeit zur Einarbeitung in weitere Libraries. Vorkenntnisse der folgenden Veranstaltungen werden vorausgesetzt:
  • Vorlesung "Objektorientierte Softwareentwicklung" bzw. "Softwaretechnik"
  • Softwareentwicklungspraktikum
Hilfreich sind außerdem:
  • Fähigkeit, im Team zu arbeiten (mit git und GitLab)
  • Erweiterte IDE-Kenntnisse
  • Web-basierte Entwicklung (html, css); Wicket; Java Servlets; Ant; SQL; JDBC; JUnit; Mockito
Entsprechende Vorkenntnisse/besuchte Vorlesungen sollten bei der Zentralanmeldung angegeben werden und werden speziell berücksichtigt!

Sprache

Das Praktikum wird auf Deutsch und Englisch angeboten (ein Team Deutsch, ein Team Englisch). Die jeweilige Sprache muss in den Team-Treffen mit dem Betreuer (Daily Standups, Sprint Planning, etc.) und in der Entwicklung (Produkt-GUI, Code-Kommentare, Issues, etc.) benutzt werden. Die Sprache geht jedoch nicht in die Bewertung ein.

Da die Sprache der Entwicklungsteams in vielen Firmen heutzutage Englisch ist, können Sie sich so darauf vorbereiten und z.B. das Diskutieren auf Englisch üben.

Department
Institut für Informatik
Lecturer
Assistants
Tutors
Course participants
0 of 14
Central allocation
Masterpraktika
Instructions for registration
Bitte geben Sie folgende Punkte bei Ihrer Bewerbung an:
  1. Vorkenntnisse in den Veranstaltungen "Objektorientierte Softwareentwicklung" bzw. "Softwaretechnik" und "Softwareentwicklungspraktikum"
  2. Vorkenntnisse im Bereich Web-Entwicklung und Software-Entwicklung im Team mit agilen Methoden (s. Kursbeschreibung)
  3. Ob sie bereit sind, am Praktikum auf Englisch teilzunehmen, und welche Sprache Sie präferieren
    Material
    Only course participants may access course material
    Occurrences
    TypeTimeRegular room
    Einführungsveranstaltung + Vorlesung: Agile Software Development with Scrum
    • Mon 20 Apr 2020 12:00–16:00
    Oettingenstr. 67, U133
    Vorlesung: Technology Background
    • Thu 23 Apr 2020 12:00–14:00
    • Thu 30 Apr 2020 12:00–14:00
    Oettingenstr. 67, U133
    Lego4Scrum
    • Mon 27 Apr 2020 12:00–16:00
    Oettingenstr. 67, U133
    Coding Session
    • Mon 04 May 2020 12:00–16:00
    Oettingenstr. 67, U133
    Abschlusspräsentation
    • Thu 23 Jul 2020 12:00–14:00
    Oettingenstr. 67, U133
    Tutorials
    TypeNameTutorsRegular roomTimeRegister fromRegister toDeregister untilFree capacity
    Team
    Team 1 (deutsch)
    Oettingenstr. 67, U133
    • Mon 12:00–14:00
    • Thu 12:00–14:00
    7
    Team
    Team 2 (english)
    Oettingenstr. 67, C 003
    • Mon 14:00–18:00
    • Thu 12:00–14:00
    7