To this day, continuous developments of technical systems and increasing reliance on equipment have resulted in a growing importance of effective maintenance activities. During the last couple of decades, a substantial amount of research has been carried out on this topic. In this study, we review more than two hundred papers on maintenance modeling and optimization that have appeared in the period 2001 to 2018. We begin by describing terms commonly used in the modeling process. Then, in our classification, we first distinguish single-unit and multi-unit systems. Further sub-classification follows, based on the state space of the deterioration process modeled. Other features that we discuss in this review are discrete and continuous condition monitoring, inspection, replacement, repair, and the various types of dependencies that may exist between units within systems. We end with the main developments during the review period and with potential future research directions.