logo of the SSW institute
Institut für Systemsoftware
Johannes Kepler Universität Linz
Fachbereich Informatik
logo of the Cristian Doppler Research Association
Christian Doppler Labor
Automated Software Engineering

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


logo of the Johannes Kepler University (JKU)

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

  1. Prinzipien der objektorientierten Programmierung
    - Grundideen
    - Objektorientierte Programmstruktur
    - Information Hiding, Datenabstraktion, Vererbung, dynamische Bindung

  2. Klassen
    - Bestandteile (Felder, Methoden, Nachrichten, Konstruktoren, Finalizers)
    - Information Hiding (Sichtbarkeitsattribute, Schnittstelle/Implementierung, get/set-Methoden)
    - Beispiele

  3. Vererbung
    - Wiederverwendung
    - Kompatibilität (Klassenhierarchien, Typkompatibilität, statischer/dynamischer Typ, Laufzeittypprüfungen)
    - Mehrfache Vererbung
    - Klasse Object

  4. Dynamische Bindung
    - Prinzip
    - Statische versus dynamische Bindung
    - Abstrakte Klassen

  5. Interfaces
    - Grundlagen
    - Mehrfache Schnittstellenvererbung
    - Erweiterung von Interfaces
    - Anwendung von Interfaces
    - Beispiele

  6. Diverses
    - Vererbung beim Exception Handling
    - Innere Klassen
    - Anonyme Klassen
    - Generics
      - Grundlagen
      - Constraints
      - Generische Arrays
      - Vererbung
      - Wildcards
      - Generische Methoden
      - Laufzeit-Typinformation

  7. Java-Klassenbibliothek
    - java.lang (Object, String, StringBuffer, Math, Kopieren, Wrapper-Klassen)
    - java.util (Calendar, Random, StringTokenizer, Collections)
    - java.io (Streams, Serialisierung)
    - java.net (Sockets)

  8. UML
    - Überblick
    - Klassendiagramme
    - Use-Case-Diagramme
    - Sequenzdiagramme
    - Kollaborationsdiagramme
    - Zustandsdiagramme

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

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

  11. Entwurfsmuster
    - Erzeugende Muster
      - Fabrik
      - Fabrikmethode
      - Prototyp
    - Strukturmuster
      - Familie
      - Adapter
      - Kompositum
      - Dekorator
      - Proxy
      - Fassade
      - Zwilling
    - Verhaltensmuster
      - Iterator
      - Besucher
      - Beobachter
      - Strategie
      - Nachrichtenobjekt
      - Schablonenmethode

  12. Korrektheitsüberlegungen bei Klassen
    - Kontrakte
    - Subkontrakte
    - Schnittstellen überschriebener Methoden

  13. Testen
    - Allgemeines
    - Statisches Testen (Verifikation, Schreibtischtest, Code-Inspektion, Metriken)
    - Dynamisches Testen (Treiber, Stubs, Black-Box-Test, White-Box-Test, Regressionstest)
    - Defensives Programmieren (Assertionen, Hilfsdrucke)

  14. Programmierstil
    - Namensgebung
    - Strukturierung
    - Lesbarkeit
    - Kommentierung
    - Effizienz
    - Beispiele

Skript

Das Skript ist auf der KUSSS-Seite dieser LVA als PDF-Dokument verfügbar.

Links