Software as an evolutionary entity