It may take you many hours to get a program that compiles that you think will solve the given problem. Finally you will be able to run the program. If the program does not give correct output, and it usually doesn't, you have to completely rethink the program logic and go through the whole debugging process again. Usually you will go through many cycles of debugging before your program works. Procedural programming views software as a process.
Software is decomposed into modules that represent steps of the process.
Object-oriented programming views software as a set of interacting objects that model the application domain. Each object contains data and methods to operate on the data. The procedural decomposition is addressed after the system has been decomposed into objects. Thus, object-oriented programming adds another level of abstraction beyond procedural abstraction. Object-oriented programming encourages reuse of software, which aids in software development.