Ohjelmakirjastot ja puurakenteita käyttäviin algoritmeihin perustuva esimerkkikirjasto
Suutarinen, Antti (2011)
Suutarinen, Antti
Turun ammattikorkeakoulu
2011
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201103143071
https://urn.fi/URN:NBN:fi:amk-201103143071
Tiivistelmä
Työssä pyritään kuvaamaan ohjelmakirjaston luomisen perusteita, ja tavoitteena on luoda pienimuotoinen tietopankki niiden koostamisesta. Työssä kuvataan myös kaksi esimerkkiä luokkakirjastoista eli C++ Standard Template Library sekä .NET Framework Class Library. Työhön on sisällytetty myös puurakenteita, joihin esimerkkikirjaston algoritmit perustuvat. Tavoitteena on toteuttaa esimerkkikirjasto Javalla, sisältäen binäärisiä puurakenteita käyttäviä algoritmeja. Ohjelmakirjaston luomista kuvataan ns. vesiputousmallin avulla eli määrittely-, suunnittelu-, toteutus- ja integrointi ja testaus –vaiheilla.
Esimerkkialgoritmien toteutukseen valittiin ohjelmointikieleksi Java, koska se on olio-ohjelmointikieli ja koska se on laajassa käytössä esimerkiksi opetuksessa. Esimerkkikirjasto voitiin rajata Javan package-määreellä. Algoritmeihin otettiin mallia kirjallisuudessa olevista pseudokooditoteutuksista, ja niiden perusteella luotiin Java-versiot.
Tuloksena saatiin tietoa ohjelmakirjastojen uudelleenkäytettävyydestä, niiden hyvistä ominaisuuksista, modulaarisuudesta, komponenteista, puurakenteista, ohjelmakirjaston koostamisesta ja algoritmeista. Esimerkkikirjaston algoritmit on kommentoitu mahdollisimman hyvin, ja niitä voivat työn lukijat muokata halutessaan omaan käyttöönsä.
Ohjelmakirjastot ovat olleet olemassa kauan ja niitä tarvitaan edelleen. Tämän työn perusteella voisi sanoa, että niiden luominen ei ole vaikeaa, riippuen tietenkin rakennettavan kirjaston koosta. Puurakenteita käsittelevien algoritmien ei tarvitse olla kovin monimutkaisia, silti niiden avulla voidaan analysoida ja käsitellä puurakenteisia tietorakenteita melko tehokkaasti. Olio-ohjelmointiominaisuudet auttavat tässäkin esimerkkialgoritmikokoelmassa. Niiden tiedonkapseloimisominaisuudet, periyttämismekanismit sekä luokkien käyttö yleensä tuovat luotettavuutta algoritmien toimintaan.
Esimerkkialgoritmien toteutukseen valittiin ohjelmointikieleksi Java, koska se on olio-ohjelmointikieli ja koska se on laajassa käytössä esimerkiksi opetuksessa. Esimerkkikirjasto voitiin rajata Javan package-määreellä. Algoritmeihin otettiin mallia kirjallisuudessa olevista pseudokooditoteutuksista, ja niiden perusteella luotiin Java-versiot.
Tuloksena saatiin tietoa ohjelmakirjastojen uudelleenkäytettävyydestä, niiden hyvistä ominaisuuksista, modulaarisuudesta, komponenteista, puurakenteista, ohjelmakirjaston koostamisesta ja algoritmeista. Esimerkkikirjaston algoritmit on kommentoitu mahdollisimman hyvin, ja niitä voivat työn lukijat muokata halutessaan omaan käyttöönsä.
Ohjelmakirjastot ovat olleet olemassa kauan ja niitä tarvitaan edelleen. Tämän työn perusteella voisi sanoa, että niiden luominen ei ole vaikeaa, riippuen tietenkin rakennettavan kirjaston koosta. Puurakenteita käsittelevien algoritmien ei tarvitse olla kovin monimutkaisia, silti niiden avulla voidaan analysoida ja käsitellä puurakenteisia tietorakenteita melko tehokkaasti. Olio-ohjelmointiominaisuudet auttavat tässäkin esimerkkialgoritmikokoelmassa. Niiden tiedonkapseloimisominaisuudet, periyttämismekanismit sekä luokkien käyttö yleensä tuovat luotettavuutta algoritmien toimintaan.