The Evolution of Software: Past, Present, and Future