Engineering Software as a Service: An Agile Approach Using Cloud Computing