Software is expected to be adaptable, as in they’re able to evolve over time in response to changing conditions in which they’re used. Programs are expected to last for many years past their initial release and deal with changes that are expected (like an increase in computational resources) or unexpected.