The modules that are part of the project should be organized in a layered way by means of groups. Modules like frameworks and librairies should be put first, then other components like the main features of the project. Security and data modules should be put last. A well layered architecture should be visible in the form of a matrix which has dependencies into only one corner (for example: in the lower-left part).