An ensemble of sparse codes on graphs with trellis constraints is introduced, which contains several classes of concatenated convolutional codes as special cases. Parallel, serial, and hybrid concatenated codes as well as braided convolutional codes are considered. In order to simplify the graph representation, the different trellises are combined to a single self-concatenated trellis. A density evolution recursion for the unified ensemble is derived, which then is used to demonstrate that the thresholds of the original ensembles can be reproduced. The differences between the original code ensembles are reflected in the permutation structure and the amount of feedback in the unified ensemble. This graph representation can lead to a better understanding of the similarities and differences between various code ensembles and the possible trade-offs in the code design.