A Component Based Infrastructure to Develop Software Supporting Dynamic Unanticipated Evolution