Formal transformation methods for automated fault tree generation from UML diagrams