This thesis develops a methodology to determine an optimal policy for maintaining a satellite constellation that degrades over time. Previous work has developed a methodology to compute an optimal replacement policy for a satellite constellation in which satellites were viewed as binary entities, either operational or failed. This research extends the previous models by developing an optimal maintenance policy for satellite constellations in which each satellite may operate in a finite number of degraded states. The constellation is assumed to consist of a finite number of satellites, each with a finite number of functions with distinct failure mechanisms. Assuming each function lifetime is exponentially distributed, the stochastic degradation process is modelled as a discrete-time Markov chain. The degradation process is subsequently used to formulate an optimization problem as a finite planning horizon Markov decision process in which the total expected loss of utility is minimized. The maintenance actions considered include on-orbit repairs and satellite replacements, each of which has an associated level of risk. Numerical examples are presented to illustrate the model, and a parametric sensitivity analysis is performed using tional data to determine conditions for which the resulting policy consists of only replacements, only on-orbit repairs, or mixtures of replacements and on-orbit repairs.