A software system for installation on computing apparatus (and a method of
installing such a software system on computing apparatus), wherein the
software system is provided in the form of a software package including a
plurality of software components, one or more of the software components
being provided as a plurality of different implementations, the apparatus
including an installation engine for installing the software system only
a selected one implementation of the or each of the software components
having multiple implementations, and a random selector module for
selecting one of the plurality of implementations of a software component
for installation. Thus, software package would still be distributed to
its consumers as a single version but each installation of the package on
a user's computing apparatus is potentially different, which reduce the
risk of faults in and attacks against software components having one or
more "bugs" therein because not all consumers will have the same
implementation of any one software component.