system decomposition