Software is designed with systems and platform dependencies, therefore descriptions of what hardware requirements at a minimum that are required to operate correctly are generally specified. in addition certain software requires the presence of enabling executables for their operation as in Java, Perl, Ruby, Python, etc.