software technology 2009/2010 faculty of electrical engineering and technical informatics budapest...

23
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

Upload: ute-rathel

Post on 06-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

SOFTWARE TECHNOLOGY

2009/2010Faculty of Electrical Engineering and Technical

InformaticsBudapest University of Technology and Economics

OO problems 2D

Page 2: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 2

Software technology 01.10.2008

Mit einer Bankkarte kann Geld überwiesen werden vom eigenen Bankkonto. Ein Sparauftrag kann auch erstellt werden. Ein Bankassistent kann ein neues Konto eröffnen. Das Konto zu sperren und ein Kredit zu erstellen ist nur der Filialenleiter zuständig. Der Filialenleiter hat selbstverständlich die Rechte eines Assistenten auch. Ein UML Anwendungsfall (use-case) Diagramm ist zu zeichnen !

ClientClerk

Head

Initiatingtransfer

Fixingdeposit

Opening

Locking

Establishing credit

Page 3: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 3

Software technology 01.10.2008

Anmerkung: Client-Opening,Locking, EstablishingCredit Verbindungen sind angezeigt, weil diese Transaktionen werden vom Client initiiert, der Clark und Head erteilt nur eine Genehmigung.

ClientClerk

Head

Initiatingtransfer

Fixingdeposit

Opening

Locking

Establishing credit

Page 4: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 4

Software technology 01.10.2008

In einer Verkaufstelle in England können die Kunden einige Produkte kaufen (Milch, Sandwichs, Zeitung usw.) und Briefe senden. Die Zahlung wird mit einer Bankkarte oder bar gemacht. In einigen Verkaufstellen können auch Verschriebene Briefe versendet werden. Ein use case Diagramm ist zu erstellen!

Customer

Buying

Mailing

Registration

Paying

Cash-paying

Card-paying

<<extends>>

<<includes>>

<<includes>>

Page 5: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 5

Software technology 01.10.2008

Hr. X hat kein Geld mehr. Er ruft sein Freund auf um Rat zu bitten. Sein Freund stellt Fragen an Herr X über seinen finanziellen Zustand, und schlägt vor Hilfe vom lokalen Verwaltungsamt zu bitten. Hr. X erstellt einen Antrag, und reicht es bei dem lokalen Verwaltungsamt ein. Später die lokale Verwaltungsamt – auf dem Antrag basiert – sendet eine Hilfe zu. Ein UML Sequenzdiagramm ist zu zeichnen !

Page 6: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 6

Software technology 01.10.2008

Hr. X: Person Freund: Person

:Amt.

l:Antrag

RatBitten()

financialle Zust()

create

Einr.(l)

get_data()

HilfeSend()

Rat

sd example

Page 7: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 7

Software technology 01.10.2008

Anmerkungen zu Hr X kein geld hat...

• Wird create anstatt <<create>> benutzt (noch erlaubt). Create liefert selbstverständlich ein Referenz auf das Antragobjekt I zurück.

• Get_data() entspricht „auf Antrag basiert“. Get_data() könnte I als Parameter haben (in C++ ist es der 'this' pointer, was automatisch da ist).

• Einreichen() ist asynchron, wartet nicht auf return, die execution Spezifikation beendet sich gleich. Hilfesend() ist auch asynchron, wartet auch nicht.

• Die Objekte können unterstrichen werden.

Page 8: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 8

Software technology 01.10.2008

Ein UML Sequenzdiagramm ist zu zeichnen !

Die Methode foo() des Objekts a1 der Klasse A, erstellt die Instanz b1 der Klasse B, und ruft die Methode start() des neuen Objekts auf. Zum Abschluss die Funktion foo() ruft die Methode bar() von a1. Nach dem Starten der Methode bar(), ruft b1 die Methode ready() von a1 auf. Falls bar() seine Tätigkeit beendet hat, ruft a1 die Methode stop() von b1 auf. Wenn stop() sich beendet hat, vernichtet sich b1.

Page 9: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 9

Software technology 01.10.2008

a1:A

1: foo()1.1:create

b1:B

1.2: start()

1.3: bar()

1.2.1: ready()

1.4: stop()

sd example

Page 10: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 10

Software technology 01.10.2008

Anmerkungen zur Abb. Foo()...

• Die Objekten sind untergezogen (noch kein Pflicht) (Untesctrich sollte allerdings weiß sein)

• create anstatt <<create>> ist noch erlaubt.

• Alle Methoden werden default als synchron aufgerufen (die sind z.B. „C++“ Funktionen). Ausnahme: start(). Das kann nur asynchron sein, sonst hat man nicht die Steuerung um bar() aufrufen zu können.

