Study of fault diagnosis software design for complex system based on fault tree