delavnica z uporabo kartic crc najbolj pomemben vidik tehnike kartic crc niso same kartice ampak kreiranje kartic v sklopu delavnic skupina ljudi odgovornih za modeliranje in resevanje problemov se zbere v sobi ter uporablja kartice v nadaljevanju bomo opisali podrobnejse poglede na proces uporabe kartic crc osredotočili se bomo na uporabo kartic crc od analize do načrtovanja na primeru ki ga bomo obravnavali v nadaljevanju bomo poudarili predvsem modeliranje problema ne pa toliko načrtovanja resitve priprava delavnice izbira skupine ključna aktivnost pred samo izvedbo delavnice kartic crc je izbira skupine ki bo sodelovala na projektu le ta naj bi bila pazljivo izbrana karakteristike skupine ki bistveno vplivajo na uspeh delavnic lahko razdelimo v tri kategorije velikost skupine profil udelezencev in dinamičnost skupine velikost skupine optimalna velikost za delavnico modeliranja s pomočjo kartic crc naj bi bila pet ali sest udelezencev večje stevilo udelezencev hitro privede do nasprotujočih misljenj in pogledov Člani velike skupine so nagnjeni vsak k svoji resitvi nerazumevanje narasča in zelo tezko dosezejo soglasje v skupini petih ali sestih ljudi lahko vsak na svoj način pripomore k boljsemu iskanju resitev pri načrtovanju resitve lahko sodeluje manj ljudi vendar sta za dobro in uspesno načrtovanje potrebna najmanj dva udelezenca na projektu imamo lahko razen jedra skupine vključene se osebe ki se zelijo naučiti objektnega razmisljanja ali zelijo spoznati in razumeti problem ki ga modeliramo profil udelezencev v skupini naj bodo ljudje ki imajo znanje o obravnavanem področju in osebe ki imajo izkusnje z objektnim pristopom ljudje ki so odgovorni za model v delovnem sistemu morajo biti tudi udelezeni v delavnicah kartic crc od samega začetka tudi njihovo zgodnje sodelovanje in vpliv na načrtovanje lahko pripomore k uspesnejsi izgradnji modela bolj ko delavnice prehajajo od modeliranja problema k načrtovanju resitve se lahko odstotek ekspertov področja manjsa ampak vsaj en ekspert mora biti udelezen tudi pri načrtovanju med udelezenci delavnic torej zasledimo eksperte področja v začetnih delavnicah je prispevek eksperta področja zelo pomemben in bistven ekspert razume kaj naj sistem dela in kako naj bi bil realiziran prav tako pomaga pri izgradnji scenarijev in izbiri razredov v skupini za modeliranje naj bi bil prisoten vsaj en ekspert oziroma strokovnjak obravnavanega področja vzpodbujevalca objektne tehnologije strokovno znanje o objektnem pristopu je zelo pomemben faktor uspeha delavnice to znanje lahko posreduje tudi član skupine oo ekspert lahko pomaga pri analizi kartic crc in načrtovanju procesa tako da pomaga pri vodenju delavnice in pomaga pri izbiri ustreznih imen razredov da bi bolje razumeli model je potrebno dobro izbrati imena razredov vodstvo projekta tudi vodstvo je udelezeno na delavnicah in soodgovorno za posledice neuspeha delavnic da bi vodstvo razumelo korake procesa mora imeti dovolj znanja o karticah crc in oo razvoju programske opreme vodstvo lahko ustavi in prekine proces uvajanje vodstva v proces lahko izvajamo na posebnih izobrazevalnih delavnicah bistvo teh delavnic je usposabljanje vodstva za vodenje projekta razumevanje in predstavitev oblikovanja in uporabe kartic crc daje vodstvu občutek glede poteka hkrati pa se vodstvo seznani z objektnim pristopom k modeliranju in izgradnji resitve dinamiČnost skupine stabilnost skupine ali dinamičnost skupine je zelo pomemben faktor ki vpliva na neuspeh delavnice kartic crc za delavnice izberemo skupino petih ali sestih ljudi ki ima skupne cilje in poglede delajo skupinsko spostujejo drug drugega imajo določen nivo znanja in noben od članov ne prevladuje Člani projektne skupine ki se z večino ne strinjajo in slabo komunicirajo skodujejo delavnicam in projektu zato so te delavnice obsojene na propad na začetku delavnice mora v skupini vladati prepričanje v uspeh in učinkovito delovanje najbolj pomemben vhod v proces modeliranja je dokument zahtev vsebovati mora opis problema s cilji za aplikacijo opis sistemskih operacij za sistem in mnozico omejitev lahko je obsirnejsi vendar je za začetek potrebno imeti jedro teh informacij na projektu na katerem teh informacij se nimamo se ne moremo začeti z izvajanjem delavnic vsakdo ki bo vključen v delavnice mora prebrati ta dokument se bolj pomembno pa je da je skupina seznanjena z uporabo tehnike kartic crc pri samem izvajanju delavnice kartic crc je nujno da smo naenkrat osredotočeni na manjsi del sistema problema ni enostavno deliti na podprobleme vendar je visokonivojska delitev področja pomembna pri vsakem oo projektu zato sistem razdelimo v več podsistemov najboljse je da nato izvajamo oo analizo in načrtovanje za en podsistem naenkrat podsistem lahko identificiramo na osnovi opisa zahtev Če ne začnemo z modeliranjem sistema kot celote potek delavnice pri branju dokumenta zahtev odkrijemo razrede ki jih spremenimo v kartice in jim dodamo odgovornosti in sodelavce vsaka oseba ki sodeluje na delavnici je odgovorna za vzdrzevanje in razlago ene ali večih kartic pri izvrsevanju scenarijev udelezenci predlagajo nove razrede odgovornosti sodelavce atribute in relacije nadrazred podrazred na sliki je prikazan potek delavnice vključno s pripravami poteku delavnice pravimo tudi osnovni proces koraki se lahko tudi ponavljajo npr ko spremenimo dodamo ali brisemo razred odgovornost sodelavce in relacije moramo ponovno izvesti vse scenarije kajti ugotoviti moramo ali je dana sprememba vplivala na druge podatke zato se koraki poteka delavnice običajno tudi ponavljajo slika potek delavnice opis problema potek delavnice bomo prikazali na primeru knjiznice udelezenci modelirajo knjiznični sistem za kontrolo izposoje vračanja in iskanja knjig zahteve glede sistema so naslednje aplikacija naj vsebuje podporo operacijam v tehnični knjiznici podjetja vsebuje iskanje in izposojanje knjizničnega materiala knjig vhs kaset in tehničnih časopisov uporabnik naj bi na začetku vtipkal id usluzbenca vsakemu zaposlenemu v podjetju lahko izposodimo največ pet predmetov vsak tip predmeta knjiznice je grupiran čas izposoje v različna časovna obdobja izposoje knjige tedne revije tedna kasete teden Če izposojevalec v tem času predmeta ne vrne se izračuna zamudnina glede na tip gradiva knjiga sit dan časopis sit dan kaseta sit dan izberemo vsaj enega strokovnjaka s področja knjizničarstva recimo da imamo dva prvi bo napisal sistemske zahteve drugi pa je knjizničar in dobro pozna delo v knjiznici oba vključimo v izgradnjo aplikacije prisotni so se vodstvo projekta analitik dva načrtovalca in implementatorja delavnico vodi oseba ki je ekspert na področju oo in se spozna tudi na delo v knjiznici iz zahtev ni razviden noben podsistem osredotočimo se na vsakodnevne operacije kot so nadzor izposoje vrnitve in iskanja knjig časopisov ter kaset identificiranje razredov prvi korak objektnega modeliranja in prvi korak v procesu oblikovanja kartic crc je iskanje razredov preden bomo kreirali kaksno kartico bomo izpisali razrede ki jih predlaga celotna skupina razrede lahko odkrivamo in kreiramo kot del izvajanja scenarijev različne skupine lahko uporabljajo različne metode za iskanje razredov npr viharjenje misli brainstorming ali kaksno drugo metodo začnemo z viharjenjem misli kjer izpisemo vse razrede ki nas asocirajo na knjiznico in predstavljajo samostalnik tako določimo večino razredov ostale pa določimo pri izvajanju scenarijev proces identifikacije razredov poteka v naslednjem vrstnem redu viharjenje misli brainstorming viharjenje misli se izvaja tako da ena oseba stoji in zapisuje vsa imena razredov ki jih predlagajo udelezenci v tej fazi ni razprave o razredih v nasem primeru npr zapisemo naslednje predloge razredov knjiznica knjizničar uporabnik artikel material predmet datum plačila rok vrnitve gradivo knjiga Časopis in video izbira ustreznih razredov v tej fazi lahko spremenimo imena razredov ali pa izberemo najbolj pomembne razrede oblikujemo daljsi opis razreda ki ga napisemo na hrbtno stran kartice npr razred knjiga mnozica objektov ki predstavljajo knjige ki so lahko izposojene iz knjiznice za vsak razred podamo vprasanja in komentarje ter tako razrede spreminjamo in dopolnjujemo s pomočjo vprasanj in komentarjev naredimo izbiro ustreznih razredov iz mnozice razredov črtamo naslednje razrede knjiznica z razredom knjizničar je podvojen artikel ne potrebujemo ker je ta razred ze vključen v razredu gradivo material vključen v razredih gradivo knjiga Časopis in video predmet vključen v gradivu uporabnik zaradi podvojenosti z razredom izposojevalec datum plačila in rok vrnitve pa vključimo v razred gradivo ter dodamo razred datum za predstavitev tekočega datuma tako imamo naslednje razrede knjizničar gradivo knjiga Časopis video datum in izposojevalec dodeljevanje kartic vsak razred za katerega imamo kartico crc dodelimo tistemu ki ga je predlagal dodeljevanje kartic uporabnikom bazira na tem da dobijo kartico tisti ki največ vedo o tej abstrakciji ali tisti ki bodo odgovorni za določeno abstrakcijo skozi načrtovanje in razvoj sistema za nas primer uporabimo kartice crc in na zadnjo stran kartice napisemo komentarje za vsak razred slika prikazuje hrbtne strani vseh kartic slika razlaga razredov kot je napisana na hrbtni strani kartic crc nadrazredi in podrazredi v delavnici se lahko pojavijo nekatere nejasnosti glede relacij nadrazred podrazred kdaj jih oblikovati brisati in spreminjati v začetni fazi razvoja dodamo nadrazrede in podrazrede samo če so očitni in vemo da se ne bodo spremenili npr pri modeliranju knjiznične aplikacije je jasno da je knjiga gradivo tako lahko ze v tej fazi kreiramo nadrazred in podrazred pri nejasnostih glede tega ali obstajajo nadrazredi in podrazredi pa je priporočljivo da prestavimo določanje nadrazredov in podrazredov na kasnejso fazo razvoja Če imata dva razreda podobne lastnosti ki jih lahko zdruzimo naredimo nadrazred sedaj ima ta nadrazred dva podrazreda podrazredi pa skupni nadrazred v primeru knjiznica se ni razvidno ali obstajajo relacije nadrazred podrazred zato jih bomo določevali kasneje odgovornosti zatem ko določimo in izberemo mnozico razredov ter jo razdelimo vsem udelezencem dodamo se odgovornosti in funkcije aplikacije predno izvrsimo kaksen scenarij izpisemo enostavne odgovornosti ki jih razberemo iz zahtev ali odgovornosti ki jih razberemo iz imena razreda npr očitno je da bo knjizničar odgovoren za nadzor izposoje in vrnitve gradiva zato lahko razredu knjizničar dodamo odgovornosti preveri izposojo in preveri vrnitev prednost ze določenih odgovornosti je v tem da imajo te obveznosti svoje mesto na kartici mozno pa je tudi da kartice vsebujejo odgovornosti ki niso potrebne za resevanje problema najbolje je da začnemo z minimalno mnozico odgovornosti ker je sprehajanje skozi model in brisanje odgovornosti tezje kot pa dodajanje odgovornosti atributi atribute razredov ponavadi določimo takrat ko poznamo odgovornosti ker sele takrat vemo katere atribute bomo potrebovali lahko pa jih določimo tudi takrat ko beremo zahteve v opisu zahtev običajno atribut predstavlja samostalnik ki ni razred ampak značilnost razreda atribute določimo z namenom podpore odgovornostim in predstavljajo odločitve o tem kako so odgovornosti shranjene zaradi tega je atribute primerneje določiti v načrtovanju in implementaciji najbolje je da najprej izdelamo scenarije in sele nato določimo atribute scenariji osrednji del srce delavnice kartic crc je sprehod skozi scenarij ki predstavlja osnovo za spreminjanje in dodajanje razredov odgovornosti sodelavcev relacij nadrazred podrazred in atributov scenariji podrobno predstavljajo funkcije sistema funkcija ne predstavlja proceduralni blok ampak je analogna sistemskim zahtevam opisujejo kaj se dogaja v sistemu z visokonivojske uporabniske točke gledanja za vsako funkcijo lahko imamo mnozico scenarijev ki tekom izvajanja scenarija sluzi za odkrivanje novih informacij glede na različne parametre in dogodke npr funkcije aplikacije knjiznica so nadzor izposoje gradiva vrnitev gradiva in iskanje gradiva preden bomo imeli sistemski model končan se bomo sprehodili skozi veliko scenarijev scenariji preiskujejo primere kaj se zgodi ko in prikazujejo pričakovano uporabo sistema pri kompleksnih scenarijih je priporočljiva delitev na manjse scenarije znotraj tega kompleksnega scenarija da se osredotočimo na moznosti ki so manj zapletene za belezenje scenarijev naredimo seznam scenarijev ki ga uporabljamo tudi v kasnejsih fazah projekta simulacija scenarija naj bi bila dinamična ljudje ki so lastniki določenih kartic lahko drzijo kartico v zraku in postanejo objekt mnozica kartic na tabli prikaze statično sliko razredov objektov znotraj sistema in relacij med razredi pri izvajanju scenarija so kartice dvignjene in simulirajo dinamično obnasanje sistema kjer so sporočila poslana do dejanskih objektov ki izvrsujejo korake scenarijev kartica je razred ko je na mizi in objekt ko je v zraku primer pri modeliranju aplikacije knjiznica imamo naslednje kartice knjizničar gradivo knjiga Časopis video datum in izposojevalec karticam nismo dodali nobene odgovornosti ali atributov najprej izvrsimo en scenarij v nasem primeru za kartico knjizničar ter določimo odgovornosti in jih zapisemo na kartico pri opisu oziroma določitvi sodelavcev pa sledi posvetovanje o tem kdo sodeluje s kartico knjiga slika prikazuje primer scenarija za nadzor izposoje gradiva iz knjiznice slika primer scenarija glede na nadzor izposoje gradiva iz knjiznice na vsakem mestu lahko scenarij prekinemo in razpravljamo o morebitnih vprasanjih in predlogih bistvo sodelavcev ki so napisani na karticah crc je da imajo dvostransko relacijo iz sodelavčeve kartice do kartice kjer je sodelovala kartica in obratno pri izvajanju scenarijev lahko pride do napake kar lahko vodi do zavrnitve modela ali pa tudi kartice mozen način preverjanja in dopolnitve kartic je tudi da izvrsujemo mini scenarije ki predstavljajo majhne dele scenarijev slika prikazuje identificirane odgovornosti in sodelavce za vsako kartico po izvajanju scenarija izposoje slika kartice aplikacije knjiznica po prvem izvrsenem scenariju doloČitev nadrazredov da bi odkrili nadrazrede se odločimo za izvrsevanje scenarija ki je soroden prvemu scenariju slika primer scenarija za odkrivanje nadrazreda podaja slika slika primer scenarija za odkrivanje nadrazreda struktura sorodnih scenarijev je skoraj identična in mnoge odgovornosti ze obstajajo razlika je le pri tipu gradiva to nas privede do tega da dodamo karticam knjiga Časopis in video nadrazred odgovornosti pa prestavimo v nadrazred vse spremembe vpisemo na kartice in na kartice za podrazrede vpisemo odgovornosti za vsak podrazred svojo odgovornost nadrazred vsebuje vse svoje odgovornosti in odgovornosti prejsnjih razredov ki so sedaj podrazredi slika prikazuje kartice za novo hierarhijo gradiva slika hierarhija gradiva v primeru dodatnih vprasanj in komentarjev scenarije ponovno izvedemo izjemni scenariji na začetku ponavadi izvajamo lazje scenarije sele ko obstaja delujoči model sistema lahko izvajamo izjemne scenarije scenariji se imenujejo izjemni ker opisujejo neobičajne situacije ter so tudi zato tezji in kompleksnejsi primer izjemnega scenarija kaj se zgodi če izposojevalec vrne gradivo ki mu je ze potekel rok vrnitve drugi primer pa nam prikazuje slika slika primer izjemnega scenarija med izvajanjem posameznega scenarija lahko razpravljamo o morebitnih spremembah in vprasanjih ki se pojavijo tako lahko izvajamo in spreminjamo vse odgovornosti kartic ter izvajamo izjemne scenarije v nasem primeru so na sliki vidne spremembe označene posevno po izvajanju dodatnih scenarijev slika aplikacija knjiznica po izvedenih izjemnih scenarijih izvajanje izjemnih scenarijev za nas primer ni povzročilo večjih tezav ker so odgovornosti ze na pravem mestu in vemo kaj katera odgovornost predstavlja včasih povzroči uporaba izjemnih scenarijev velike spremembe v modelu odkrivanje novih razredov ko izvajamo scenarije skupina pogosto ugotovi da noben od danih razredov ne ustreza določeni odgovornosti to pogojuje nastanek novega razreda primer scenarija kjer je potrebno narediti nov razred slika slika primer scenarija kjer je potrebno narediti nov razred ni razreda ki bi lahko pregledal vse knjige zato vpeljemo nov razred ki bo prevzel to odgovornost uvedemo razred zbirka zopet izvedemo scenarij z vključenim novim razredom in ugotovimo da sedaj lahko pregledamo vse knjige pri izvajanju scenarijev lahko posvetimo pozornost tudi odkrivanju atributov pri dodajanju odgovornosti nas lahko odgovornost direktno asocira na atribut ki ga predlagamo in zapisemo ga na zadnjo stran kartice crc sledi seznam atributov za kartice gradivo knjiga Časopis in video slika prikazuje hrbtno stran teh kartic z atributi slika kartice crc z nekaterimi atributi ki so napisani na hrbtni strani kartice grupiranje kartic s pomočjo kartic crc zagotovimo vizualno predstavitev modela hierarhija razredov kot primer gradivo in njegovi podrazredi so veliko v uporabi in so lahko postavljeni zelo blizu drug drugega zato je grupiranje kartic tudi dejavnik ki vpliva na boljso preglednost projekta drugi razredi ki redko sodelujejo so lahko blizu da poudarimo pomen sodelovanja med seboj primer v aplikaciji knjiznica kartico datum postavimo zelo blizu hierarhiji gradivo ker je objekt tipa datum atribut gradiva udelezenci delavnic lahko zamenjajo kartice in prostor na mizi razsiritve osnovnega procesa opisan proces iskanje razredov izvrsevanje scenarijev in določanje odgovornosti ter sodelavcev je samo osnovno ogrodje poteka delavnice kartic crc v delavnico lahko vključimo tudi druge aktivnosti ki pomagajo k pravilni in lazji izgradnji modela to pa so risanje sodelovanja grupiranje kartic nam daje fizični občutek medsebojnega delovanja razredov ampak specifično sodelovanje je lahko določeno samo z gledanjem v stolpec sodelavcev za vsako kartico dobra pomoč pri tem je predstavitev kartic na tabli kjer s povezavami ponazorimo sodelovanje med karticami predstavitev sodelovanja na tabli nas vodi tudi do boljsega in kvalitetnejsega razmisljanja o povezavah zato lahko kmalu ugotovimo slabosti določene povezave na sliki je prikazan primer iz aplikacije knjiznica slika kartice knjiznice na tabli z magneti seznam scenarijev za osnovni proces kartic crc je pomemben dodatek tudi shranjevanje scenarijev v taksnem vrstnem redu kot so bili scenariji predlagani in izvrseni skupina uporablja seznam skozi vse korake projekta scenarije lahko ponovno izvajamo ko načrtujemo ali ko kaj spreminjamo seznam tudi uporabljamo za ilustracijo modela drugim zelo pomembno je tudi da je seznam scenarijev del dokumentacije načrtovanja kartic crc glej poglavje primer knjiznice slika nam prikazuje primer kartic crc za aplikacijo knjiznica na sliki so predstavljene samo prednje strani kartic slika kartice crc za aplikacijo knjiznica napotki za uspesno uporabo kartic crc za učinkovito uporabo kartic crc moramo upostevati nekaj priporočil in navodil da kar najbolje izkoristimo tehniko kartic crc ta priporočila so pomembno je da ima tisti ki izvaja odgovornosti odprto ustrezno kartico pravilno grupiranje kartic pri dolgih scenarijih je priporočljivo da kreiramo več manjsih scenarijev iz enega naredimo več enostavnih scenarijev zraven sodelavcev je priporočeno pisati tudi odgovornost sodelavca ki vpliva na izvajanje odgovornosti imena razredov in odgovornosti moramo napisati jedrnato vendar razumljivo za vse udelezence mozne nevarnosti delavnica kartic crc je neformalna ne obstaja stroga notacija ki naj bi se je drzali zato jo lahko spreminjamo situaciji kjer lahko povzročimo zaustavitev delavnice sta mrtva točka zaustavitev delavnice povzročita dve mozni poti v nadaljevanju ne vemo za katero bi se odločili ker menimo da sta obe dobri za uspesno realizacijo delavnice Če pridemo do take situacije se odločimo za eno moznost vendar je priporočeno da si zapomnimo ali zapisemo za katero smo se odločili tako da se lahko v primeru če zaidemo vrnemo in nadaljujemo z drugo moznostjo proceduralno razmisljanje potencialna nevarnost na delavnici je lahko ta da se udelezenci ujamejo v zanko proceduralnega razmisljanja simptom ali učinek je v tem da so objekti vidni kot procesi ideja je za mnoge objekte določenega razreda izgubljena razredi so vidni kot samostojni primerki ki vedno obstajajo delavnica ni uspesna če model vsebuje razrede ki imajo samo en primerek v aplikaciji kot primer je knjizničar in zbirka ki sta do sedaj razvita in imata vsak samo en primerek da se izognemo tem nevarnostim je potrebno da zagotovimo da udelezenci začnejo razmisljati o objektih in scenarijih potrebno jih je pripeljati do takega razmisljanja kar je naloga vodje delavnice in spodbujevalca oo razmisljanja