Programmierung und Softwaretechnik

Kurzbeschreibung

In diesem Modul findet die praxisnahe Vermittlung von systematischer Softwareentwicklung statt.
Beginnend mit kleinen prozeduralen Programmen bis hin zu größeren objektorientierten Softwarepaketen werden alle Phasen der Softwareentwicklung behandelt.
Im ersten Jahr steht die Verwendung einer objektorientierten Programmiersprache als Handwerkszeug
zur Implementierung der eigenen Entwürfe im Vordergrund, im dritten Jahr werden Analyse und
Design mit Hilfe von UML und geeigneten Softwareentwicklungstools vertieft.

Vorkenntnisse

keine

Kompetenzen und Inhalte

Folgenden Inhalte zur Entwicklung von Software verstehen und anwenden können

  • Grundlagen
    • Programmierumgebung: Interpreter, Compiler, Virtuelle Maschine
    • Grundbegriffe, Grundprinzipien und Phasen der Softwareentwicklung
  • Anwendung des prozeduralen Paradigmas
    • Algorithmenentwurf für strukurierte Programmierung
    • Programmierung mit elementaren Datentypen, Operatoren und Typkonvertierung
    • Kontrollstrukturen
    • Blockkonzept, Lebensdauer von Variablen
    • komplexe Datentypen (Arrays, Structures)
    • Prozeduren und Funktionen
    • Testen mit Schreibtischtest und Debugger
  • Anwendung des objektorientierten Paradigmas
    • Programmiertechnik
      • Klassen
        • Klassen- und Objekte
        • Funktionsbündelungen
        • Objekt-, Klassen-, 'privat'-, Objekterzeugungsmethode
        • lokale Variable, Objektvariable, Klassenvariable
        • 'programming by contract', 'information hiding'
      • Assoziationen
        • Objektverwaltung mittels 'array's / Containerklassen
        • Entwurf mit Hilfe von UML-Klassendiagrammen
      • Generalisierung
        • Vererbung und dynamisches Binden
        • abstrakte Klassen und Interfaces (eigene und Standardinterfaces)
      • ausgewählte Standradklassen
        • Ausnahmebehandlung
        • dynamische Behandlung von Objekten
        • Umgang mit der Peripherie (Dateien, Drucker, GUI)
      • Nebenläufigkeit
      • Einsatz von Entwurs-/Programmier- und Dokumentationstools
    • Softwaretechnik
      • Phasenkonzept
      • Modularisierung
      • Schichtenmodelle und Paketkonzept
      • UML: use-cases, use-case-Diagramme, Klassendiagramme, Sequenzdiagramme
      • Analyse mit Hilfe von use-cases, domain model, Glossar
      • Entwurfsmuster und Frameworks
      • Teststrategien und Softwaremetriken

Lehrmaterial

Fachbücher, ausgewählte Internetquellen, eigene Skripte und Texte.
Aktuelles Material wird jeweils ausgeteilt.

Programmieren

  • Herold, Helmut; Lurz, Bruno und Wohlrab, Jürgen: Grundlagen der Informatik. 3. Auflage, Pearson Studium, 2017
  • Krüger, Guido: Handbuch der Java-Programmierung. 8. Aufl. : Addison-Wesley, 2014
  • Ullenboom, Christian: Java ist auch eine Insel. 13. Aufl. : Rheinwerk Verlag, 2017

  • Oestereich, Bernd; Scheithauer, Axel: Analyse und Design mit der UML 2.5. Oldenbourg Wissenschaftsverlag, 2013
  • Inden, Michael: Der Weg zum Java-Profi. Konzepte und Techniken für die professionelle Java-Entwicklung. 4.Auflage, dpunkt.verlag, 2018

Softwaretechnik

  • Balzert, Helmut: Lehrbuch der Softwaretechnik. 4. Auflage, Spektrum Akademischer Verlag, 2011
  • Sommerville, Ian: Modernes Software Engineering, Pearson Verlag 2020
  • Ludewig, Jochen., Lichter, Horst: Software Engineering, 2. Aufl., d.punkt 2010
  • Freeman, Eric & Elisabeth: Entwurfsmuster von Kopf bis Fuß. O’Reilly Verlag, 2015
  • Gamma, Erich: Design Patterns - Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software. MITP-Verlag, 2015