MIN-Fakultät
Department Informatik

Modulbeschreibung Softwareentwicklung II

 

Bachelor-Pflichtmodul: Softwareentwicklung II

1. Modulkennung
IP2

2. Studiengang
Bachelorstudiengang Informatik

3.   Modulbezeichnung
Softwareentwicklung II (SE II), engl.: Software Development II

4.   Modul-Verantwortlicher
Züllighoven

5.   Veranstalter/Dozent
Floyd, Gryczan, Oberquelle, Züllighoven

6.   Sprache
Deutsch mit deutsch- und englischsprachigem Lehrmaterial

7.   Motivation, Bedeutung für / Stellung im Gesamtprogramm

  • Vertiefung der Programmierausbildung
  • Einführung in die Softwaretechnik und in den anwendungsorientierten Software-Entwurf
  • Software soll gebrauchstauglich sein; dazu muss sie zum einen in ihren Anwendungskontext passen und zum anderen ein verständliches und für die Anwender angemessenes Benutzungsmodell besitzen. Die Studierenden sollen deshalb insbesondere die Durchgängigkeit von der Analyse bis zur Implementierung erkennen. Softwareentwicklung ist außerdem überwiegend Teamarbeit; deshalb sollte frühzeitig, aufbauend auf kooperativen Grundfertigkeiten, die Kooperation bei der Programmierung in Kleingruppen geübt werden. Soft-Skills zur Darstellung von Entwürfen sollen trainiert werden.

8.   Lernziele/Kompetenzen
Objektorientierte Softwareentwicklung soll als iterativ und zyklisch begriffen werden. Beim Übergang von der Programmierung im Kleinen zum Entwurf und der Konstruktion  im Großen gewinnt neben der Beherrschung der Komplexität durch zentrale Prinzipien der Softwaretechnik die kommunikative Kompetenz eine zunehmende Bedeutung. Es soll deutlich werden, dass die programmiersprachlichen Notationen durch Techniken und Darstellungsmittel auf abstrakteren Ebenen ergänzt werden müssen.

 

8.1 Passung Leitbild

  • Konzeptualisierung und Realisierung kleiner Anwendungen beherrschen
  • Erfahrung mit Kontextualisierung

8.2 Grundlagen-/Faktenwissen

  • Relevante Begriffe objektorientierter SW-Entwicklung beherrschen
  • fortgeschrittene objektorientierte SW-Konstruktionsprinzipien kennen
  • Gestaltungsregeln von Benutzungsmodellen kennen
  • Fortgeschrittene Programmiersprachkonzepte kennen
  • Integrierte Entwicklungsumgebungen beherrschen

8.3 Methodenwissen

  • Kenntnisse in objektorientierter Analyse und objektorientiertem Entwurf
  • Grundkenntnisse einer iterativ zyklischen Vorgehensweise
  • Softwareentwicklungsprozesse einordnen können
  • Kenntnisse softwaretechnischer Grundkonzepte
  • Kleine, gebrauchstaugliche Anwendungen in der Kleingruppe mit Hilfe objektorientierter Konzepte entwickeln können

8.4 Transferkompetenz

  • Aufgaben- und problemorientiertes Denken
  • Methodenarbeit als Teil von Projektarbeit

8.5 Normativ-bewertende Kompetenz

  • Gebrauchstauglichkeit von Software qualifiziert einschätzen können
  • Innere Qualitätsmerkmale einer Software und ihre Architektur auf der Mikroebene identifizieren können
  • Durchgängigkeit von Analyse zu Implementierung erkennen 
8.6 ABK/BOK/Schlüsselqualifikationen

  • Im Team arbeiten können
  • Arbeit an einer größeren Aufgabe selbstorganisiert planen können
  • Softwaretechnische Entwürfe angemessen darstellen und vermitteln können.
9.   Lehrveranstaltungen

  • 2 SWS VL Softwareentwicklung II (Plenum)
  • 2 SWS VL Softwaretechnik und Software-Ergonomie (Plenum)
  • 2 SWS Übungen Softwareentwicklung II (Betreuter Laborbetrieb, Miniprojekte)

10. Inhalt

