Objektorienteret programmering, OOP, programmeringsparadigme, der er knyttet til bestemte programmeringssprog (bl.a. C++, Simula og Smalltalk). I disse sprog kan man definere klasser, der beskriver en samling af tilgængelige operationer (metoder), som virker på tilstande, der er skjult for omgivelserne. Fx vil klassen af brøker have en tilstand beskrevet ved tæller og nævner, og metoderne kan være de fire regnearter; kun de kan ændre tæller og nævner. Man får en indkapsling af tilstandsvariable, hvilket gør OOP til et kraftfuldt modelværktøj. Ud fra klassebeskrivelsen kan man skabe objekter med hver sin tilstand (i eksemplet konkrete brøker som 1/2, 4/7 o.l.). Et vigtigt aspekt af OOP er nedarvning, der gør det muligt at skabe hierarkier af klasser. En underklasse arver metoder og tilstand fra sin overklasse og kan selv definere nye metoder og tilstandsvariable. Nedarvning kan bruges til at udtrykke relationer som klassifikation, specialisering og generalisering.