Different companies have different naming conventions. The ordering you have is valid for those names. Most of the time, a company has more titles so they can promote you more times.
When the same company uses all three, software engineer is higher than developer and developer is higher than programmer. The titles are supposed to show higher order skills. However there is a lot of title inflation and a "senior developer" could only have three years experience. Which means you need a new title for the real senior people.