(1) Make the logic of program implementation clearer and more readable.
(2) Make the division of labor for multi-person cooperation development clearer and easier to control.
(3) Can make full use of code that can be reused.
(4) Abstract the publicly available modules, which are maintainable to avoid the same modification in multiple places.
(5) The system can easily select different processes.
(6) It is possible to assemble and develop new similar systems and even a brand new system based on a modular design excellent legacy system.