Software Engineering for Resilient Systems