El origen de la programación orientada a objetos se remonta a Simula 67, un lenguaje diseñado para simulaciones. Posteriormente, Smalltalk refinó estos conceptos incorporando la capacidad de crear y modificar objetos dinámicamente. A mediados de los 80, C++ impulsó la adopción de la POO gracias a su influencia. La POO se caracteriza principalmente por la abstracción, encapsulamiento, herencia y polimorfismo.