• Keine Ergebnisse gefunden

C R C m it G ru pp en

N/A
N/A
Protected

Academic year: 2021

Aktie "C R C m it G ru pp en"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik1

3. E rs te Sc hr itte in der Objek tor ientier te Analy se mit C R C -Kar ten

Prof. Dr. rer. nat. Uwe Aßmann Lehrstuhl Softwaretechnologie (ST) Institut für Software- und Multimediatechnik (SMT) Fakultät für Informatik TU Dresden Version 11-0.2, 16.04.11

1)

C R C -A na lys e

2)

C R C m it G ru pp en

3)

C R R C -A na lyse

Prof. U. Aßmann, Softwaretechnologie2

Li ter at ur

O b lig at or isch e L ite ra tu r

Zuser Kap 9 Beck, Kent; Cunningham, Ward (October 1989), "A laboratory for teaching object oriented thinking", ACM SIGPLAN Notices (New York, NY, USA: ACM) 24 (10): 1–6, http://c2.com/doc/oopsla89/paper.html

W ei te rf üh re nd e Li te ra tu r

HotDraw CRC cards http://c2.com/doc/crc/draw.html Scott Ambler. The Object Primer. Cambridge University Press. Gutes Kapitel über CRC

(2)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik3

3.1 Analy semethoden: Analy se mit C R C -Kar ten

Informelle Problem- beschreibung

Objektorientiertes Analyse-Modell CRC-Karten Prof. U. Aßmann, Softwaretechnologie

D ie R ol le von M et ho de n in d er S of tw ar eent w ickl ung

U m e in S yst em zu e n tw ick el n, so llt e m an si ch a n ei ne

Methode

ha lte n, d ie e in em d ur ch a lle S ch ri tte le ite t

E in e M et h od e be ru ht a u f ei n er o d er m e hr er e n ze nt ra le n F ra ge n, di e im m e r w ie de r g est el lt w e rd en

S ie w e rd en im L au fe Ih re s L eb e ns ve rs ch ie d en e M et ho de n ke nn en le rn en

A na lyse m et ho de – E nt w ur fs m e th od e - Im pl e m en tie ru ng sm e th od

Wie kommen wir vom Problem des Kunden zum Programm (oder Produkt)?

Wie kommen wir vom Problem des Kunden zum Programm (oder Produkt)? Von der Beschreibung der Welt des Kunden (Domänenmodel, Weltmodel)

Zum Programm

Methode

(3)

Prof. U. Aßmann, Softwaretechnologie5

O bj ekt or ient ier te E nt w ur fsm et hodi k

V om o bj ekt or ie nt ie rt en E nt w ur f e xi st ie re n e in ig e S pi el ar te n, d ie zu sä tzl ich e H ilf sm itt e l e in se tze n .

CRC-Karten Strukturgetriebener Klassenentwurf (z.B. nach Balzert, später)

W el ch e O bj ek te ( K la ss en ) en th äl t ei n Sy st em? W el ch e V er an tw or tl ic hk ei te n ha be n si e? W el ch e O bj ek te ( K la ss en ) en th äl t ei n Sy st em? W el ch e V er an tw or tl ic hk ei te n ha be n si e?

Prof. U. Aßmann, Softwaretechnologie6

A nal yse m it C R C -K ar ten

CRC

= C la ss – R esp on si bi lit y – C ol la bo ra to r ( K la sse – V er an tw or tli ch ke it – M ith el fe r)

[B eck, C un ni ng ha m , W ilke rso n, W irf s- B ro ck (ca . 1 98 9- 19 95 )]

Te ch ni k zu r G ru pp en ar be it (R ol le nsp ie le )

W ich tig st es H ilf sm itt el : Zu b esch rif te nd e K ar te ika rt en

Definition Attribute (attributes)(Rückseite) Klassenname (class)Klassenname (class) Verantwort- lichkeiten (responsibili- ties)

Mithelfer (collabora- tors)

(Vorderseite) Ober- und Unterklassen (opt.)

(4)

Prof. U. Aßmann, Softwaretechnologie

C lass R esponsi bi lit y C ar ds (C R C )

Zu st än di gke it fü r A uf ga be ( D ie nst ):

Aktion Auskunft (query) Prüfung (check)

K oo pe ra tio n m it P ar tn er

Wenn Klasse alleine zur Bewältigung der Aufgaben nicht fähig “Mit wem muss ich kooperieren, um einen Dienst zu erhalten?”

W el che s O bj ek t is t für w el che A uf ga be n zus ndi g? W el che s O bj ek t is t für w el che A uf ga be n zus ndi g?

