it can be divided into top-down and bottom-up development methods