In computer science, decomposition, also known as factoring, refers to the process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program, and maintain.
In structured programming, algorithmic decomposition breaks a process down into well-defined steps. Structured programming can be seen as a subset or subdiscipline of Procedural programming, one of the major Programming paradigms It is most famous for removing or
Object-oriented decomposition, on the other hand, breaks a large system down into progressively smaller classes or objects that are responsible for some part of the problem domain. Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs
According to Booch, algorithmic decomposition is a necessary part of object-oriented analysis and design, but object-oriented systems start with and emphasize decomposition into classes. Grady Booch (born February 27[[ 955]] is a Software designer a software methodologist and a design pattern enthusiast (Booch, 1994, pp. 16-20)