Modulaarinen ohjelmointi on eräänlainen ohjelmistokoodaus ja -kehitys, joka sisältää tietojen jakamisen pienempiin paketteihin tai “moduuleihin”. Useimmissa tapauksissa nämä moduulit on helpompi imeä suuremmille käsittelyjärjestelmille, mikä voi tehdä niistä nopeampia ja tehokkaampia käyttäjän kannalta. Koodauspuolella ehkä tärkeämpää on kuitenkin se, että pakettien pienempi koko tarkoittaa, että niitä voidaan testata, kehittää ja hienosäätää yksilöllisesti. Ohjelmien jakaminen pienemmiksi paloiksi on monin tavoin tehnyt kehityksestä paljon perusteellisempaa ja tarkempaa ja avannut myös lukuisia ovia innovaatioille. Ohjelmien jakaminen ei kuitenkaan ole yleensä niin yksinkertaista kuin yksinkertainen viivojen piirtäminen. Suurimman osan ajasta moduulit on jaettu niiden perusominaisuuksien perusteella ja pyritään minimoimaan päällekkäiset riippuvuudet komponenteilla. Päätavoitteena on yleensä jakaa ohjelma niin, että se voidaan nopeasti ja tarkasti kehittää yhdeksi saumattomaksi kokonaisuudeksi mahdollisimman pienellä vaivalla tai päällekkäisillä tarkastuksilla.
Peruskonsepti ja keskeiset edut
Ohjelmiston ohjelmointi ja koodaus ovat monissa eri muodoissa, ja niillä voi olla useita huomaamattomia tavoitteita. Toimien monimutkaistuessa kuitenkin kaikkien yksittäisten osien luominen, vianetsintä ja suorittaminen, jotka muodostavat yhdessä suuremman ohjelman, voi olla suuri työ – joissakin tapauksissa niin suuri, että asiat ovat jo muuttuneet alkuvaiheissa ennen viimeiset osat ovat valmiit. Yksi tehokkaimmista tavoista kiertää ongelmat ja maksimoida rakentamisen tehokkuus on jakaa koodi moduuleiksi, josta on tullut tavallinen koodaustapa useimmilla areenoilla. Se on muun muassa prosessi, joka yleensä auttaa lyhentämään kehitysaikaa ja välttämään koodin toistamista
Yhteisvaikutusten tunnistaminen
Ohjelmistojen yhteisten piirteiden tunnistaminen on modulaarisen ohjelmoinnin perusta. Ryhmittelemällä samankaltaisia esineitä ja prosesseja yhteen ja varmistamalla, että jokainen tuloksena oleva moduuli toimii hyvin, koko järjestelmän asianmukainen toiminta paranee. Toisin sanoen, jos moduulit toimivat hyvin sen suhteen, mitä kyseisellä moduulilla on tehtävänä, ne toimivat todennäköisesti hyvin yhteen koottuna.
Vähäisten riippuvuuksien merkitys
Minimaalinen riippuvuus moduulien välillä on toinen keskeinen ominaisuus. Pohjimmiltaan vähäiset riippuvuudet tarkoittavat sitä, että moduulin sisällä olevien objektien välillä voi olla monia suhteita ja vain vähän suhteita eri moduulien objektien välillä. Arvioidakseen ohjelman riippuvuuden astetta, ohjelmistokehittäjät käyttävät mittausprosessia, joka tunnetaan kytkennänä. Jotkut kytkennät ovat välttämättömiä, jotta moduulit voivat toimia yhdessä saavuttaakseen koko ohjelmiston tavoitteen, mutta vähentääkseen virheiden mahdollisuutta, pieni kytkentä on parasta modulaarisen ohjelmoinnin kannalta.
Tietojen piilottaminen
Tietojen piilottaminen, joka on myös toinen näkökohta, jota käytetään usein tässä enemmän jäsennellyssä lähestymistavassa ohjelmointiin, auttaa myös virtaviivaistamaan asioita ja vähentämään virheitä ja irtisanomisia. Pohjimmiltaan tämä ominaisuus rajoittaa toimitettavan tiedon määrän vain tarpeelliseen. Muita, vaikka ehkä niihin liittyviä, tietoja ei välitetä ohjelmiston tai ohjelmamoduulin käyttäjälle, joka pyytää tietoja toiselta ohjelman moduulilta.
Koodikirjaston rooli
Modulaarinen ohjelmointi käyttää tyypillisesti yhtä koottua koodikirjastoa, joka toteuttaa johdonmukaisuuden kunkin moduulin koodauksessa tai ohjelmoinnissa. Jos ohjelma koostuu moduuleista A, Moduuli B ja Moduuli C, kaikki nämä moduulit suorittavat yhden koodilähteen, jota voidaan käyttää uudelleen kaikissa moduuleissa. Toistojen puute kullekin moduulille parantaa sekä järjestelmän suorituskykyä että vähentää inhimillisten virheiden mahdollisuutta koodauksessa.
Päivitysmahdollisuus
Jakautumisen käsite tekee jokaisesta moduulista ja sen sisällöstä toisistaan riippumattomia, mutta jokainen moduuli on edelleen riippuvainen samasta peruskoodista. Moduulien välisen yksinoikeuden ansiosta kehittäjä voi korvata tai päivittää yksittäisiä ohjelmiston osia kerrallaan. Parillisemman lähestymistavan avulla kehittäjä voi ladata tarvittavat ohjelman osat tarpeen mukaan. Mahdollisuus tehdä ohjelmistoon lisäyksiä tai muutoksia helposti ilman perusohjelman muokkaamista mahdollistaa myös sen, että kehittäjät voivat julkaista useita sovelluksia, joista on muokattavissa.