Monolitisk applikation

i programvaruteknik beskriver en monolitisk applikation en enstegsprogramvara där användargränssnittet och dataåtkomstkoden kombineras till ett enda program från en enda plattform.

en monolitisk applikation är fristående och oberoende av andra datorapplikationer. Designfilosofin är att applikationen inte bara ansvarar för en viss uppgift utan kan utföra varje steg som behövs för att slutföra en viss funktion. Idag är vissa personliga finansapplikationer monolitiska i den meningen att de hjälper användaren att utföra en fullständig uppgift, från början till slut, och är privata datasilor snarare än delar av ett större system av applikationer som fungerar tillsammans. Vissa ordbehandlare är monolitiska applikationer. Dessa applikationer är ibland associerade med stordatorer.

i programvaruteknik beskriver en monolitisk applikation en programvara som är utformad utan modularitet. Modularitet är önskvärt, i allmänhet, eftersom det stöder återanvändning av delar av applikationslogiken och underlättar också underhåll genom att tillåta reparation eller utbyte av delar av applikationen utan att kräva grossistbyte.

modularitet uppnås i olika utsträckning genom olika modulariseringsmetoder. Kodbaserad modularitet gör det möjligt för utvecklare att återanvända och reparera delar av applikationen, men utvecklingsverktyg krävs för att utföra dessa underhållsfunktioner (t.ex. kan applikationen behöva kompileras om). Objektbaserad modularitet ger programmet som en samling av separata körbara filer som kan oberoende underhållas och ersättas utan att omfördela hela programmet (t.ex. Microsoft ”dll” – filer, Sun/UNIX ”shared object” – filer). Vissa objektmeddelandefunktioner tillåter objektbaserade applikationer att distribueras över flera datorer (t.ex. Serviceorienterade arkitekturer använder specifika kommunikationsstandarder / protokoll för att kommunicera mellan moduler.

i sin ursprungliga användning beskrev termen ”monolitisk” enorma stordatorapplikationer utan användbar modularitet. Detta, i kombination med den snabba ökningen av beräkningskraften och därmed snabb ökning av komplexiteten hos de problem som kunde hanteras av programvara, resulterade i ohållbara system och ”mjukvarukrisen”.