CS2016 Konzepte moderner Softwareentwicklung

Modulverantwortliche
  • Prof. Dr. Peter Kneisel
Lehrende
  • Lukas Maximilian Kimpel
  • Prof. Dr. Dennis Priefer
  • Wolf Rost
Notwendige Voraussetzungen zur Teilnahme

Keine

Empfohlene Voraussetzungen zur Teilnahme

Diese Veranstaltung setzt Programmierkenntnisse und -erfahrungen, insbesondere im Bereich der komponentenbasierten, objektorientierten Programmierung voraus. Zusätzlich sollten methodische Kenntnisse im Bereich des Software-Engineerings und die Fähigkeit zum eigenverantwortlichen, teamorientierten Entwickeln vorhanden sein.

Kurzbeschreibung

Der Kurs vermittelt die Grundlagen von gängigen Softwareentwicklungs-Praktiken. Dies geschieht durch selbstständig durchgeführte Teamarbeit innerhalb praxisnaher Softwareprojekte. Dabei erproben die Teilnehmenden die Einarbeitung in produktive Softwaresysteme durch bewährte Techniken.

Inhalte
  • Praxisnahe Umsetzung von Projekten im Web-Bereich
  • Umgang mit Legacy-Software: Reengineering, ReverseEngineering, Refactoring
  • Grundlagen agiler Entwicklungsmethoden am Beispiel von Scrum
  • Fallbeispiele für typische Situationen im Alltag eines Software- Entwicklers
  • Konzepte der Qualitätssicherung: Qualitätssichernde Maßnahmen in einem SE-Projekt, Techniken zur qualitativen Verbesserung von existierenden Systemen
  • Umgang mit einer professionellen SE-Infrastruktur: Continuous Integration (z.B. Jenkins), Versionierung (z.B. Gitorious), Projektmanagement (z.B. Redmine, Jira)
  • Verschiedenste Fallbeispiele zu typischen Situationen im Alltageines Softwareentwicklers ergänzen den Kursablauf stetig. Für die Umsetzung der Projekte kommen agile Methoden wie etwa Scrum zum Einsatz. Zur Steigerung der intrinsischen Motivation können übergreifende soziale Unternehmungen in die Projekte eingebunden werden.
Qualifikations- und Lernziele

Fachkompetenzen

  • Die Studierenden können Methoden und Werkzeuge im Bereich der professionellen Softwareentwicklung nennen.
  • Die Studierenden können qualitätssichernde Maßnahmen innerhalb eines agilen Softwareprojekts wiedergeben.

Methodenkompetenzen (fachlich & überfachlich)

  • Die Studierenden können Methoden und Werkzeuge und qualitätssichernde Maßnahmen innerhalb eines agilen Softwareprojekts aufsetzen und anwenden.

Sozialkompetenzen

  • Die Studierenden können in autonomer Teamarbeit kollaborativ Software erstellen und pflegen.
  • Sie können mit schwierigen Situationen im Projektalltag umgehen.

Selbstkompetenzen

  • Sie sind in der Lage sich selbstständig in bestehende, komplexe Projekte einzuarbeiten.
ECTS-Leistungspunkte (CrP)
  • 9 CrP
  • Arbeitsaufwand 270 Std.
  • Präsenzzeit 90 Std.
  • Selbststudium 180 Std.
Lehr- und Lernformen
  • 6 SWS
  • Praktikum 6 SWS; Die Veranstaltung wird im Block (2 Wochen) durchgeführt
  • ferner etwa 4-6 Wochen individueller Arbeit.
Studiensemester
  • Informatik (B.Sc. 2010)
  • Social Media Systems (B.Sc. 2016)
Dauer
1 Semester
Häufigkeit des Angebots
Einmal im Jahr
Unterrichtssprache
Deutsch
Bonuspunkte

Nein

Bonuspunkte werden gemäß § 9 (4) der Allgemeinen Bestimmungen vergeben. Art und Weise der Zusatzleistungen wird den Studierenden zu Veranstaltungsbeginn rechtzeitig und in geeigneter Art und Weise mitgeteilt.

Prüfungsleistungen

Prüfungsvorleistung: Projekt

Prüfungsleistung: Entwicklung in der Informatik (Präsentation der Entwicklungsergebnisse mit Abnahme der Anwendung)

Benotung
Die Bewertung des Moduls erfolgt gemäß §§ 9, ggf. 12 (Teilleistungen), ggf. 18 (Arbeiten, Kolloquien) der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung).
Verwendbarkeit
Gemäß § 5 der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung) Verwendbarkeit in allen Bachelorstudiengänge der THM möglich.
Literatur, Medien
  • Martin, R. C.: Clean Code. mitp.
  • Humble, J.; Farley, D.: Continuous Delivery. Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley.
  • Demeyer, S.; Ducasse, S.; Nierstrasz, O.: Object-Oriented Reengineering Patterns. Square Bracket Associates.
  • Fowler, M.: Refactoring. Improving the Design of Existing Code. Addison-Wesley.
  • Hoffmann, D. W.: Software-Qualität. Springer.
  • Linz, T.: Testen in Scrum-Projekten. Leitfaden für Softwarequalität in der agilen Welt. Dpunkt. Verlag.
  • Pichler, R.: Scrum. Agiles Projektmanagement erfolgreich einsetzen. dpunkt.

Rechtliche Hinweise