<Tr> <Td> <Ul> <Li> </Li> <Li> </Li> <Li> </Li> </Ul> </Td> </Tr> <Ul> <Li> </Li> <Li> </Li> <Li> </Li> </Ul> <P> In object - oriented computer programming, the term SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible and maintainable . The principles are a subset of many principles promoted by Robert C. Martin . Though they apply to any object - oriented design, the SOLID principles can also form a core philosophy for methodologies such as agile development or adaptive software development . The theory of SOLID principles was introduced by Martin in his 2000 paper Design Principles and Design Patterns, although the SOLID acronym itself was introduced later by Michael Feathers . </P> <Dl> <Dt> Single responsibility principle </Dt> <Dd> a class should have only a single responsibility (i.e. changes to only one part of the software's specification should be able to affect the specification of the class). </Dd> <Dt> Open / closed principle </Dt> <Dd> "software entities...should be open for extension, but closed for modification ." </Dd> <Dt> Liskov substitution principle </Dt> <Dd> "objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program ." See also design by contract . </Dd> <Dt> Interface segregation principle </Dt> <Dd> "many client - specific interfaces are better than one general - purpose interface ." </Dd> <Dt> Dependency inversion principle </Dt> <Dd> one should "depend upon abstractions, (not) concretions ." </Dd> </Dl>

Who named the first five principles of object-oriented design referred to as solid