1. A computer-implemented method for protecting confidential knowledge in a software system design which includes a plurality of artifacts, said method comprising the steps of: calculating a correlation between the confidential knowledge and the software system design; acquiring inter-dependencies between the artifacts in the software system design; and determining protection mechanisms for the respective artifacts according to said correlation and said inter-dependencies.