decomposition

Käsite · systeemiajattelu · ongelmanratkaisu · osiin jako

Määritelmä

Hajauttaminen (engl. decomposition) on ajattelun ja suunnittelun perusliike, jossa monimutkainen kokonaisuus — ongelma, järjestelmä tai prosessi — jaetaan osiin, joita voidaan tarkastella, ymmärtää tai ratkaista erikseen. Sana tulee latinan verbistä decomponere ("erottaa osiin").

Hajauttaminen on yksi tietojenkäsittelyn, tekniikan ja systeemiajattelun perustyökaluista. Sen ydinajatus on, että kokonaisuus voidaan ymmärtää osiensa kautta, kunhan osien väliset vuorovaikutukset tunnistetaan. Se on abstraction:in vastapari: siinä missä abstraktio nostaa yleistyksiä, hajauttaminen erittelee yksityiskohtia.

Hajauttamisen tyypillisiä muotoja:

Hajauttamiseen liittyy keskeinen riski: osat eivät välttämättä summaudu takaisin kokonaisuudeksi. Tätä ilmiötä systeemiajattelu kutsuu emergence:ksi — kokonaisuuden ominaisuudet eivät palaudu yksinomaan osiensa ominaisuuksista. Hyvä hajauttaminen säilyttää näkyvissä myös osien väliset interconnection:it ja coupling:in.

Alkuperä

Hajauttaminen on vanha ajattelun periaate. Renée Descartesin Discourse on the Method (1637) esitti sen säännön muodossa: "jakaa kutakin vaikeutta niin moneen osaan kuin mahdollista ja kuin tarvitaan sen ratkaisemiseksi." Tämä cartesiolainen hajauttaminen on länsimaisen tieteen ja tekniikan perusta.

1900-luvulla hajauttaminen sai tieteellisen muotonsa. Reductionism tieteenfilosofisena ohjelmana nojasi hajauttamiseen: selittää ilmiöitä palauttamalla ne peruskomponentteihinsa. Vastareaktiona syntynyt holism ja systeemiajattelu korostivat, ettei hajauttaminen yksin riitä — tarvitaan myös synteesiä.

Ohjelmistotekniikassa hajauttaminen formalisoitui structured analysis -menetelmässä (Yourdon, DeMarco 1970-luvulla) ja top-down design -periaatteessa. Niklaus Wirth esitti kuuluisan kaavan Algorithms + Data Structures = Programs (1976), joka on hajauttamisen tiivistys. Modularity ja modularity ovat hajauttamisen suoraa soveltamista.

Systeemiajattelussa Donella Meadows ja Dennis Meadows korostivat, että hajauttaminen on välttämätöntä, mutta sen on aina oltava tietoinen valinta: mitä jaetaan, miten, ja mitkä vuorovaikutukset säilytetään näkyvissä.

Yhteydet muihin käsitteisiin

Missä oppitunneissa käsitellään

Käsite esitellään Ongelman hajauttaminen -oppitunnilla, jossa käydään läpi Descartesin menetelmä ja sen sovellukset. Syventävä käsittely Modulaarinen suunnittelu -oppitunnilla, jossa hajauttaminen yhdistetään modularity:iin ja coupling:iin.

Lähteet

Renée Descartes — Discourse on the Method (1637). Edward Yourdon & Larry Constantine — Structured Design (1979). Niklaus Wirth — Algorithms + Data Structures = Programs (1976). Donella Meadows — Thinking in Systems: A Primer (2008). Herbert Simon — The Sciences of the Artificial (1969), hajauttamisen rajat.


Aiheeseen liittyy