Explain the SOLID principles, with a specific focus on how the Liskov Substitution Principle is applied or violated in software design.