Klassenname (class) Verantwort- lichkeiten (responsibili- ties)

Mithelfer (collabora- tors)

(Vorderseite) Ober- und Unterklassen Prof. U. Aßmann, Softwaretechnologie

C R C -K ar te n- M et ho de : V or ge hen sw ei se al s E inzel ner

V or au sse tzu ng : in fo rm el le A nf or de ru ng sb esch re ib un g (id ea l: au sf üh rli ch e A nf or de ru ng ssp ezi fika tio n )

Gesetz 51 (PP): Nicht Anforderungen sammeln, sondern nach ihnen schürfen

Kandidaten für Klassen identifizieren Szenarien durchspielen, Klassen verfeinern Ungewöhliche Szenarien durchspielen Verbesserungen anbringen

(5)

Prof. U. Aßmann, Softwaretechnologie9

S zenar ien

E in S ze na ri o ist e in ty pi sch er A bl a uf vo n A kt io n en z ur E rf ül lu n g d es ge pl an te n S yst em zw ecks.

z.B. notwendige Schritte zur Einrichtung einer neuen Teambesprechung: Festlegung des Titels Festlegung der Teilnehmer Festlegung eines ersten Terminvorschlags und Abstimmung Festlegung eines Besprechungsraums Viele Szenarien zur Beschreibung eines Teilaspekts des Systemzwecks.

S ze na rie n w e rd en in te ra kt iv "d ur ch g esp ie lt" . M an st el lt si ch d ie E nt w ickl un gsf ra ge n de r C R C -M et ho de :

Wer ist zuständig (Verantwortungsbereich)? Welche Aufgaben sind dazu zu erfüllen? (auf Karte eintragen) Welches Privatwissen ist dazu nötig? (auf Karte eintragen) Prof. U. Aßmann, Softwaretechnologie1010

Ident ifi kat ion von K lassen- K andi dat en: S ubst ant iv- V er b- A nal yse

A na lys ie re te xt ue lle A nf or d er u ng en :

Finde Objekte aus Hauptwörtern Finde Kooperationen aus Subjekt-Objekt-Relationen, Genitiven, Nebensätzen Finde Aktivitäten aus Verben und substantivierten Verben Finde Kontextklassen durch Orte und adverbiale Bestimmungen

B ei sp ie l

"When the studentorders a computer, he has to contact the computer dealer. The computer dealerships the packetvia the parcel service." “When the driver turns on the lights the battery is discharged. When the engineruns the dynamorecharges the battery...”

Fi nde A uf ga be n aus V erbe n, K la ss en aus H aupt w ört ern Fi nde A uf ga be n aus V erbe n, K la ss en aus H aupt w ört ern

(6)

Prof. U. Aßmann, Softwaretechnologie

K rit er ien für K lassen in der S ubst ant iv- V er b- A nal yse

P ro bl em re le va nt e S ub st an tive a usw äh le n

Allgemeine Worte weglassen (z.B. "System") Auch "versteckte" Substantive betrachten (z.B. "Privattermin")

H at je de K la sse e in en kl ar a bg eg re nzt en V er an tw or tu ng sb er ei ch ?

Gibt es Aufgaben, die spezifisch für die Objekte der Klasse sind? Passen die Aufgaben zusammen? Gibt es "Privatwissen", das ein Objekt der Klasse besitzt?

S in d V er an tw or tu ng sb er ei ch e vo n m eh re re n K la sse n ab ge de ckt ?

"H ab en w ir al le s? "

Gibt es nicht als Substantive erwähnte wichtige "Mitspieler"? Prof. U. Aßmann, Softwaretechnologie

W ei ter e R egel n für das A usf ül len von C R C - K ar ten

V er an tw or tli ch ke ite n:

Eine Verantwortlichkeit enthält fast immer ein Zeitwort. '... wissen' kann auch eine Verantwortlichkeit sein.

M ith el fe r:

Mithelfer-Einträge nur eintragen, wenn Kommunikation mit anderen Objekten notwendig. Eine Verantwortlichkeit kann mehrere Mithelfer benötigen. Die Rückgabe einer Antwort gehört zu einem normalen Kommunikationsvorgang - nicht als Verantwortlichkeit nennen.

K ar te n- R ückse ite n:

Definitionen am besten vor dem Spiel ausfüllen, später überprüfen. Attribute können während des Spiels oder später ausgefüllt werden.

(7)

Prof. U. Aßmann, Softwaretechnologie13

K lassen finden: B ei spi el T er m inver w al tung

