Natural orders only work for the objects that implements the java.lang.Comparable interface.
In your case
java would have no idea how to sort your object?
based on software,version,serialno? No it has no idea how to sort user object unless you tell java how want to sort your object using Comparable interface.
lets say you want to sort your object nbased on serial version then the code would be like this.
compareTo return 0,1,-1 based on the comparison.
See the API for comparable interface.
Since String,Wrapper classes already implemented Comparable interface you can directly use them to sort but your own class does not implement the Comparable interface,so you have to tell java how do you want your object to be sorted out. in this case using version no.
hope it helps you.