responsibility Open / Closed Principle “software entities … should be open for extension, but closed for modification.” Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle one should “Depend upon Abstractions. Do not depend upon concretions.”