Problembeschreibung:

E s ist e in T er m in ve rw al tu ng ssyst em fü r A rb ei tsg ru pp e n zu en tw icke ln . D as S yst em so ll a lle g ep la n te n T ea m be sp re ch un g e n (z. B . P ro je kt be sp re ch un ge n ) sp e ich e rn u nd d ie R ese rvi er un g vo n B esp re ch un gsr äu m en u nt er st üt ze n. D as S yst em so ll au to m at is ch K ol lisi on en m it be re its b eka nn te n Te rm in e n ve rm ei d en . D esh al b s ol l a uch d ie E in tr ag un g p ri va te r Te rm in e m ög lich se in .

Prof. U. Aßmann, Softwaretechnologie14

Teambesprechung Titel wissen

Datum wissen Teilnehmer wissen Teilnehmer einladen

Teammitglied Raum festlegenBesprechungsraum

Oberklassen:Termin Unterklassen:

B ei spi el ei ner C R C -K ar te

Rückseite:

Teambesprechung Ein Objekt 'Teambesprechung' beschreibt genau einen Termin, an dem mehrere Teil- nehmer der Gruppe teilnehmen sollen. Titel Datum

(8)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik15

3.2. C R C in Gr uppen

Prof. U. Aßmann, Softwaretechnologie

C R C -K ar te n- M et ho de : V or ge he nsw ei se in G ruppe

D as K er ns tü ck d er M e th od e si n d in te nsi ve G ru pp e ns itzu ng en .

V or au sse tzu ng : in fo rm el le A nf or de ru ng sb esch re ib un g (id ea l: au sf üh rli ch e A nf or de ru ng ssp ezi fika tio n )

Kandidaten für Klassen (Karten) identifizieren Karten auf einem Tisch oder Whiteboard plazieren. Kollaborierende Karten nah zueinander plazieren, andere voneinander entfernen. Anordnung ständig ändern, je mehr Zusammenarbeiten zustandekommen “Heisse” Karten in die Mitte des Tisches Typische Szenarien identifizieren und durchspielen (dabei: Karten schrittweise ausfüllen) Iteration: Verbesserungen, mehrfache Wiederholung Ungewöhnliche Szenarien durchspielen Gesetz 17 (PP): Programmieren Sie nahe am Problem (an der Sprache der Anwender)

(9)

Prof. U. Aßmann, Softwaretechnologie17

G ruppenspi el

Id ea le G ru pp en gr öße : 5 bi s 6 akt ive T ei ln eh m er In ne n

Te iln eh m er (I nn en ):

Fachspezialisten, ev. Kunden Systemanalytiker Systementwickler Manager (?) Moderator, 'Facilitator'

G ru pp en dyn am ik:

CRC-Karten-Sitzungen können Teamgeist stärken Vorhandene Gruppen-Probleme können aufbrechen Kein Mittel zur Klärung und Lösung von Problemen im Team ! Gesetz 52 (PP): Arbeiten Sie mit Anwendern zusammen, damit Sie denken wie ein Anwender Prof. U. Aßmann, Softwaretechnologie18

V or si cht : K lassen des K ont ext s

O ft w er de n V er an tw or tli ch ke ite n fä lsch lich e rw e is e ei n er K la sse zu ge or dn et , d ie e ig en tli ch e in e K la sse im

Kontext

ist

A ch te a uf O rt sb es tim m un ge n u nd U rh eb er sch a fte n

“the car recharges the batteryvia the dynamo” Car recharge()Dynamo Battery Dynamo recharge()Battery

Car ist eine Klasse im Kontext von Dynamo

(10)

Prof. U. Aßmann, Softwaretechnologie

V on C R C -K ar ten zum U M L- K lassenm odel l ( 1) K la ss enna me ( cl as s) V era nt w ort - li chk ei te n (re spons ibi li- ti es )

M it he lf er (c ol la bora - tors )

(Vorderseite)

O be r- und U nt erk la ss en K la ss enna me M et hode n

A tt ri but e

D ef ini ti on A tt ri but e (a tt ri but es )

(Rückseite)

K la ss enna me ( cl as s)

Prof. U. Aßmann, Softwaretechnologie

V on C R C -K ar ten zum U M L- K lassenm odel l ( 2) K la ss enna me ( cl as s) V era nt w ort - li chk ei te n (re spons ibi li- ti es )

M it he lf er (c ol la bora - tors )

(Vorderseite)

O be r- und U nt erk la ss en O be rk la ss e H el fe rk la ss e K la ss enna me O be rk la ss e H el fe rk la ss e

