[Forrige artikkel] [Indeks] [Neste artikkel] [CW hjemmeside]

30 år i objektenes verden

Peters Plass

Trygve Reenskaug har tenkt på og arbeidet med objekter i hele sitt voksne liv. Nå har han samlet sine tanker og erfaringer mellom to permer. Boken er årets julegave til alle som liker å tenke systematisk.

nn Objekter kan brukes til mye. Med objekter som byggestener kan vi skape modeller som klargjør sammenhengene. Når vi prøver å forklare en litt komplisert sak, tyr vi fort til objekter. Vi tegner en firkant og skriver leverandør i den, tegner en annen som vi kaller kunde, en tredje mellom de to som heter faktura og en fjerde som representerer innbetaling. Med noen piler viser vi hva som skjer. Vi tegner objekter på transparenter og på baksiden av konvolutter. Objekter kjenner vi straks igjen fordi de finnes i virkeligheten og vi snakker om dem daglig. Ved hjelp av objekter kan vi beskrive sammenhenger, spesifisere systemer, organisere brukerdialoger og skrive programmer. Objekt er et meget kraftig verktøy, umulig å klare seg uten.

nn Betrakter vi objekter fra en litt mer teknologisk synsvinkel, er de en kombinasjon av informasjon og atferd. Informasjonen karakteriserer objektet, atferden forteller hva det kan gjøre. En god analogi er saksbehandlere med hver sin innkurv, utkurv, hver sin notisbok (der de kan notere informasjon som de vil ta vare på) og hver sin ringperm med regler for hvordan arbeidet skal utføres. Saksbehandlerne samarbeider gjennom å sende meldinger. En saksbehandler plukker ut en melding fra sin innkurv og behandler den i henhold til sine retningslinjer. Behandlingen kan bety å sende meldinger til andre saksbehandlere og å notere eller endre informasjon i notisboken. Denne enkle analogien viser tre viktige ting om objekter:

n Akkurat som mennesker har objekter en egen identitet. De kan ligne - men de er aldri nøyaktig lik en annen.

n Objekter er innkapslet som "svarte bokser". De sender og mottar meldinger. Innkurven, utkurven, notisboken og regelpermen er usynlige for de andre objektene.

n Objekter ligner på folk også på en annen måte: En og samme melding kan bety forskjellige ting for ulike objekter. Dette heter polimorfisme.

nn Objektbegrepet er enkelt å forstå, men i praktisk bruk krever det stringente regler. Selv enkle systemer består av så mange objekter at vi må holde tunga rett i munnen når vi beskriver dem. I sin bok "Working with objects" presenterer professor og Taskon-medarbeider Trygve Reenskaug metodikken som han har kommet frem til etter 12 års utvikling: OOram. Forkortelsen står for Object Oriented Role Analysis and Modeling. Hovedforskjellen mellom OOram og vanlige OO-metoder er at klasse er erstattet med begrepet rolle. Poenget med både klasse og rolle er det samme: Vi har bruk for å presentere modeller på et høyt nivå for å kunne peke på de essensielle egenskapene. Da må objektene grupperes. Reenskaug er kommet frem til at det gir en effektiv og lettforståelig presentasjon å gruppere objekter ved å samle dem som "spiller" likeartede roller. Et objekt kan spille flere roller, og ved å vise forskjellene kan sammenhengene belyses bedre.

nn Boken demonstrerer at Reenskaug er en glimrende analytiker. Det er en glede å lese når kunnskapene blir overlevert lag på lag. Han gjennomfører konsekvent det vi alltid snakker om (men sjelden får til): Fortell først hvorfor, deretter hva og til sist hvordan. Boken starter med enkle eksempler og ender opp med noen ganske kompliserte for at vi skal forstå at OO ikke bare er for små, akademiske problemstillinger. Fokus er på objekter som en metode for analyse og design, men også problemstillinger rundt OO-språk som Smalltalk og C++ blir belyst. Reenskaugs hovedærend er effektiv, industriell fremstilling av store datasystemer. Han mener at OO, som en form for elementbygging, er den beste måten å gjøre det på fordi det gjør det mulig å gjenbruke komponenter som vi selv eller andre har utviklet. Objekter er for programvare hva halvlederbrikker er for maskinvare. Det er ingenting i veien for å anvende objekter som andre har utviklet, bare de er korrekte. Hvis vi bygger med objekter som har presise karakteristika og som er gjennomprøvet, kan vi utvikle store, pålitelige systemer i små prosjekter. Dessuten er det mye lettere å bytte ut et element hvis vi har fått en bedre idé. Gjenbruk er først og fremst et spørsmål om organisering, ikke om teknikk. Reenskaug vet hva det er som hindrer gjenbruk og hva vi kan gjøre med disse hindringene.

nn Det er mye å lære her også for dem som arbeider med klassiske verktøy fordi alle som skal beskrive noe som finnes eller konstruere noe nytt har bruk for å tenke i modeller. Våre begrensede hjerner klarer ikke å håndtere mange detaljer ad gangen, så vi er nødt til å konsentrere oppmerksomheten om ett og ett område (i Reenskaugs språkbruk: area of concern) og forenkle virkeligheten for å kunne forstå den. De finere detaljene fyller vi på etterhvert, helt ned til programmering om vi vil. Dette er selvfølgelig ikke lett, heller ikke Reenskaug kan love oss en rosenhage. Noviser innen analyse og konstruksjon vil ha glede av Reenskaugs CRC-kort. Disse er små kort som er ment for grupper som skal gjøre en analyse gjennom å finne objektene og rollene. Istedenfor å sitte rundt en flip-over og snakke om tingene mer eller mindre etter innfallsmetoden, gir CRC en systematisk angrepsmåte.

nn Reenskaug er ikke bare professor, utvikler og programmerer med internasjonalt ry. Han skriver også lett og godt. Ønsk deg boka til jul.

Du treffer meg på hidas@oslonett.no

[Forrige artikkel] [Indeks] [Neste artikkel]


[Image map not available]
Artikkel automatisk generert, 30/11-95, kl. 17.47 cw@oslonett.no