This article discusses the principles and advantages of Object Oriented Programming (OOP) and Design Specifications for software development. It covers topics such as classes and objects, inheritance, data abstraction and encapsulation, and polymorphism. The advantages of OOP include code reusability, flexibility in modification, and maintenance of code. The article also includes a use case diagram and class diagram for a room carpet application. Course code, course name, and university are not mentioned.