A decentralized supervisory controller design approach for discrete-event systems (DESs) modeled by automata or formal languages is presented. The controller is designed in order to lead the DES to certain desired marked states, in the sense that, from any state, which is reachable from the initial state, there exists a finite string of events which leads to one of the marked states. The controller design approach is based on overlapping decompositions and expansions. To apply the proposed approach, the automaton of the given DES is first decomposed overlappingly and expanded to obtain disjoint subautomata. Next, a controller is designed for each disjoint subautomaton. These controllers are then combined to obtain a controller for the expanded DES. In the final phase, a controller for the original DES is obtained from the controller determined for the expanded DES. It is proved that this final controller leads the original DES to the desired marked states. The computational complexity of the proposed design approach, relative to the computational complexity of a centralized approach is also discussed.