Vererbung Assoziation

(11)

Prof. U. Aßmann, Softwaretechnologie2121

Parcel Service Responsible for

Cooperating with Accept paket Deliver paketComputer Shop Student

Computer Shop Responsible for

Cooperating with Accept Order Deliver paketStudent Parcel Service

Student Responsible for

Cooperating with order Accept paketComputer Shop Parcel Service Prof. U. Aßmann, Softwaretechnologie22

E in er st es K lassendi agr am m

Computer Shop acceptOrder() deliverPaket()

Student Parcel Service acceptPaket() deliverPaket()

order() acceptPaket()

(12)

Prof. U. Aßmann, Softwaretechnologie

V er fei ner ung: P aket e al s O bj ekt e

Paket

Student Parcel Service accept() deliver()

order() accept() Computer Shop acceptOrder() deliver() Prof. U. Aßmann, Softwaretechnologie

V er fei ne run g: A usf akt or isi er en vo n G em ei nsam kei ten

Paket

Student Parcel Service deliver()

order() Computer Shop acceptOrder()

PaketReceiver accept()

PaketSender deliver ()

(13)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik25

3.2 C R R C -Analy se

Prof. U. Aßmann, Softwaretechnologie26

C lass- R ol e R esponsi bi lit y C ar ds (C R R C )

U nt er sch ei de n at ür lich e un d R ol le n- Typ en

K er nkl asse n un d U nt er ob je kt -K la sse n

W e lc he s O bj e kt i st in w el ch en R ol le n r w el che A uf ga be n zus ndi g? W e lc h es O b je kt i st i n w el ch en R ol le n r w el che A uf ga be n zus ndi g?

Rollen-Klassenname (role class) Verantwort- lichkeitenMithelfer

Ober- und Unter-Rollenklassen

Natürlicher Klassenname (natural class) Ober- und Unter-Klassen

Natürlicher Klassenname (natural class) Verantwort- lichkeiten

Mithelfer- Unterobjekte

(14)

Prof. U. Aßmann, Softwaretechnologie

C R R C -K ar ten- M et hode: V or gehensw ei se

W ich tig : K er ne vo n U nt er ob je kt en d ur ch D el e g at io n tr en n e n

Kandidaten für Klassen identifizieren Szenarien durchspielen, Klassen verfeinern Kernklassen von Rollen trennen Verbesserungen anbringen Prof. U. Aßmann, Softwaretechnologie

W as haben w ir gel er nt ?

C R C -K a rt en d ie n en a ls M itt el , m it G e da nk en st ur m ( br ai n st or m in g) d ie K la sse n un d ih re Zu st än di gke ite n he ra u szu fin de n.

A ch te a uf d en ko rr e kt e n K on te xt v on K la ss e n

G ru pp e nsp ie le d ie ne n zu m it er a tive n, r ef le kt iv en Fi nd en vo n K la ss en un d Z ust ä nd ig ke ite n

C R R C -K ar te n he lfe n K er ne vo n R ol le n zu tr en n en

(15)

Prof. U. Aßmann, Softwaretechnologie29

The E nd

Referenzen

ÄHNLICHE DOKUMENTE

• Virtuelle Funktionen (und nur diese!) heißen auch Methoden. • Klassen mit virtuellen Funktion heißen auch

• L¨osung: const member functions d¨ urfen Variablen nicht ¨andern class str

Dieses Aufgabenblatt muss zusammen mit der Arbeit abgegeben werden. Ergebnisse ohne Begründung werden nicht bewertet. Jede Aufgabe muss auf ein separates Blatt gelöst

Das Strassennetz auf der Insel besteht aus einer Ringstrasse, welche ganz ohne Steigung die Insel in der Höhe z = 1.5 umrundet, und aus einer weiteren Strasse, die den

Dieses  Aufgabenblatt  muss  zusammen  mit  der  Arbeit  abgegeben  werden... Dieses  Aufgabenblatt  muss  zusammen  mit  der  Arbeit  abgegeben

Ich möchte Sie im Namen der Schulgemeinschaft heute bereits um ihre Unterstützung bitten: Helfen Sie mit, dass auch in diesem Jahr unsere nicht ganz alltägliche Aktion gelingt

• Eine Klassendeklaration kann auch direkt diverse abgeleitete Operationen implementieren, wie z.B. eine Gleichheit, falls es nur ein ≤ gibt... Insofern könnte man damit generisch

 innere Klasse: Die Klasse wird innerhalb einer anderen Klasse definiert..!. (Beachte: der untere, leere Teil wird später