Nesne tabanlı programlama, temel olarak,
programcının kendi sınıfını ve nesnesini oluşturup, üzerinde
çalışabilmesine olanak sağlayan bir mimaridir.
Nesne tabanlı programlama, büyüyen yazılım dünyasının ihtiyaçlarını çözemeyen prosedürel programlamaya bir çözüm olarak ortaya çıkmıştır.
Gittikçe büyüyen uygulamalar yazılmaya başlanması, bu uygulamaların bakım maliyetlerinin artması ve kolayca modifiye edilememeleri gibi durumlar nesne yönelimli programlamaya geçiş sürecinde yaşanılan temel sorunlar olarak gösterilebilir.