Data-Driven Diagnostics And Prognostics For Complex Systems: Methods And Applications