• ready() wird in einer Unterbalke verarbeitet, weil bar() läuft noch.

• stop() wird in einer Unterbalke verarbeitet, weil start() läuft noch.

Page 11: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 11

Software technology 01.10.2008

Ein Objekt der Klasse Alpha hat eine Kollektion (Objektensammlung) von Beta. Alpha leiht einen Element dieser Kollektion mit der Methode get()aus, dann ruft foo() des Elements auf. Zum Abschluss löscht den Element in der Kollektion. Ein UML Kommunikationsdiagramm ist zu erstellen!

1: get(): b

:Collection

2: foo()

b :Beta

sd example

:Alpha

3: remove(b)

Page 12: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 12

Software technology 01.10.2008

Anmerkungen:- :Collection kann von Array und Beta abgeleitet werden- man kann mit den Pfeilen sparsam umgehen. (wurde ein Pfeil erspart)

Page 13: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 13

Software technology 01.10.2008

Auf dem Kommunikationsdiagramm basiert ein UML Sequenzdiagram ist zu zeichnen! Auf die richtige Benutzung der Executionspecifikation ist zu achten!

1.1: bar():x

:C

1: foo()

:B

sd example

:A 1.1.1: ret()

1.2: pre(x)

Page 14: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 14

Software technology 01.10.2008

1.1: bar():x

:C

1: foo()

:B

sd example

:A 1.1.1: ret()

1.2: pre(x)

bar

:B

x

foo

sd example

:A

pre(x)

ret

:C

Page 15: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 15

Software technology 01.10.2008

Anmerkungen

• ret() ist eine Funktion, die synchron aufgerufen wurde.

• X muss als Returnwert zurückgegeben werden• Objektnahmen können unterstrichen werden (noch

optional)

Page 16: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 16

Software technology 01.10.2008

Schneewittchen

• Ein UML Sequenzdiagramm ist zu zeichnen!

Irene, die böse Stiefmutter will Schneewittchen vergiften. Dazu fertigt Sie ein Kuchen. Etwas Gift reingetan liegt sie das Kuchen in den Ofen zum backen. Solange das Kuchen gebacken wird, bricht sie ihren Kopf über böse Sachen. Halbe Stunde später piepst der Ofen, weil das Kuchen fertig wurde. Irene nimmt das Kuchen raus, und sendet sie es an Schneewittchen.

Page 17: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 17

Software technology 01.10.2008

                   

s:Kuchen

:Ofen Schneewittchen:Frau

3.1: piepsen( )

1: <<create>>

3: einlegen(s)

3.1.1: ausnehmen( )

2: giften( )

Irene:Stiefmutter

3.1.2: senden(s)

 

Page 18: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 18

Software technology 01.10.2008

Sequence diagramm

• Ein UML Ablaufdiagramm (sequence diagram) ist zu zeichnen!

• Das Objekt a der Klasse A ruft asynchron die Methode foo() des Objekts b der Klasse B auf, und gerät gleich in passiven Zustand. In foo() b erstellt ein Objekt c der Klasse C, und ruft asynchron die Methode bar() des Objekts a mit Parameter c auf. Im bar() ruft a die Methode do() des Objekts als Parameter bekommen synchron auf.

Page 19: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 19

Software technology 01.10.2008

c:C

b:Ba:A

1. foo()1.1.<<create>>

1.2. bar(c)

1.2.1. do()

Page 20: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 20

Software technology 01.10.2008

Kasza Blanka

• Ein UML Ablaufdiagramm (sequence diagram) ist zu zeichnen!

• Die berühmte Ingenieurin, Kasza Blanka fertigt einen Oszilloculminator, startet es, dann überreicht es ihrem Sohn, Schlingelner Maxim. Der Sohn den nächsten Tag zieht die noch laufende Maschine auf.

Page 21: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 21

Software technology 01.10.2008

SM:Sohn

1.<<create>>

2. starten()

3. ubergeben()

4. aufziehen()

KB:Mutter

oc:OC

Page 22: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 22

Software technology 01.10.2008

Money Or Life

• Ein UML use-case Diagramm ist zu zeichnen aufgrund der Beschreibung!

• Im Bank MoneyOrLife können die Kunden auf dem Internetportal Überweisung und Sparauftrag angeben. In den Bankfilialen können die Bankbeamten mit demselben Programm neben Überweisungen und Sparaufträge auch ein neues Konto eröffnen. Der Filialenleiter kann die Tätigkeiten der Bankbeamten jederzeit übernehmen, und zusätzlich kann auch Kontos sperren .

Page 23: SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 2D

© dr. Z. László 23

Software technology 01.10.2008

Überweisen

Sparauftrag

KontoÖffnen

KontoSperren

Login