Condition-based maintenance for multi-component systems: Modeling, structural properties, and algorithms. (2nd January 2021)