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.
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