Monolittisk applikasjon

i software engineering, beskriver en monolittisk applikasjon en enkelt-lags program der brukergrensesnittet og datatilgangskoden er kombinert i et enkelt program fra en enkelt plattform.

en monolitisk applikasjon er selvstendig og uavhengig av andre databehandlingsprogrammer. Designfilosofien er at søknaden er ansvarlig ikke bare for en bestemt oppgave, men kan utføre hvert trinn som trengs for å fullføre en bestemt funksjon. I dag er noen personlige finansapplikasjoner monolitiske i den forstand at de hjelper brukeren med å utføre en komplett oppgave, ende til ende, og er private datasiloer i stedet for deler av et større system av applikasjoner som fungerer sammen. Noen tekstbehandlere er monolitiske applikasjoner. Disse programmene er noen ganger forbundet med stormaskiner.

i programvareutvikling beskriver en monolitisk applikasjon et program som er designet uten modularitet. Modularitet er generelt ønskelig, da det støtter gjenbruk av deler av applikasjonslogikken og også letter vedlikehold ved å tillate reparasjon eller utskifting av deler av applikasjonen uten å kreve engros erstatning.

Modularitet oppnås i ulik grad ved forskjellige modulariseringsmetoder. Kodebasert modularitet tillater utviklere å gjenbruke og reparere deler av applikasjonen, men utviklingsverktøy er nødvendig for å utføre disse vedlikeholdsfunksjonene(f. eks. Objektbasert modularitet gir applikasjonen som en samling av separate kjørbare filer som kan vedlikeholdes uavhengig og erstattes uten å omplassere hele applikasjonen (For Eksempel Microsoft «dll» – filer; Sun/UNIX «shared object» – filer). Noen funksjoner for objektmeldinger tillater at objektbaserte programmer distribueres på flere datamaskiner (For Eksempel Microsoft COM+). Tjenesteorienterte arkitekturer bruker spesifikke kommunikasjonsstandarder / protokoller for å kommunisere mellom moduler.

i sin opprinnelige bruk beskrev begrepet «monolittisk» enorme stormaskinprogrammer uten brukbar modularitet. Dette, i kombinasjon med den raske økningen i beregningskraft og dermed rask økning i kompleksiteten til problemene som kunne løses av programvare, resulterte i uoppnåelige systemer og»programvarekrisen».