Dynamically Evolvable Dependable Software: From Oxymoron to Reality