Explain object-oriented programming (OOP) concepts and how you would use them to design modular embedded software.