Arsitektur terbuka, dalam kaitannya dengan pemrograman komputer , mengacu pada sistem perangkat keras, jaringan atau bahkan perangkat lunak yang dapat diperluas oleh pengguna untuk menyediakan fungsionalitas baru atau yang diperluas. Ketika berhadapan dengan perangkat lunak, arsitektur terbuka berarti bahwa, sementara sebuah program berjalan sendiri, baik seluruh kode sumber untuk program atau kit pengembangan tersedia sehingga pengguna dapat menulis ulang bagian dari perangkat lunak atau mengembangkan plug-in dan ekstensi untuk memungkinkan program untuk melakukan tugas baru. Komputer atau sistem perangkat keras lain yang menggunakan arsitektur terbuka biasanya dibangun sedemikian rupa sehingga pengguna dapat mengubah, menghapus, atau meningkatkan komponen di dalam sistem. Ini juga memungkinkan pengguna untuk menambahkan perangkat keras tambahan atau memodifikasi unsur sistem untuk meningkatkan apa yang dapat dilakukan mesin atau untuk merampingkannya ke satu tugas. Sebuah sistem atau bagian dari perangkat lunak yang diatur dan tidak dapat dimodifikasi dikenal sebagai menggunakan arsitektur tertutup tetapi juga dapat disebut sistem berpemilik.
Arsitektur terbuka mengacu pada sistem perangkat keras, jaringan atau bahkan perangkat lunak yang dapat diperluas oleh pengguna untuk menyediakan fungsionalitas baru atau yang diperluas.
Salah satu fitur menggunakan arsitektur terbuka adalah bahwa sistem atau perangkat lunak yang diterima pengguna akhir dapat dilihat lebih sebagai alat generik. Jika kebutuhan pengguna atau perusahaan berubah, maka perangkat keras atau perangkat lunak dapat diubah agar tetap relevan tanpa perlu menghapus keseluruhan sistem yang sudah ada. Bergantung pada jenis sistem, seperti jaringan atau sistem operasi , dimungkinkan untuk sepenuhnya mengubah fungsi dasar untuk mengakomodasi teknologi yang berkembang atau paradigma bisnis baru. Ini bisa menjadi sangat penting untuk komputer dan perangkat keras jaringan, di mana komponen dapat ditingkatkan secara teratur seiring kemajuan teknologi tanpa merusak kerangka kerja yang sudah ada yang telah diinstal.
Konsep arsitektur terbuka muncul dari pengembangan sistem yang sepenuhnya tertutup. Jenis sistem paling awal tidak menawarkan cara untuk meningkatkan komponen, dan perangkat lunak tidak memiliki mekanisme untuk ekstensi. Sistem berpemilik ini memiliki penggunaan yang terbatas dan, seiring dengan peningkatan kecepatan, menjadi usang semakin cepat.
Meskipun masih ada sistem kepatutan yang digunakan secara luas di industri komputer, banyak dari sistem ini memang menawarkan kemampuan untuk meningkatkan atau memperluas fungsionalitas inti. Tidak seperti sistem arsitektur terbuka, di mana beberapa vendor dapat menyediakan upgrade yang berbeda dan kompetitif, upgrade proprietary biasanya hanya tersedia melalui produsen sistem dan dapat memerintahkan harga tinggi untuk akses. Ketergantungan pada produsen tunggal sebagai sumber untuk semua suku cadang, plug-in, dan peningkatan sistem adalah salah satu alasan mengapa arsitektur terbuka lebih disukai daripada sistem berpemilik dalam aplikasi skala besar.