Applications -- Lessons Learned Applying UML in the Design of Mission Critical Software