Objektorientierte Programmierung -...

13
Fachbereich Wirtschaftsinformatik Entwicklung von Anwendungen Unterrichtsmaterial Objektorientierte Programmierung Stand: Januar 2015 © Leopold-Ullstein-Schule / O. Misselwitz, A. Grunert

Transcript of Objektorientierte Programmierung -...

Page 1: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

Fachbereich Wirtschaftsinformatik

Entwicklung von Anwendungen

Unterrichtsmaterial

Objektorientierte Programmierung

Stand: Januar 2015

© Leopold-Ullstein-Schule / O. Misselwitz, A. Grunert

Page 2: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule A1 SWE-Zyklus.docx

EvA UML

Software- Entwicklungszyklus

Au

fwa

nd f

ür

die

F

eh

lerk

orr

ektu

r:

teste

n

public class Artikel {

// Anfang Attribute

private String EAN;

private String Be-

zeichnung;

private double Net-

topreis;

// Ende Attribute

public Artikel() {

}

// Anfang Methoden

public double be-

rechneBruttopreis()

{

// Variablendekla-

ration und -initiali-

sierung

Jeder Ar-

tikel hat

eine EAN,

eine Be-

zeichnung

und einen

Preis.

Der Brut-

topreis

des Arti-

kels

ergibt

sich aus

Page 3: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule A2 Begriffe der Objektorientierung.docx

EvA UML

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), Schwimm-

bad 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

UML 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()

UML Klassendiagramm

Page 4: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule A2 Begriffe der Objektorientierung.docx

Wie kann die Operation »berechneMaklercourtage« für das Objekt »oHaus1« ausgeführt wer-

den? Dazu wird dem Objekt eine __________________ geschickt.

Eine _________________ aktiviert eine Operation gleichen Namens. Die gewünschten Ausga-

bedaten 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 Be-

obachtung, 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 Vorstel-

lungswelt (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 Ob-

jekte 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ög-

lich, 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

Page 5: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule A3 Begriffe der OO Uebung.docx

EvA UML

Begriffe der Objektorientierung Übung

Erläutern Sie anhand dieser Graphik die unten stehenden Begriffe und zeichnen Sie ein passendes UML-Klassendiagramm und das Objektdiagramm.

1. Attribut

2. Attributwert

3. Objekt

4. Klasse

5. Operation

6. Botschaft

7. Geheimnisprinzip

Page 6: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule A4 UML Entwicklung.docx

EvA UML

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 UML ist in erster Linie die Beschreibung einer einheitlichen Notation und Semantik sowie die Definition eines Metamodells. UML 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 UML einen Konstruktionsplan für objektorientierte Softwaresysteme dar.

aus: Bernd Oestereich, Objektorientierte Software Entwicklung

Page 7: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule B01 Fahrzeug.docx

EvA UML

UML-Ü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 UML-Notation.

2. Zeichnen Sie ein OOA-Klassendiagramm der Klasse Fahrzeug in UML-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?

Page 8: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule B02 Bezeichner.docx

EvA UML

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 Programmier-sprache 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

Page 9: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule B03 Phasen der OO.docx

EvA UML

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 Anforderun-gen 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 UML-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 UML-Notation

OOA-Klassendiagramm ergänzt um

- Datentypen der Attribute

Übliche Datentypen mit der Benennung wie in Java sind:

Datentyp Bemerkung

int Ganze Zahl

double Dezimalzahl

char Ein Zeichen

boolean Wahrheitswert false oder true

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

Page 10: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

©Leopold-Ullstein-Schule B04 Mitarbeiter.docx

EvA UML

UML-Ü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 UML-Notation.

2. Sie befinden sich in der Phase der objektorientierten Analyse (OOA). Entwerfen Sie ein Klassendiagramm in UML-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!

Page 11: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule B05 Kundenkarte.docx

EvA UML

UML-Übung Kundenkarte

Situationsbeschreibung

Die Firma ProfiSoft erhält ihre ersten Aufträge. Ein Modehaus möchte eine Kundenkarte einfüh-ren. Um die Kunden geeignet verwalten zu können, soll ein Kundenverwaltungsprogramm ge-schrieben 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 Um-satz 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 UML-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!

Page 12: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule B06 Jahrestermingeldkonto.docx

EvA UML

UML-Ü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 zusam-mengetragen. 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 unerheb-lich.

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 Termin-geldkonten 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 UML-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.

Page 13: Objektorientierte Programmierung - oszinddv.be.lo-net2.deoszinddv.be.lo-net2.de/andreas.grunert/.ws_gen/1/UML-Script.pdf · Für jedes Attribut wird zudem festgelegt, ob es eine GET-

© Leopold-Ullstein-Schule B07 Artikel.docx

EvA UML

UML-Ü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

Umsatz-steuersatz

Netto-verkaufs-

preis

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 UML-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?