Öppen och sluten arkitektur beskriver två motsatta paradigm i design och implementering av mjukvarusystem.
Öppen arkitektur är ett tillvägagångssätt som betonar förmågan att integrera och utöka ett mjukvarusystem med komponenter och tjänster från tredje part. Öppna arkitekturer kännetecknas ofta av användningen av öppna standarder, API:er och protokoll, vilket gör att utvecklare enkelt kan ansluta och kombinera olika programvarukomponenter. Denna flexibilitet och utbyggbarhet gör öppna arkitekturer väl lämpade för komplexa, utvecklande system som kräver interoperabilitet och integration med externa system.
Stängd arkitektur , å andra sidan, är ett tillvägagångssätt som betonar självinneslutning och kontroll inom ett mjukvarusystem. Slutna arkitekturer är designade för att vara kompletta och oberoende, med begränsat eller inget beroende av externa komponenter eller tjänster. Detta tillvägagångssätt ger större kontroll över systemets beteende, säkerhet och tillförlitlighet, men det gör det också mindre flexibelt och utbyggbart. Slutna arkitekturer används ofta i system som kräver höga nivåer av säkerhet, tillförlitlighet eller prestanda, eller där det är viktigt att ha fullständig kontroll över systemets funktionalitet och beteende.
I praktiken kan många mjukvarusystem hamna någonstans mellan dessa två ytterligheter. Det är möjligt att ha en sluten arkitektur med några öppna gränssnitt eller en öppen arkitektur med vissa slutna komponenter. Valet mellan öppen och sluten arkitektur beror på de specifika kraven och begränsningarna för det system som utvecklas.