From the software requirements specification, software design based on the requirements analysis phase to determine the overall structure of the functional design of the software system, division of function modules, determine the implementation algorithm of each module and write specific code, form the concrete design scheme of the software.

Software design abstracts many things and problems and abstracts them from different levels and angles. Problem or things broken and modular makes it easy to solve the problem, the more amount of the fine module decomposition, it is makes the designers to consider the side effects of more coupling between modules.