Olioperustaiset suunnittelumallit funktionaalisessa ohjelmoinnissa
Tuominen, Janne (2018)
Tuominen, Janne
2018
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2018-12-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201811212673
https://urn.fi/URN:NBN:fi:tty-201811212673
Tiivistelmä
Olioperustainen ohjelmointi on ottanut valta-aseman ohjelmistoalalla viimeisten parin vuosikymmenen aikana. Suosionsa myötä alan koulutus, tutkimus ja kehitys on keskittynyt pitkälti sen ympärille. Tämän johdosta olioperustaisen ohjelmistokehityksen tueksi on kehitetty lukuisia eri tekniikoita, menetelmiä ja prosesseja. Yksi tärkeimmistä, ellei tärkein, näistä on ollut suunnittelumallien käyttö.
Funktionaalinen ohjelmointi on ollut pitkään olioperustaisen ohjelmoinnin varjossa. Mielenkiinto sitä kohtaan on viime vuosina ollut kuitenkin kasvussa. Perinteisiin olio-ohjelmointikieliin on lisätty funktionaalisia ominaisuuksia ja myös kokonaan uusia funktionaalisia ohjelmointikieliä on julkaistu. Puhdas funktionaalinen ohjelmointi ratkaisee joitakin imperatiivisessa ohjelmoinnissa esiintyneitä ongelmia lähes automaattisesti. Tällaisia ovat muun muassa rinnakkaisuuden hallinta sekä testattavuus, jotka molemmat ovat korostuneet ohjelmistojen kompleksisuuden kasvaessa.
Työssä tutkittiin, miten 23 olioperustaista suunnittelumallia soveltuu funktionaalisen ohjelmoinnin asiayhteyteen. Johtuen olioperustaisen ja funktionaalisen ohjelmoinnin perustavaa laatua olevista eroista, suoraviivainen siirtäminen ohjelmointityylistä toiseen ei ollut mahdollista. Sen sijaan jokaisen suunnittelumallin kohdalla pyrittiin siirtämään sen ajatus funktionaaliseksi rakenteeksi.
Tutkielma osoitti, että funktionaalinen ohjelmointi korvaa huomattavan osan olioperustaisista suunnittelumalleista triviaaleilla rakenteilla. Huomattava osa suunnittelumalleista oli joko teennäisiä tai tarpeettomia funktionaalisessa asiayhteydessä. Huolimatta olioperustaisen ja funktionaalisen ohjelmoinnin suurista eroista, ainoastaan muutamaa suunnittelumallia ei ollut mahdollista soveltaa funktionaaliseen asiayhteyteen.
Funktionaalinen ohjelmointi on ollut pitkään olioperustaisen ohjelmoinnin varjossa. Mielenkiinto sitä kohtaan on viime vuosina ollut kuitenkin kasvussa. Perinteisiin olio-ohjelmointikieliin on lisätty funktionaalisia ominaisuuksia ja myös kokonaan uusia funktionaalisia ohjelmointikieliä on julkaistu. Puhdas funktionaalinen ohjelmointi ratkaisee joitakin imperatiivisessa ohjelmoinnissa esiintyneitä ongelmia lähes automaattisesti. Tällaisia ovat muun muassa rinnakkaisuuden hallinta sekä testattavuus, jotka molemmat ovat korostuneet ohjelmistojen kompleksisuuden kasvaessa.
Työssä tutkittiin, miten 23 olioperustaista suunnittelumallia soveltuu funktionaalisen ohjelmoinnin asiayhteyteen. Johtuen olioperustaisen ja funktionaalisen ohjelmoinnin perustavaa laatua olevista eroista, suoraviivainen siirtäminen ohjelmointityylistä toiseen ei ollut mahdollista. Sen sijaan jokaisen suunnittelumallin kohdalla pyrittiin siirtämään sen ajatus funktionaaliseksi rakenteeksi.
Tutkielma osoitti, että funktionaalinen ohjelmointi korvaa huomattavan osan olioperustaisista suunnittelumalleista triviaaleilla rakenteilla. Huomattava osa suunnittelumalleista oli joko teennäisiä tai tarpeettomia funktionaalisessa asiayhteydessä. Huolimatta olioperustaisen ja funktionaalisen ohjelmoinnin suurista eroista, ainoastaan muutamaa suunnittelumallia ei ollut mahdollista soveltaa funktionaaliseen asiayhteyteen.