Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität 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.111)
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, Softwaretechnologie2Li 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 CRCSoftwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik3
3.1 Analy semethoden: Analy se mit C R C -Kar ten
Informelle Problem- beschreibungObjektorientiertes 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
Methodeha 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
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, Softwaretechnologie6A 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.)
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 tä ndi g? W el che s O bj ek t is t für w el che A uf ga be n zus tä 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ürfenKandidaten für Klassen identifizieren Szenarien durchspielen, Klassen verfeinern Ungewöhliche Szenarien durchspielen Verbesserungen anbringen
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, Softwaretechnologie1010Ident 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
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, SoftwaretechnologieW 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.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, Softwaretechnologie14Teambesprechung 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
Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik15
3.2. C R C in Gr uppen
Prof. U. Aßmann, SoftwaretechnologieC 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)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, Softwaretechnologie18V 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
Kontextist
►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()BatteryCar ist eine Klasse im Kontext von Dynamo
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, SoftwaretechnologieV 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
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()
Prof. U. Aßmann, Softwaretechnologie
V er fei ner ung: P aket e al s O bj ekt e
PaketStudent 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
PaketStudent Parcel Service deliver()
order() Computer Shop acceptOrder()
PaketReceiver accept()
PaketSender deliver ()
Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität Dresden, Fakultät Informatik25
3.2 C R R C -Analy se
Prof. U. Aßmann, Softwaretechnologie26C 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 fü r w el che A uf ga be n zus tä ndi g? W e lc h es O b je kt i st i n w el ch en R ol le n fü r w el che A uf ga be n zus tä ndi g?
Rollen-Klassenname (role class) Verantwort- lichkeitenMithelferOber- und Unter-Rollenklassen
Natürlicher Klassenname (natural class) Ober- und Unter-Klassen
Natürlicher Klassenname (natural class) Verantwort- lichkeiten
Mithelfer- Unterobjekte
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, SoftwaretechnologieW 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
Prof. U. Aßmann, Softwaretechnologie29