Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Projects
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
Softwareentwicklung 2 (Objektorientierte Programmierung in Java)
339.191 |
2VO |
Prähofer |
Do 8:30 - 10:00 |
Zoom |
Beginn: 11.3.2021 |
Zoom-Link zur Vorlesung:
https://jku.zoom.us/j/4249695527?pwd=UkhNSEtUTXRvbVdBdUMzNkNsU05Vdz09
(Meeting-ID: 424 969 5527, Passwort: 7537753)
Ziel
Nach Besuch dieser Vorlesung werden Sie ...
- Grundlagen und Anwendungen der objektorientierten Programmierung beherrschen
- fortgeschrittene Konzepte wie Generizität oder Lambda-Ausdrücke beherrschen
- objektorientierte Entwurfsmuster kennen und einsetzen können
- erweiterbare Programme auf der Basis objektorientierter Frameworks schreiben können
- die wichtigsten Klassen und Pakete der Java-Bibliothek kennen
- elementare Testtechniken anwenden können
- guten Programmierstil beherrschen
Als Programmiersprache wird Java verwendet.
Inhalt
- Prinzipien der objektorientierten Programmierung
- Grundideen
- Objektorientierte Programmstruktur
- Information Hiding, Datenabstraktion, Vererbung, dynamische Bindung
- Klassen
- Bestandteile (Felder, Methoden, Nachrichten, Konstruktoren, Finalizers)
- Information Hiding (Sichtbarkeitsattribute, Schnittstelle/Implementierung, get/set-Methoden)
- Beispiele
- Vererbung
- Wiederverwendung
- Kompatibilität (Klassenhierarchien, Typkompatibilität,
statischer/dynamischer Typ, Laufzeittypprüfungen)
- Mehrfache Vererbung
- Klasse Object
- Dynamische Bindung
- Prinzip
- Statische versus dynamische Bindung
- Abstrakte Klassen
- Interfaces
- Grundlagen
- Mehrfache Schnittstellenvererbung
- Erweiterung von Interfaces
- Anwendung von Interfaces
- Default-Methoden
- Beispiele
- Innere Klassen
- Innere Klassen
- Geschachtelte statische Klassen
- Lokale Klassen
- Anonyme Klassen
- Generics
- Grundlagen
- Constraints
- Generische Arrays
- Vererbung
- Wildcards
- Generische Methoden
- Laufzeit-Typinformation
- Java-Klassenbibliothek (Auszug)
- java.lang (Object, String, StringBuffer, Math, Kopieren, Wrapper-Klassen)
- java.util (Collections, Iteratoren, Streams)
- java.io (IOStreams, Serialisierung)
- java.net (Sockets)
- UML
- Überblick
- Klassendiagramme
- Use-Case-Diagramme
- Sequenzdiagramme
- Kollaborationsdiagramme
- Zustandsdiagramme
- Objektorientierter Entwurf
- Allgemeine Überlegungen (topdown vs. bottomup)
- Ermitteln der Klassen (Entwurfsüberlegungen, Beispiel, Methode von Abbott, CRC-Karten)
- Beziehungen zwischen Klassen (Benutzt-, Hat- und Ist-Beziehung)
- Entwurfstipps (Bindung vs. Kopplung, Designing for Change, Schnittstellenkriterien)
- Entwurfsfehler
- Frameworks
- Allgemeines (Definition, Black-Box- und White-Box-Frameworks)
- Beispiele (Menüs, Und/Redo, Dragging, Model-View-Controller)
- Das Swing-Framework
- Vorteile und Probleme von Frameworks
- Entwurfsmuster
- Erzeugende Muster
(Fabrik, Fabrikmethode, Prototyp)
- Strukturmuster
(Familie, Adapter, Kompositum, Dekorator, Proxy, Fassade, Zwilling)
- Verhaltensmuster
(Iterator, Besucher, Beobachter, Strategie, Nachrichtenobjekt, Schablonenmethode)
- Lambda-Ausdrücke und Streams
- Grundlagen
- Zugriff auf äußere Variablen und Felder
- Methodenreferenzen
- Streams
- Testen
- Allgemeines
- Dynamisches Testen (Treiber, Stubs, Black-Box-Test, White-Box-Test, Regressionstest)
- Statisches Testen (Verifikation, Schreibtischtest, Code-Inspektion, Metriken)
- Defensives Programmieren (Assertionen, Hilfsdrucke)
- Korrektheitsüberlegungen bei Klassen
- Kontrakte
- Subkontrakte
- Schnittstellen überschriebener Methoden
- Programmierstil
- Namensgebung
- Strukturierung
- Lesbarkeit
- Kommentierung
- Effizienz
- Beispiele
Skript
Das Folienskript dieser LVA wird über Moodle bereitgestellt.
Prüfung
Die Prüfung in Form einer schriftlichen Klausur wird am Do, 1.7.2021 zur Vorlesungszeit stattfinden.
Hinweis für Teilnehmer der UE Softwareentwicklung 2: Der praktische Teil dieser Klausur fließt, zusätzlich zu den wöchentlichen Programmieraufgaben der Übung, auch in die Note der Übung mit ein. Die Klausur ist somit auch für jene Übungsteilnehmer verpflichtend, die die Vorlesung nicht besuchen.
Links
|