HY /
TKTL /
58160-8 Ohjelmoinnin
harjoitustyö /
Sami Nikander
Copyright © 1998
Sami Nikander,
<niksu@iki.fi>.
Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille
opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin, kuten
kaupallisilla tai muilla kursseilla, on kielletty.
7.10.98
Pikaohje oliosuunnitteluun
Työohje Ohjelmoinnin harjoitustyöhön
Yleisiä ohjeita:
-
Älä ala roiskia mallia kasaan hakuammunnalla. Luokkien ja
assosiaatioiden sattumanvarainen piirtely ei tuota tulosta. Opettele
ensin ymmärtämään alla piilevä ongelma. Hyvä malli on ratkaisu
ongelmaan. Tee tarkka analyysi ongelmasta/sovellusalueesta. Muuten et
saa tarkkaa oliomalliakaan.
-
Noudata KISS-periaatetta: Keep It Simple, Stupid.
Yksinkertainen on kaunista, vältä turhia hienosteluja.
-
Varaudu siihen, että joudut romuttamaan useita versioita
suunnitelmistasi, ennen kuin asiat alkavat loksahdella kohdalleen. 5
iteraatiota on vielä aivan normaalia. Nimimuutokset, virheiden
korjaukset, yksityiskohtien lisäykset ym. ovat hyvin tyypillisiä.
-
Pyydä muita ihmisiä kommentoimaan malliasi. Perustele
valintojasi, mutta ole avoin kritiikille.
-
Muista, että ei ole yhtä ainoata oikeata ratkaisua. Älä jumiudu liian
aikaisin yhteen tiettyyn näkökulmaan. Hahmottele eri vaihtoehtoja, etsi
heikkoja kohtia niistä kaikista. Loppujen lopuksi valinta tehdään vain
parhaiten argumentoidun näkemyksen perusteella.
-
Dokumentoi kaaviosi myös sanallisesti. Kaavio kyllä ilmaisee yhdellä
silmäyksellä järjestelmän rakenteen, mutta ei kerro mitään
suunnitteluratkaisujen syistä. Ilman perusteluja kaaviosi vaikuttaa
tuulesta temmatulta, tai ainakaan siitä ei käy ilmi, että olet ajatellut
niitäkin asioita, jotka eivät kuvassa näy.
Kaavion yksityiskohtiin liittyviä ohjeita:
-
Valitse nimet huolellisesti: kuvaavia, helposti tartuttavia,
yksiselitteisiä. Nimet ovat voimakas väline merkitysten luomisessa.
Älä valitse näkökulmaltaan rajoittunutta tai muutenkaan merkitykseltään
värittynyttä nimeä, rajoitat siten vain omaa suunnittelunvapauttasi.
-
Älä piilota suhteita ja riippuvuuksia (assosiaatioita) olioiden
attribuuteiksi (osoittimiksi tms.) Viitteiden ja osoittimien käyttö on
konelähtöistä ajattelua, eikä kuvaa assosiaation todellista luonnetta.
-
Vältä monenvälisiä assosiaatioita (3 tai useamman luokan yhteyttä).
Suurin osa tällaisista voidaan aivan hyvin kuvata useampana
kahdenvälisenä assosiaationa (kvalifikaatioiden tai linkkiattribuuttien
avulla).
-
Älä huolehdi kertautumisen (suhteiden moninkertaisuuden) viilaamisesta
kuntoon liian aikaisessa vaiheessa. Sen ehtii täsmentää myöhemmin -
tällöin jää myös enemmän liikkumavaraa.
-
Kun täsmennät kertautumista: 1-1 -suhteet ovat harvinaisia, 0-1, 0-N ja
1-N ovat tyypillisempiä. Yritä muuttaa M-N -suhteet 0-N- tai 1-N
-tyyppisiksi kvalifikaatioiden avulla, niin niiden käsittely on
helpompaa.
-
Älä piilota assosiaatioiden ominaisuuksia (linkkiattribuutteja)
osapuolien attribuuteiksi.
-
Vältä ylenpalttisen syviä perimishierarkioita. 10-portainen aliluokkien
pyramidi lienee jo liioittelua, mutta 2-3 syntyy melkeinpä ohjelmassa
kuin ohjelmassa.
-
Älä turhaan ota paineita, jos et tunne löytäväsi käyttöä kaikille
mahdollisille OMT-symboleille tai -rakenteille. Kaikkia rakenteita ei
tarvita jokaikiseen ongelmaan, käytä vain niitä työkaluja joita
tarvitset.
<niksu@iki.fi>