A computer-implemented method for performing software composition analysis of a target source code for a computer program or a part thereof, the method involving: performing a first exploration process, comprising: - searching a plurality of first software archives originating from different sources in a global computer network to find first occurrences of the target source code among source code files in the plurality of first software archives, and - for every found first occurrence of the target source code, collecting a first set of key information about matching source code files or snippets therein; performing a second exploration process, comprising: - searching a plurality of second software archives originating from one or more sources in the global computer network, the plurality of second software archives being different from the plurality of first software archives, to find second occurrences of the target source code among source code snippets in the second software archives, and - for every found second occurrence of the target source code, collecting a second set of key information about matching source code snippets; mapping each matching source code snippet among the matching source code snippets as collected in the second set of key information to the matching source code files or snippets therein as collected in the first set of key information, wherein the mapping indicates whether an earlier version of said each matching source code snippet exists in the first set of key information; and based on the mapped first set of key information and second set of key information, determining a software composition of the target source code. performing a first exploration process, comprising: - searching a plurality of first software archives originating from different sources in a global computer network to find first occurrences of the target source code among source code files in the plurality of first software archives, and - for every found first occurrence of the target source code, collecting a first set of key information about matching source code files or snippets therein; - searching a plurality of first software archives originating from different sources in a global computer network to find first occurrences of the target source code among source code files in the plurality of first software archives, and - for every found first occurrence of the target source code, collecting a first set of key information about matching source code files or snippets therein; performing a second exploration process, comprising: - searching a plurality of second software archives originating from one or more sources in the global computer network, the plurality of second software archives being different from the plurality of first software archives, to find second occurrences of the target source code among source code snippets in the second software archives, and - for every found second occurrence of the target source code, collecting a second set of key information about matching source code snippets; - searching a plurality of second software archives originating from one or more sources in the global computer network, the plurality of second software archives being different from the plurality of first software archives, to find second occurrences of the target source code among source code snippets in the second software archives, and - for every found second occurrence of the target source code, collecting a second set of key information about matching source code snippets; mapping each matching source code snippet among the matching source code snippets as collected in the second set of key information to the matching source code files or snippets therein as collected in the first set of key information, wherein the mapping indicates whether an earlier version of said each matching source code snippet exists in the first set of key information; and based on the mapped first set of key information and second set of key information, determining a software composition of the target source code.