There is more to software life cycle than just software development. Software development happens once, then evolution takes up the bulk of the software life cycle. In this presentation, I will talk about some approaches needed to deal with legacy systems. This is to aid their update to new business and maintenance requirements in addition to their upgrade to continuous new technologies. Service oriented architecture will be presented to support software evolution in this fast, ever changing environment. Moreover, cloud computing that enables ubiquitous and on demand access to computing resources will be examined. Applied research, such as in health care and M2M domains, involving these innovative technologies will be presented to illustrate their benefits to the advancement of software engineering.