All concepts

Single Responsibility Principle

Software design principle that states that a class or module should have only one reason to change, and should be responsible for only one aspect or feature of the system it represents.

Origin

The principle was articulated by software engineer Robert C. Martin in his 2000 paper "Design Principles and Design Patterns," building on David Parnas's 1972 work on module decomposition in Communications of the ACM. Martin's formulation became the "S" in the SOLID design principles — an acronym coined by Michael Feathers around 2004 — and was further popularized through Martin's 2008 book Clean Code.

Updated February 22, 2026