Montag, 12. Februar 2007

Grundlagen Programmierung

Grundlagen der OOP + UML (Unified Modeling Language)
Analyse und Design mit UML
Dipl.- Ing. Marc Nguidjol spricht sich "GIJOL"

12.02.2007
Objektorientierte Programmierung
OOSE, S= Software, E=Entwicklung
Definition Objekt?= Gegenstand, alles was man anfassen kann, aus der Realität
UML ist eine grafische Realisierungssprache.
OO-Ansatz --> Welt = Sammlung v. interagierenden Objekten
OOP --> Beschreibung der Realität. - Abstraktion: Unterscheidung zwischen wichtig/unwichtig
- Wiederverwendbarkeit (Vererbung). Aus einer Basisstruktur etwas neues schaffen und erweitern (ist-ein Beziehung).
Für ein Problem, eine Lösung finden => Modell
Wie kommt man zum Modell?
Es gibt eine vorgehensweise (Methodik) um von Realität zum Modell zu kommen, UML ist eine Sprache dafür.
Vorteil der OOP ist die wiederverwendtbarkeit.
(aus einer Basis-Struktur kann man etwas Neues schaffen, diese Basis wird durch Eigenschaften definiert (Vererbung).
Polymorphie - Vielgestaltigkeit (Wiederverwendbarkeit) - "Ist-Ein"-Beziehung nur bei Vererbung
Daten - Kaspelung= Einheit von Obj., diese Einheiten kommunizieren nur über spez. Kanäle def. Schnittst.
Man beschreibt Objekte über Klassen

OO-Analyse
Systemidee u. Zielsetzung
Anforderungbeitragende identifizieren
Geschäftsprozesse identifiezieren
Klasse ist nur abstrakt. Definition:
"Klassen von denen keine konkrteten Exemplare erzeugt werden können,
... bezeichnte man als abstrakte Klassen"
(Oesterreich)

OOD Design
Eigenschaften -- unterschiedliche Instanzen einer Klasse = Objekte

OO Modell
Teile und Herrsche
Divide + Conquer --> Aufteilen v. komplexen Zusammenhägen in log. Einheiten
Das Kohärenzprinzip = Verantwortlichkeit --> 1 Klasse sollte für bestimmten Bereich verantwortlich sein.

OO Modellierungselemente
Attribute - Stukrut d. Obj. Beschreibung
Operationen - Verhalten d. Obj., Bschreibung
Zusicherungen - Vorrausetz. u. Regeln f. Obj. Beschreibung
Beziehungen - was verbindet d. Klasse mit anderen interag. Obj.

Monomorphie, jeden Namen o. Wert genau ein Typ

  • Name u. variablen genau der Typ, der bei Deklarat zugewiesen
  • Wert Zeichenkette ist v. einen Typ der als "string" bez. wird
  • das Literal 42 (od. der Wert, den es bez) hat den Ganzzahl-Typ (Integer)
  • der Oper "+" hat den Typ Integer x int=> Int. akzept. Also genau 2 Argumente vom Typ Integer u. liefert genau 1 Wert v. Typ Integer
  • second (funtion) akz. 2 strings und liefert immer den 2. zurück


Abstrakte Klassen

  • Haben Methoden, die keine Implementierung ausweisen
  • Abgeleitete Klassen müssen selber abstrakt sein, oder alle abstrakten Methoden implementieren
  • Sonderfall in Java: Interfaces

Klassen ohne Methodenimplementierung

Klassen sind Beschreibung.

Übung 2:
Entwerfen Sie eine Klassenhierachie für die Artikel eine Versandhauses

  • Buch
  • CD
  • DVD
  • CD-Rom

Finden Sie Gemeinsamkeiten, bzw. Unterschiede
Benutzen Sie abstrakte Klassen

Assoziationen
Repräsentiert Beziehungen zwischen verschiedenen Objekten einer o. mehrere Klassen

Aggregation
Spez. der Assoziation
Teile - Ganzes - Beziehung

Kompositon
Spezialfall der Assoziation
Einzelteile sind vom Aggregat (dem Ganzem) existenziell Abhängig

Instanzen, alle Objekte der gleichen Art
Wie kann man den Begriff d. Klasse umschreiben?
Beschreibt Obj. und bestimmt deren Verhalten
Das Obj. muß Meth. o. Eig. kennen. Es gibt untersch. Obj.

13.02.2007
Zusammenfassung: OOP
Startpunkt: OO-Ansatz:

Objekte der Realität -Abstraktion-> OO-Modell abbilden
--> System = Menge v. Objekten, ide sich gegenseitig Nachrichten schicken. Der Empänger
einer nachricht löst eine Operation des empfangenen Objekts aus!!!

- Objekt = individuelles Exemplar mit einer eindeutigen Identität
- Klasse = Beschreibung von Objekten mit gemeinsamen Merkmale (Attribute, Methoden)

OOP --> Entwicklung hochwertiger Software --> OOSE = systematische Methodik für die Herstellung softw. hochw. Qualität -- Projektmanagement

SoftwareEntwicklung (Quälitätssicherung)

  1. Analyse (Was?) "User Case" Anforderungs Analyse
  2. Entwurf (Wie?)
  3. Impl
  4. Test + Abnahme
  5. Wartbarkeit
    { Wasserfall --> erst wenn 1 Aktivität zu Ende ist, dann fängt die nächste an

-> Qualitätionssicherung
-> Projektmanagement
-> Engineering

- BS
- Anwdg.
Qualitäten --> Benutzerfreundlich, Korrektheit, gut Dokumentiert, Wartbarkeit
Korrektheit -->
Zuverlässigkeit --> das zu jedem Zeitpunkt die Software funktioniert
Robustheit --> Das das Programm nicht abstürtzt.
Benutzerfreundlichkeit -->
Effizienz -->
Potabilität --> Muß mobile sein. Muß mit anderen Betriebssysteme laufen können.
Wartbarkeit --> Software erweitern können
Dokumentation --> Dokumentation muß vorhanden sein

Ziel: Wie komme ich zum OO-Modell
UML = graf. Modellierungssprache
Diagramme eines Systems

  1. statische Sicht
  2. dyn. Sicht

Eine Klasse kann versch. Rolle spielen.

Problem: --> OOA Was? soll das System leisten?
Welche Anforderungen (User Case) werden gestellt?
Akteur - Wie sind die Anforderungen an das System

Akteur ist immer außerhalb eines Systems.

14.02.2007

UML --> graf. Modellierungssprache
--> Diagramme = "Sichten"

  1. statisch: Struktur Syst.
  2. dynamisch (Interaktion): Zeitverhalten (Nachrichtenfluß zwischen Objekten) Syst.

1.4 (Industriestandard) aber mittlerweile 2.0

  1. Use Case
  2. Aktivitätsdiag. (dyn)
  3. Sequenz/Kollaborationsdiagramm (dyn)
  4. Klassendiag. (statisch)

15.02.2007
Begriffe:

  • Abstraktion = eine einfache Abbildung der Realität wo wichtiges von unwichtigen getrennt wird
  • Datenkasplung = Einheit von Obj., diese Einheiten kommunizieren nur über spez. Kanäle def. Schnittst.
  • Objektorientiert =
  • Objekt = werden in Klassen beschrieben und jedes individuelle Exemplar hat eine eindeutige Identität
  • Kohärenzprinzip = Als Kohärenz (lat.: cohaerere = zusammenhängen; Adjektiv kohärent) bezeichnet man allgemein den inneren oder äußeren Zusammenhang oder Zusammenhalt von etwas. Eine Klasse sollte nur für einen bestimmten Bereich zuständig sein. Verantwortlich
  • Stereotyp = Information, Klassifikation bereich von mehrere Informationen.
  • Klasse = Beschreibung von Objekten mit gemeinsamen Merkmalen (Attribute, Methoden) man unterscheidet zwischen Oberklasse (Basis) u. Unterklassen (Spezialisierung). Beide stehen in Beziehung zu einander.
  • Zusicherung = Eine softwaretechnische Zusicherung ist ein Ausdruck, mit dem in OOAD-Diagrammen Einschränkungen definiert werden, welche die möglichen Zustände oder das Verhalten von Objekten betreffen. Auch die Semantik einer Assoziation kann mit einer Zusicherung eingeschränkt werden.
    Eine Zusicherung ist eine Möglichkeit, in einem Design-Diagramm Regeln festzulegen, die sonst mit den herkömmlichen Mitteln der OOAD, wie beispielsweise Multiplizitäten, nicht darstellbar sind. Zusicherungen dienen grundsätzlich als Vereinbarungen mit dem Programmierer.
  • Qualitäten =
  • Attribut = definieren oder charakterisieren ein Objekt
  • Methoden = beschreibt für einen bestimmten Anwendungsbereich eine Vorgehensweise
  • UML = grafische Realisierungssprache
  • OOSE = Objekt orientierte Software Entwicklung
  • Vorgehensmodell = Ein Vorgehensmodell gliedert den Prozess des Organisierens in verschiedene, strukturierte Phasen, denen wiederum entsprechende Methoden und Techniken der Organisation zugeordnet sind. Aufgabe eines Vorgehensmodells ist es, die allgemein in einem Gestaltungsprozess auftretenden Aufgabenstellungen und Aktivitäten in ihrer logischen Ordnung darzustellen.
  • Wasserfall =
  • Software = Ist eine Sammlung von Programmen Software lässt sich nach verschiedenen Kriterien unterscheiden. Eine mögliche orientiert sich an einer büroorientierten Anwendersicht, welche eine konkrete Sicht auf die Funktionalisierung gibt.
  • Abstrakte Klassen = Abstrakte Klasse ist ein Begriff aus der objektorientierten Programmierung. Jede Klasse beschreibt genau die Eigenschaften all derjenigen Objekte, die eben dieser Beschreibung gemäß aus ihr hervorgehen würden.
    Solche Klassen, aus denen tatsächlich Objekte hervorgehen, werden konkrete Klassen genannt. Als abstrakte Klassen bezeichnet man hingegen solche Klassen, aus denen keine Objekte hervorgehen können.

20.02.2007
Ausschlußverfahren --> Problembeschreibung: 1. Kandidaten für Klassen = Substantiven, Namen, Gegenständer, Personen
2. Aus Liste Kandidaten
- Attribute v. Klassen/Objekte
- relevante Klassen
- irrelevante Klassen
{ Für ein Problem
- Operationen über Aktionen

21.02.2007
Kollaboration --> Sequenzdiagr. : Interaktion zw. beteiligten Objekten + Objektbeziehung (Kooperation)

22.02.2007
Durch Vererbung entsteht die Herachie.

Herunterladen:

Links:

Keine Kommentare: