[CW hjemmeside]

Objekter splitter problemene

90-årenes systemutvikling er objektorientert


-- Med objektorienterte teknikker er det mulig å dele store problemer inn i mindre og håndterlige problemer. Selv om tanke- og designarbeidet tar noe lengre tid enn ved tradisjonell systemutvikling, vil den totale systemutviklingsprosessen bli kortere. Og særlig i vedlikeholdsfasen blir gevinsten stor.

MARGRETE ØSTERUD

Arne Maus, som er førsteamanuensis i informatikk ved Universitetet i Oslo, mener at objektorienterte teknikker vil gi oss svaret på hvordan vi skal organisere datasystemene i 90-årene. Strukturert programmering og andre teknikker fra 70- og 80-tallet, er ikke lenger tilstrekkelig for å utvikle store og komplekse systemer.

-- Objektorientering er en ny måte å se verden på, en måte som gir bedre struktur på systemene og enklere systemutvikling. Det er fornuftig å bruke objektorienterte teknikker innen alle grener av systemutviklingen, kanskje bare med unntak for de aller minste applikasjonene, sier Maus.

Gammelt blir nytt

Objektorientering gjør verden til en samling av objekter der informasjon og operasjoner er tett kombinert. Et objekt har en tilstand, en identitet og et sett av egenskaper. "Personbil" er et eksempel på et konkret objekt. Konkrete objekter settes inn i en hierarkisk struktur, der egenskaper kan abstraheres oppover eller arves nedover. Poenget er å finne minste felles multiplum for et sett av objekter, og samle disse egenskapene i en overordnet objektklasse. Det generelle objektet "Kjøretøy" er en slik klasse, og den sammenfatter egenskaper som er felles for konkrete objekter, slik som "Personbil" og "Traktor".

Begrepet objektorientering har vært allment kjent i systemutviklingskretser i et tiår allerede, og tankegangen har eksistert helt siden det norske Simula-språket ble utviklet for snart 30 år siden. Burde ikke da objektorientering ha blitt hverdagskost for lengst, hvis dette er løsningen for moderne systemutvikling?

-- Det var faktisk ikke før på 80-tallet at man ble klar over at objektorientering er velegnet for all systemutvikling og i alle faser av prosessen. Inntil da var objektorientering stort sett forbeholdt de som drev med simulering, forklarer Maus.

Han er ikke overrasket over at systemutviklingsorganisasjoner bruker lang tid på ta i bruk objektorienterte teknikker. Objektorientering representerer en helt ny tankegang og en lang læreprosess, og i tillegg må man tåle lav produktivitet mens læringen pågår.

-- De som hopper for raskt på objektorientering, gjennomfører ofte bare en gammel tankegang i ny drakt. Min erfaring er at systemutviklere med bakgrunn fra administrativ databehandling klarer overgangen best. De er vant til å tenke data framfor prosess, og datamodellering minner mye om modellen i objektorientering, sier Maus.

Verktøyene kommer

Maus tror slett ikke at objektorientering er noen motebølge, slik som enkelte andre trender innen systemutviklingsfaget. Han ser heller ingen andre teknikker som kan konkurrere med de objektorienterte. Unntaket er databasesiden. Objektorienterte databaser er spesielt egnet for å lagre tekniske data, mens de ellers får hard konkurranse fra relasjonsdatabasene.

-- Alle programmeringsspråkene -- inkludert Cobol, Ada og Fortran -- har eller er i ferd med å ta opp objektorienterte mekanismer. Og det objektorienterte C++ er det programmeringsspråket som har vunnet mest fram i 90-årene, påpeker Maus.

På Software'95 i februar holder han kurs i objektorientert systemutvikling. Hensikten med kurset er å gi en oversikt og sette objektorienterte teknikker i sammenheng. Det er lagt spesielt vekt på utvikling av Windows- og C++-baserte applikasjoner og klient/tjener-løsninger, og de praktiske erfaringene henter Maus blant annet fra utviklingen av et større, objektbasert medisinsk informasjonssystem (NORA) ved SIFF.

OVERALT: Objektorienterte teknikker er velegnet overalt i systemutviklingen, mener førsteamanuensis Arne Maus ved Institutt for informatikk ved Universitet i Oslo. Han holder kurs i objektorientert systemutvikling på Software'95 i februar. (Arkivfoto)


Software '95
Objektorientert systemutvikling

Objektorientering gjør verden til en samling av objekter der informasjon og operasjoner er tett kombinert. Objekter med felles egenskaper samles i overordnede objektklasser. Hensikten er å effektivisere både det som er felles og det som er spesielt.

Relatert seminar

"Objektorientert systemutvikling", onsdag 8. februar kl. 09:00 -- 16:00.

Objekter for tilpasningsevne


Objektorientering handler om å samle objekter med felles egenskaper for å kunne effektivisere både det som er felles og det som er spesielt.

AHLERT HYSING

Objektorientering forsøker å finne minste felles multiplum for objekter. Ordre er for eksempel et teoretisk objekt. Ordre kan bestå av Salgsordre, Innkjøpsordre og Tilbudsordre. Disse er konkrete objekter som alle tilhører det teoretiske objektet som betegnes klasse.

En klasse tildeles egenskaper som medlemmene i klassen benytter. Det fine er at alle generelle regler kan tildeles klassen, mens spesialregler tildeles det konkrete objektet.

Alle objekter arver de generelle egenskapene som tilhører klassen.

Linjebeløp utregnes som antall multiplisert med pris. Denne reglen tilknyttes ordre. Ved å aktivere salgsordre arver den alle egenskapene til ordre med unntak av de som er overstyrt.

På salgsordren kan utregningen av linjebeløp overstyres, hvis det er spesielle forhold som tilsier det, for eksempel en avansert rabattstruktur avhengig av kunden.

Endringer som gjelder alle objektene, tilpasses klassen. Dermed slipper utviklerne å finne frem til alle steder slike regler er benyttet. Skulle likevel ikke alle benytte den nye generelle reglen, er det enklere å overstyre de stedene hvor reglen ikke gjelder.

Også andre egenskaper er enklere ved objektorientering. Generelle funksjoner som utskrift kan gjøres mye enklere. Skrivefunksjonen knyttes til objektet. Objektene trenger ikke å tilhøre samme klasse.

Eksempel på ulike objekter kan være et dokument, data i et kartotek, eller koden til et program. Ved å aktivere objektet og angi funksjonen print, vil en av tre helt forskjellige utskriftsprogrammer starte.

Denne muligheten som tillater en overordnet funksjon som for eksempel utskrift, å virke på forskjellige måter, betegnes polymorfisme og finnes ikke i vanlig programmering.


[Image map not available]
Artikkel automatisk generert, 7/2-95 cw@oslonett.no