10.1 Vorlesung Objektorientierte Programmierung und Modellierung

  • Abstraktion als Kernkonzept der Modellierung
  • Polymorphie, Subtyping, statischer und dynamischer Typ, Ersetzbarkeit
  • Implementierungsvererbung
  • Abstrakte Klassen, Schablonen- und Einschubmethode
  • Generizität
  • Vertragsmodell (Design by Contract)
  • Modularisierung, Kopplung, Kohäsion
  • Objektorientierte Analyse und objektorientierter Entwurf
  • UML und OCL
  • Grundkonzepte grafischer Benutzungsoberflächen:
    • Oberflächenelemente
    • Reaktionsmechanismen
    • Oberflächenlayout
    • Model-View-Controller
  • Das Konzept und die Bedeutung von Entwurfsmustern
  • Einfache Entwurfsmuster: Befehl, Fabrikmethode, Singleton
  • Grundlegende Refactorings

10.2 Vorlesung Softwaretechnik und Software-Ergonomie

  • Softwaregestaltung und Softwarekonstruktion, Gebrauchs-, Produkt- und Prozessqualität
  • Der Qualitätsbegriff, Metriken als Qualitätsindikatoren
  • Kontextanalyse: Ziele, Aufgaben, Kooperation, Domänen
  • Prozessanalyse und Modellierung
  • Interaktionsdesign: Fachmodell, Interaktionsformen, Systemvisionen und Szenarien, Evaluation
  • Das Konzept Benutzungsmodell
  • Entwicklungsaktivitäten: Anforderungsermitt­lung, Modellierung, Entwurf, Programmierung, Test
  • Softwareentwicklungsprozess: lineares und iteratives Vorgehen und Prototyping, agile Methoden
  • Organisation von Softwareprojekten: Team-Modelle, Managementkonzepte, Projektkommunikation

11. Bezüge zu anderen Modulen

  • Innerhalb des Bachelorstudienganges: Das Modul bildet die Grundlage für alle Veranstaltungen, in denen Software-Systeme entworfen, konstruiert und analysiert werden sollen.
  • Im konsekutiven Masterstudiengang: Das Modul schafft die Voraussetzung für Software-Projekte und Vertiefungen im Bereich Software-Architektur.
  • In anderen Studiengängen: Das Modul eignet sich als Nebenfachmodul sowie Bestandteil von Wirtschafts- und Bioinformatik-Studiengängen. Darüber hinaus ist ein Einbringen als Wahlmodul im Rahmen naturwissenschaftlicher Studiengänge denkbar.

12. Modulvoraussetzungen
Verbindlich: keine
Empfohlen: Softwareentwicklung I

13. Semester, Studienjahr /-phase
Studienabschnitt: 1
Referenzsemester: 2

14. Prüfungsleistungen
Die Zulassung zur Modulprüfung setzt die regelmäßige und erfolgreiche Teilnahme an den Übungen voraus; die Teilnahme gilt grundsätzlich als erfolgreich, wenn alle Aufgaben bearbeitet und mindestens 50% richtig gelöst wurden; im Falle abweichender Kriterien müssen diese zu Beginn der Veranstaltung bekannt gemacht werden.
Gemeinsame Modulprüfung für alle Lehrveranstaltungen des Moduls; in der Regel schriftlich (Klausur) und in deutscher Sprache; bei Modus-Abweichung Bekanntgabe zu Beginn der Veranstaltung.

15. Bewertung
Gesamt: 9 Leistungspunkte
(Objektorientierte Programmierung und Modellierung: 3 Leistungspunkte, Softwaretechnik und Software-Ergonomie: 3 Leistungspunkte, Übungen zu Softwareentwicklung II: 3 Leistungspunkte) Der ABK-Anteil dieses Moduls beträgt 3 Leistungspunkte

16. Periodizität
Sommersemester, jährlich, Dauer: 1 Semester

17. Methodische Aufbereitung und Medienformen

  • Vorlesungen: Folien mit Beamer
  • Übungen: Laborbetrieb, Arbeit in Kleingruppen

In diesem Modul wird großes Gewicht auf das Erlernen praktischer Fähigkeiten gelegt. Die Übungen sollen anfangs in Form eines intensiv betreuten Laborbetriebs konzipiert sein. Im Laufe des Semesters werden umfangreichere Aufgaben gestellt, die von den Studierenden in Kleingruppen in Form eines Miniprojekts gelöst werden.

18. Literatur

  • Barnes, Kölling: Objektorientierte Programmierung mit Java - Eine praxisnahe Einführung mit BlueJ, Pearson Education Deutschland, 2003.
  • Schiedermeier: Programmieren mit Java - Eine methodische Einführung, Pearson Education Deutschland, 2005.
  • Züllighoven et al.: The Object-Oriented Construction Handbook, Morgan Kaufman und dpunkt-Verlag, 2004.
  • Meyer: Object-Oriented Software Construction, 2. Auflage, Prentice-Hall, 1997.
  • Liskov: Program Development in Java, Addison Wesley, 2001.