Abstraktiossa säilytetään vain tärkeimmät tiedot jostakin asiasta, jotta sitä olisi helpompi käyttää uudelleen.
Abstraktio koskee tapoja, joilla korkeampia, vähemmän todellisia käsitteitä johdetaan kirjaimellisten ("todellisten" tai "konkreettisten") tietojen tai muun informaation käytöstä ja luokittelusta.
Abstraktioita voidaan muodostaa vähentämällä käsitteen tai ilmiön tietosisältöä tarkasteltuna, usein niin, että vain tiettyyn tarkoitukseen tarvittava tieto säilyy. Esimerkiksi abstrahoimalla nahkainen jalkapallopallo yleisemmäksi pallon käsitteeksi säilytetään vain tiedot pallon yleisistä ominaisuuksista ja käyttäytymisestä ja jätetään pois kyseisen pallon ominaispiirteet. Vertaa sanaan: yleistäminen. Adjektiivin "abstrakti" vastakohta on yleisesti sana "konkreettinen".
Mitä abstrahointi tarkoittaa käytännössä?
Abstrahointi on tarkoituksellista yksinkertaistamista: valitaan olennaiset piirteet ja piilotetaan yksityiskohdat, jotka eivät ole tarpeellisia kuhunkin käyttötapaukseen. Tämä mahdollistaa ilmiöiden, prosessien tai tietorakenteiden käsittelyn yleisemmällä tasolla ilman, että jokaista yksityiskohtaa tarvitsee tuntea tai mallintaa.
Abstrahoinnin periaatteet
- Tarkoituksenmukaisuus: abstrahoidaan juuri ne ominaisuudet, jotka palvelevat tavoitetta.
- Supistaminen: jätetään pois epäolennaiset tiedot tai piirteet, jotta malli on yksinkertaisempi ja helpompi ymmärtää.
- Yleistäminen: löydetään yhteiset piirteet eri ilmiöiden välillä ja muodostetaan yleisempi käsite tai malli.
- Kerrostaminen: abstraktiot voidaan järjestää eri tasoille (esim. korkean tason rajapinta vs. matalan tason toteutus), jolloin monimutkaisuus piilotetaan alemmille tasoille.
Abstrahointityypit ja esimerkit
Abstrahointia esiintyy monilla alueilla. Tässä joitakin tyypillisiä esimerkkejä:
- Tietojenkäsittelyssä: tietorakenteet (esim. lista, pino, jono) ja rajapinnat (API) piilottavat toteutuksen yksityiskohdat ja tarjoavat selkeän käyttöliittymän.
- Ohjelmoinnissa: olio-ohjelmoinnissa luokat kuvaavat yleisiä käsitteitä (esim. "pallo"), kun taas oliot edustavat tiettyjä instansseja (esim. tietty nahkainen jalkapallo).
- Matematiikassa: abstraktit rakenteet kuten vektoriavaruudet, ryhmät ja funktiot keskittyvät ominaisuuksiin, jotka ovat relevantteja laskennassa ja todistuksissa.
- Tieteissä ja mallintamisessa: yksinkertaistetut mallit (esim. pistehiukkasen mallintaminen ilman muotoa) auttavat ennustamaan ja ymmärtämään ilmiöitä ilman kaikkea fysikaalista monimutkaisuutta.
- Kulttuurissa ja taiteessa: abstrakti taide korostaa muotoa, väriä ja rakennetta konkreettisten esineiden sijaan.
Käytännön esimerkki
Palaten alkuperäiseen esimerkkiin: kun konkreti "nahkainen jalkapallopallo" muutetaan abstraktioksi "pallo", säilytetään vain ne ominaisuudet, jotka pätevät kaikkiin palloihin (pyöreys, kyky vieriä, alue mitä ne peittävät) ja unohdetaan materiaalikohtaiset yksityiskohdat. Tällä tavalla sama abstraktio palvelee monia tilanteita — esim. pallon fysiikan simuloinnissa, varastonhallinnassa tai graafisessa esityksessä — ilman materiaalin tuntemusta.
Hyödyt ja rajoitukset
- Hyödyt: helpottaa monimutkaisuuden hallintaa, edistää uudelleenkäytettävyyttä, selkeyttää ajattelua ja mahdollistaa modulaarisuuden.
- Rajoitukset: liiallinen abstrahointi voi johtaa tärkeiden yksityiskohtien katoamiseen tai liian yleisiin malleihin, jotka eivät sovellu kaikkiin tapauksiin. On löydettävä oikea tasapaino abstraktion tason ja sovellusvaatimusten välillä.
Miten luoda toimiva abstrahtio?
- Määrittele tavoitteet: mitä ongelmaa abstrahio ratkaisee ja missä kontekstissa sitä käytetään.
- Tunnista olennaiset ominaisuudet: mitkä piirteet vaikuttavat käyttäytymiseen tai tuloksiin.
- Piilota epäolennaiset yksityiskohdat: erottele toteutuksen yksityiskohdat käyttöliittymästä tai korkeamman tason mallista.
- Testaa ja arvioi: varmista, että abstrahtio toimii eri käyttötapauksissa ja säilyttää tarvittavan joustavuuden.
- Iteroi: päivitä abstrahtioita tarpeen mukaan, kun uusia vaatimuksia tai poikkeustapauksia ilmenee.
Suhde yleistämiseen ja konkreettisuuteen
Abstrahointi liittyy läheisesti yleistämiseen: molemmat vähentävät yksityiskohtien määrää löytääkseen laajempia malleja. Samalla abstrakti ja konkreettinen muodostavat käsitteellisen vastaparin: abstrakti kuvaa yleistä ja yksinkertaistettua mallia, kun taas konkreettinen kuvaa yksityiskohtaista, havaittavaa ilmiötä.
Yhteenvetona: abstrahointi on tehokas ajattelun ja suunnittelun väline, joka auttaa hallitsemaan monimutkaisuutta valitsemalla tarkoituksenmukaisen tason yksityiskohtia. Oikein käytettynä se lisää joustavuutta, ylläpidettävyyttä ja uudelleenkäytettävyyttä; väärin käytettynä se voi kuitenkin piilottaa tarpeellisia tietoja.

