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
Library
Seminars
Gallery
Links
Search
Webmaster
|
Softwareentwicklung 2 (Objektorientierte Programmierung in Java)
| 339.191 |
2VO |
Mössenböck |
Do 8:30 - 10:00 |
Raum: HS 16 |
Beginn: 08.3.2012 |
Ziel
Nach Besuch dieser Vorlesung werden Sie ...
- die Grundlagen der objektorientierten Programmierung 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
- Beispiele
- Diverses
- Vererbung beim Exception Handling
- Innere Klassen
- Anonyme Klassen
- Generics
- Grundlagen
- Constraints
- Generische Arrays
- Vererbung
- Wildcards
- Generische Methoden
- Laufzeit-Typinformation
- Java-Klassenbibliothek
- java.lang (Object, String, StringBuffer, Math, Kopieren, Wrapper-Klassen)
- java.util (Calendar, Random, StringTokenizer, Collections)
- java.io (Streams, 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
- Korrektheitsüberlegungen bei Klassen
- Kontrakte
- Subkontrakte
- Schnittstellen überschriebener Methoden
- Testen
- Allgemeines
- Statisches Testen (Verifikation, Schreibtischtest, Code-Inspektion, Metriken)
- Dynamisches Testen (Treiber, Stubs, Black-Box-Test, White-Box-Test, Regressionstest)
- Defensives Programmieren (Assertionen, Hilfsdrucke)
- Programmierstil
- Namensgebung
- Strukturierung
- Lesbarkeit
- Kommentierung
- Effizienz
- Beispiele
Skript
Das Skript ist auf der KUSSS-Seite dieser LVA als PDF-Dokument verfügbar.
Links
|