1. A method for static code analysis, wherein the method comprises: routing a code analysis request to a selected set of one or more static code analysis tools based on a context of the request, wherein the set of one or more static code analysis tools is selected based on a capability of each tool towards one or more categories of analysis included in the code analysis request; merging one or more tool-specific analysis outputs of the selected set of one or more static code analysis tools, wherein merging the one or more tool-specific outputs comprises using one or more tool-specific mappings to one or more static code analysis abstractions and one or more source linkages of one or more static code analysis defects; performing a deep analysis on a selected set of one or more defect categories request, wherein the set of one or more defect categories are selected based on an amount of false positives generated from the code analysis performed by the set of one or more static code analysis tools; combining results of the merging with results of the deep analysis to filter out one or more false-positives and to add one or more new true positives to create an optimal set of defects; and re-configuring the selected set of one or more static code analysis tools for a subsequent code analysis request, wherein said re-configuring is based on tool-specific user feedback.