Tanım: "Single responsibility", "Open-closed", "Liskov substitution", "Interface segregation" ve "Dependency inversion" ifadelerini kısaltmasından oluşan nesneye yönelik tasarım prensibleri
Tanım: Bir yazılım parçasının veya bölümünün sadece tek bir sorumluluğu olması gerektiğini belirten yazılım tasarım prensibi.
Tanım: Bir yazılım parçasının veya bölümünün, türetilmeye (genişlemeye) açık olması, değişikliğe ise kapalı olması gerektiğinin belirten yazılım tasarım prensibi
Tanım: Alt sınıflardan oluşturulan nesnelerin üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermeleri gerektiğini belirten yazılım tasarım prensibi
Tanım: Genel amaçlı interface yerine belirli görevi yerine getiren farklı interface tanımlanması gerektiğini belirten yazılım tasarım prensibi
Tanım: Üst seviye sınıfların düşük seviye sınıflara doğrudan bağımlı olmaması gerektiğini, araya soyut bir sınıf veya interface koyulması gerektiğini belirten yazılım tasarım prensibi. Üst seviye sınıflar alt seviye sınıflara bağımlılığı kalmaz ve ortak bir soyutlamayla birbirine bağlı olurlar