Fachbereich Wirtschaftsinformatik Entwicklung von Anwendungen Unterrichtsmaterial Objektorientierte Programmierung Stand: Januar 2015 Leopold-Ullstein-Schule / O. Misselwitz, A. Grunert
Aufwand für die Fehlerkorrektur: Jeder Artikel hat eine EAN, eine Bezeichnung und einen Preis. Der Bruttopreis des Artikels ergibt sich aus public class Artikel { // Anfang Attribute private String EAN; private String Bezeichnung; private double Nettopreis; // Ende Attribute public Artikel() { } // Anfang Methoden public double berechnebruttopreis() { // Variablendeklaration und -initialisierung testen EvA Software- Entwicklungszyklus Leopold-Ullstein-Schule A1 SWE-Zyklus.docx
Begriffe der Objektorientierung Die Firma Nobel & Teuer vermittelt exklusive Einfamilienhäuser. Jedes Einfamilienhaus ist ein. Die Firma Nobel & Teuer hat gerade den Auftrag erhalten, ein Landhaus zu verkaufen. Über dieses»landhaus«-objekt werden von Nobel & Teuer folgende Daten gespeichert: Haustyp ( Landhaus ), Name des Besitzers ( Dr. Kaiser ), Adresse des Landhauses ( Königsstein ), Wohnfläche (400), Anzahl der Bäder (3), Schwimmbad vorhanden (ja), Grundstücksgröße (5000), Baujahr (1976), Verkaufspreis (2.000.000,00). Anstelle von Daten spricht man auch von. Kommt ein potentieller Käufer zu Nobel & Teuer, dann muss die Maklercourtage berechenbar sein. Es wird eine Funktion benötigt, die auf das Objekt»Landhaus«angewendet wird. In der objektorientierten Welt spricht man statt von einer Funktion von einer. Außer dem Objekt»Landhaus«bietet die Firma Nobel & Teuer noch andere Einfamilienhäuser an. Alle drei Objekte besitzen zwar unterschiedliche Attributwerte, die aber alle von der gleichen Art sind. ohaus1 : Einfamilienhaus ohaus2 : Einfamilienhaus ohaus3 : Einfamilienhaus Haustyp = Landhaus Besitzer = Dr. Kaiser Adresse = Königstein Wohnfläche = 400 Bäderanzahl = 3 Schwimmbad = ja Grundstücksgröße = 5000 Baujahr = 1976 Verkaufspreis = 2000000 Haustyp = Bungalow Besitzer = Herzog Adresse = Stiepel Wohnfläche = 250 Bäderanzahl = 2 Schwimmbad = nein Grundstücksgröße = 1500 Baujahr = 1986 Verkaufspreis = 1500000 Haustyp = Stadthaus Besitzer = Urban Adresse = Bochum Wohnfläche = 200 Bäderanzahl = 2 Schwimmbad = nein Grundstücksgröße = 400 Baujahr = 1990 Verkaufspreis = 700000 Objektdiagramm Man spricht hier von den»haustyp«,»besitzer«usw. Außerdem besitzen alle Objekte die gleiche Operation»berechneMaklercourtage«. Diese Objekte werden daher zur»einfamilienhaus«zusammengefasst. Eine definiert die Attribute und Operationen ihrer Objekte. Einfamilienhaus Haustyp Besitzer Adresse Wohnfläche Bäderanzahl Schwimmbad Grundstücksgröße Baujahr Verkaufspreis berechnemaklercourtage() Klassendiagramm Leopold-Ullstein-Schule A2 Begriffe der Objektorientierung.docx
Wie kann die Operation»berechneMaklercourtage«für das Objekt»oHaus1«ausgeführt werden? Dazu wird dem Objekt eine geschickt. Eine aktiviert eine Operation gleichen Namens. Die gewünschten Ausgabedaten werden an den Sender der Botschaft zurückgegeben. ohaus1 : Einfamilienhaus Haustyp = Landhaus Besitzer = Dr. Kaiser Adresse = Königstein Wohnfläche = 400 Bäderanzahl = 3 Schwimmbad = ja Grundstücksgröße = 5000 Baujahr = 1976 Verkaufspreis = 2000000 Objekte Wie die Bezeichnung»objektorientiert«bereits nahe legt, steht der Objektbegriff im Mittelpunkt. Ein ist allgemein ein Gegenstand des Interesses, insbesondere einer Beobachtung, Untersuchung oder Messung. In der objektorientierten Software-Entwicklung ist ein Objekt ein individuelles Exemplar von Dingen (z. B. Einfamilienhaus, Roboter, Auto), Personen (z. B. Kunde, Mitarbeiter) oder Begriffen der realen Welt (z. B. Bestellung) oder der Vorstellungswelt (z. B. juristische Person). Ein Objekt besitzt einen bestimmten Zustand und reagiert mit einem definierten Verhalten auf seine Umgebung. Außerdem besitzt jedes Objekt eine, die es von allen anderen Objekten unterscheidet (z. B. ohaus1). Ein Objekt kann ein oder mehrere andere Objekte kennen. Zwischen Objekten, die sich kennen, bestehen Verbindungen (links). Der (state) eines Objekts wird durch seine Attributwerte bzw. Daten und die jeweiligen Verbindungen zu anderen Objekten bestimmt. Das (behavior) eines Objekts wird durch eine Menge von Operationen beschrieben. Die Begriffe Exemplar, Instanz, instance und class instance werden synonym für den Begriff Objekt verwendet. Eine Änderung oder Abfrage des Zustands eines Objekts ist nur über seine Operationen möglich, d. h. die Attributwerte und Verbindungen sind außerhalb des Objekts nicht sichtbar. Man spricht daher von der Verkapselung der Daten bzw. von der Einhaltung des. Nach: Helmut Balzert, Lehrbuch Grundlagen der Informatik, Spektrum Akad. Verlag, Heidelberg 1999 Leopold-Ullstein-Schule A2 Begriffe der Objektorientierung.docx
Begriffe der Objektorientierung Übung Erläutern Sie anhand dieser Graphik die unten stehenden Begriffe und zeichnen Sie ein passendes -Klassendiagramm und das Objektdiagramm. 1. Attribut 2. Attributwert 3. Objekt 4. Klasse 5. Operation 6. Botschaft 7. Geheimnisprinzip Leopold-Ullstein-Schule A3 Begriffe der OO Uebung.docx
Entwicklung der Unified Modeling Language Die Idee der Objektorientierung existiert seit Ende der 60er Jahre und fast ebenso lange liegt die Entwicklung objektorientierter Programmiersprachen zurück. Während es etwa solange bereits Publikationen zur objektorientierten Programmierung gibt, erschienen die ersten Bücher über objektorientierte Analyse- und Designmethoden erst Anfang der 90er Jahre. aus: Heide Balzert, Lehrbuch der Objektmodellierung Die ist in erster Linie die Beschreibung einer einheitlichen Notation und Semantik sowie die Definition eines Metamodells. ist eine Modellierungssprache zum Spezifizieren Konstruieren Visualisieren und Dokumentieren eines Softwaresystems. So wie es Schaltpläne für Elektrogeräte gibt, die einer international standardisierten Syntax und Semantik folgen und somit für "jedermann" lesbar sind, stellt die einen Konstruktionsplan für objektorientierte Softwaresysteme dar. aus: Bernd Oestereich, Objektorientierte Software Entwicklung Leopold-Ullstein-Schule A4 Entwicklung.docx
-Übung Fahrzeug Das Autohaus "Schrott und Klirr" möchte für jedes seiner zu verkaufenden Fahrzeuge ein Informationsblatt gleichen Aufbaus erstellen. Hier einige Verkaufsangebote: Fahrzeug 1: 115 kw, 7,2 l/100 km Benzin, 48 l Tankinhalt, Cabrio Fahrzeug 2: 66 kw, 6,1 l/100 km Diesel, 60 l Tankinhalt, Limousine Fahrzeug 3: 100 kw, 9,6 l/100 km Benzin, 54 l Tankinhalt, Kombi 1. Zeichnen Sie für die drei Beispielfahrzeuge je ein Objektdiagramm in -Notation. 2. Zeichnen Sie ein OOA-Klassendiagramm der Klasse Fahrzeug in -Notation. Für folgende Aufgaben ist jeweils eine Operation vorzusehen: Ermitteln der Fahrzeugleistung in PS (1 kw = 1,36 PS) Ermitteln der Reichweite mit einer Tankfüllung in km 3. Überführen Sie das OOA-Klassendiagramm in ein OOD-Klassendiagramm. 4. Wie lauten die Botschaften für folgende Aufgaben? a) Erstellen Sie ein Objekt für das Fahrzeug 1. b) Setzen Sie die Attribute des Fahrzeug 1 wie in Ihrem Objektdiagramm. c) Wie viele Pferdestärken hat das Cabrio? d) Wie hoch ist die maximale Reichweite des Fahrzeugs? Leopold-Ullstein-Schule B01 Fahrzeug.docx
Richtlinien für Bezeichner 1. Für Klassen, Attribute, Operationen usw. werden Namen vergeben, sogenannte Bezeichner (identifier). 2. Bezeichner sollen aussagekräftig und selbsterklärend sein. 3. Setzt sich ein Bezeichner aus mehreren Wörtern zusammen, beginnt jedes Wort innerhalb des Bezeichners mit einem Großbuchstaben. Generell wird zwischen Groß- und Kleinbuchstaben unterschieden. 4. Unterstriche werden nicht verwendet. 5. Leerzeichen und Bindestrich (Minuszeichen) können nicht verwendet werden, da dadurch zwei Bezeichner entstehen. Gleiches gilt für alle Sonderzeichen, die eine eigene Bedeutung haben wie z. B. + für Addition oder / für Division oder ( ) für Operationen. 6. Umlaute und ß dürfen nicht verwendet werden. 7. Am Anfang eines Bezeichners darf keine Ziffer stehen. 8. Ein Bezeichner darf mit keinem reservierten Schlüsselwort der verwendeten Programmiersprache identisch sein. 9. Klassennamen beginnen mit einem Großbuchstaben und sind ein Substantiv im Singular (z. B. Kunde). 10. Objektnamen beginnen mit einem Kleinbuchstaben, und zwar mit o (für Objekt). Darauf kann eine mögliche nähere Beschreibung, z. B. 1, ein, mein, erster, einanderer, dein, zweiter o. ä. folgen. Enden sollte der Objektname mit dem Klassennamen (z. B. okunde oder oeinkunde). 11. Attributnamen beginnen mit einem Großbuchstaben (z. B. Gehalt). 12. Operationsnamen beginnen mit einem Kleinbuchstaben, in der Regel ein Verb, gefolgt von einem Substantiv (z. B. erhoehegehalt). 13. Variablennamen und Parameternamen beginnen mit einem Kleinbuchstaben. Eine gut lesbare Variante ist es, den eigentlichen Namen (meist ein Substantiv) groß zu schreiben und davor einen Kleinbuchstaben zu setzen, der den Datentyp der Variablen symbolisiert (z. B. inote, dgehalt, snachname). Bei Parameternamen empfiehlt sich zusätzlich ein voran gestelltes p (z. B. pinote, pdgehalt). Integrierte Dokumentation Zur integrierten Dokumentation gehört das Prinzip der Verbalisierung. Verbalisierung bedeutet, Gedanken und Vorstellungen in Worten auszudrücken und damit ins Bewusstsein zu bringen. Bezogen auf die Entwicklung eines Programms soll Verbalisierung dazu dienen, die Ideen und Konzepte des Programmierers im Programm möglichst gut sichtbar zu machen und zu dokumentieren. Eine gute Verbalisierung kann erreicht werden durch: aussagekräftige Namensgebung für die Bezeichner geeignete Kommentare im Quellcode selbstdokumentierende Programmiersprache Leopold-Ullstein-Schule B02 Bezeichner.docx
Phasen der objektorientierten Softwareentwicklung Bei einer objektorientierten Softwareentwicklung (object oriented software development) werden die Ergebnisse der Phasen Analyse, Entwurf und Implementierung objektorientiert erstellt. OOA Objektorientierte Analyse (object oriented analysis) Die objektorientierte Analyse ist ein Verfahren zur Ermittlung und Beschreibung der Anforderungen an ein Softwaresystem mittels objektorientierter Konzepte und Notationen. Alle Aspekte der Implementierung werden ignoriert. Das Ergebnis ist u. a. ein OOA-Modell der benötigten Klassen. OOA-Klassendiagramm in -Notation - Klassenname - Attribute - Operationen - Beziehungen zwischen Klassen OOD Objektorientierter Entwurf (object oriented design) Aufbauend auf dem OOA-Modell erfolgt die Erstellung die Spezifikation der Klasse aus Sicht der Realisierung. Das Ergebnis ist das OOD-Modell der Klasse, das ein Abbild der objektorientierten Programme auf einem höheren Abstraktionsniveau darstellt. OOD-Klassendiagramm in -Notation OOA-Klassendiagramm ergänzt um - Datentypen der Attribute Übliche Datentypen mit der Benennung wie in Java sind: Datentyp int double char boolean String Bemerkung Ganze Zahl Dezimalzahl Ein Zeichen Wahrheitswert false oder true Zeichenkette - Startwerte der Attribute - Konstruktoroperation (erzeugt die Objekte aus einer Klasse) - Rückgabedatentypen der Operationen - Parameter und deren Datentypen der Operationen - Sichtbarkeiten der Attribute (vorerst nur private) und Operationen (vorerst nur public) Für jedes Attribut wird zudem festgelegt, ob es eine GET- und/oder SET-Methode erhalten soll. OOP Objektorientierte Programmierung (object oriented programming) Das OOD-Modell wird in den Quelltext einer objektorientierten Programmiersprache (z. B. Java, C++, C#, Visual Basic) überführt. Vorgegebene Programmierrichtlinien (Konventionen) sind zu beachten, insbesondere muss die Programmdokumentation erstellt werden. Außerdem müssen Testdaten geplant und Testläufe durchgeführt werden. Leopold-Ullstein-Schule B03 Phasen der OO.docx
-Übung Personalsachbearbeitung Situationsbeschreibung Ihr Auftraggeber ist die Personalabteilung eines Unternehmens mit ca. 300 Mitarbeitern. Die Mitarbeiter des Unternehmens erhalten fixe Gehälter. Neben den monatlichen Gehältern erhalten die Mitarbeiter 50% des Gehalts als Weihnachtsgeld, für jedes Kind erhöht sich das Weihnachtsgeld um 10%. Der Urlaubsanspruch beträgt 25 Tage und erhöht sich jeweils um 1 Tag für 5 Jahre Betriebszugehörigkeit. Der Auftraggeber wünscht sich eine DV-Unterstützung für die Personalsachbearbeitung und stellt Ihnen folgenden Ausschnitt aus seiner Exceltabelle Mitarbeiter zur Verfügung. PersonalNr Name Einstiegsjahr Kinder Gehalt 7 Meier 2002 2 4.200,00 4711 Schulz 1999 1 3.800,00 815 Schlumpf 2003 0 2.900,00 Aufgaben 1. Erstellen Sie zur ersten Annäherung an das Problem ein Objektdiagramm für den Mitarbeiter mit der Personalnummer 4711 in -Notation. 2. Sie befinden sich in der Phase der objektorientierten Analyse (OOA). Entwerfen Sie ein Klassendiagramm in -Notation. 3. Sie befinden sich nun in der Phase des objektorientierten Entwurfs (OOD). Überführen Sie das Klassendiagramm der OOA in ein Klassendiagramm des OOD. 4. Formulieren Sie für die folgenden Aktionen die geeigneten Botschaften. a) Erstellen Sie ein Objekt der Klasse Mitarbeiter. b) Setzen Sie die Attribute des Objektes wie in Ihrem Objektdiagramm. c) Berechnen Sie das Weihnachtsgeld des Mitarbeiters. d) Wie viele Tage Urlaubsanspruch hat der Mitarbeiter dieses Jahr? e) Der Mitarbeiter ist nochmals Vater geworden! Leopold-Ullstein-Schule B04 Mitarbeiter.docx
-Übung Kundenkarte Situationsbeschreibung Die Firma ProfiSoft erhält ihre ersten Aufträge. Ein Modehaus möchte eine Kundenkarte einführen. Um die Kunden geeignet verwalten zu können, soll ein Kundenverwaltungsprogramm geschrieben werden. Die Anforderungen an die erste Ausbaustufe dieses Programms werden in einem Pflichtenheft zusammengefasst: 1. Name und Adresse (Straße, PLZ, Ort) jedes Kunden sollen gespeichert werden. 2. Es soll gespeichert werden, ob es sich um einen Herrn oder eine Frau handelt. 3. Jeder Kunde soll eine Kundennummer erhalten. 4. Für jeden Kunden soll der Umsatz des laufenden Jahres gespeichert werden. Bei jedem Einkauf muss der Umsatz des Kunden entsprechend erhöht werden. 5. Bei der Neuausgabe der Karte soll der Umsatz mit 0 vorbelegt sein. 6. Am Ende eines Jahres erhält jeder Kunde in Abhängigkeit von seinem getätigten Umsatz einen Bonus von 3%, der als Gutschrift im nächsten Jahr verrechnet wird. Der getätigte Umsatz wird zurück auf 0 gesetzt. Aufgaben 1. Erstellen Sie zwei Objektdiagramme für mögliche Kunden. 2. Führen Sie eine objektorientierte Analyse durch. Entwerfen Sie ein Klassendiagramm in -Notation. 3. Überführen Sie Ihr Klassendiagramm der OOA in ein Klassendiagramm des OOD. 4. Formulieren Sie für die folgenden Aktionen die geeigneten Botschaften. a) Erstellen Sie ein Objekt der Klasse Kunde. b) Setzen Sie die Attribute dieses Objektes wie in einem Ihrer Objektdiagramme. c) Der Kunde hat für 234,50 eingekauft. d) Wie hoch ist der aktuelle Umsatz des Kunden? e) Es ist der 31. Dezember! Leopold-Ullstein-Schule B05 Kundenkarte.docx
-Übung Jahrestermingeldkonto Situationsbeschreibung Eine Bank bietet sogenannte Jahrestermingeldkonten an und möchte diese in einer separaten Anwendung verwalten. Jahrestermingeldkonten sind Festgeldkonten mit einer festen Laufzeit von einem Jahr. Dazu haben die Mitarbeiter der Bank im Vorfeld folgende Gedanken zusammengetragen. 1. Jedes Konto hat eine eindeutige Kontonummer. 2. Jedes Konto hat einen Kontoinhaber. 3. Für jedes Konto soll der Kontostand gespeichert werden. Der Kontoverlauf ist hier unerheblich. 4. Mit der Einzahlung eines beliebigen Anlagebetrages beginnt die Laufzeit von einem Jahr. 5. Zum Ende der Laufzeit werden die Zinsen berechnet. Der Zinssatz ist immer für alle Termingeldkonten aller Kunden gleich. 6. Zum Ende der Laufzeit kann Geld abgehoben werden oder ein weiterer Betrag eingezahlt werden (s. o.). Beim Abheben ist zu beachten, dass der Kontostand nicht negativ sein darf. 7. Bei der Neuerstellung eines Jahrestermingeldkontos ist der Kontostand mit 0 vorbelegt. Aufgaben 1. Entwerfen Sie ein OOA-Klassendiagramm in -Notation. 2. Überführen Sie das Klassendiagramm der OOA in ein Klassendiagramm des OOD. 3. Formulieren Sie für die folgenden Aktionen die geeigneten Botschaften. a) Erstellen Sie ein Objekt der Klasse Jahrestermingeldkonto. b) Tragen Sie sich als Kontoinhaber ein und setzen den Zinssatz auf 1,2%. c) Sie zahlen 1.000 ein. d) Das Jahr ist um, es werden die Zinsen berechnet. e) Sie heben 600 ab. Leopold-Ullstein-Schule B06 Jahrestermingeldkonto.docx
-Übung Artikel Situationsbeschreibung Eine große Handelskette entschließt sich ihre Artikel mittels Datenverarbeitung zu verwalten. In einem ersten Brainstorming sammeln die Mitarbeiter die Informationen, die für einen Artikel relevant sind und welche Funktionen die Software anbieten sollte. 1. Jeder Artikel hat eine eindeutige EAN (europäische Artikelnummer), eine Artikelbezeichnung, Verpackungsgröße, einen Nettoverkaufspreis sowie einen Hinweis, ob es sich um einen Artikel mit vermindertem Umsatzsteuersatz handelt. 2. Der Nettoverkaufspreis soll mit 0,00 vorbelegt sein und der verminderte Umsatzsteuersatz soll vorgegeben sein. 3. Der Bruttoverkaufspreis soll berechnet werden können. 4. Die EAN soll überprüft werden, d. h. es soll kontrolliert werden können, ob die errechnete Prüfziffer mit der eingelesenen Prüfziffer übereinstimmt. Bis heute werden die Artikel von Hand in einer Tabelle erfasst: EAN Artikelbezeichnung verminderter Umsatzsteuersatz Nettoverkaufspreis 4000029036004 Erdnüsse J 0,75 4004764099344 Tafelschreiber N 7,55 4000400132390 Mini-Knödel J 2,51 4199148403302 c t Magazin für Computertechnik J 3,08 4002221001107 Kirsch-Banane-Tee J 2,00 Aufgaben 1. Erstellen Sie die Objektdiagramme für die ersten beiden Artikel. 2. Entwickeln Sie das -Klassendiagramm für die objektorientierte Analyse (OOA). 3. Überführen Sie Ihr OOA-Klassendiagramm in ein Klassendiagramm für das objektorientierte Design (OOD). 4. Formulieren Sie die Botschaften für folgende Aufgaben. a) Erstellen Sie ein Objekt der Klasse Artikel. b) Setzen Sie die Attribute des Objektes für den ersten Artikel wie in Ihrem Objektdiagramm. c) Berechnen Sie den Bruttoverkaufspreis! d) Wie lautet die Artikelbezeichnung? e) Stimmt die EAN? Leopold-Ullstein-Schule B07 Artikel.docx