A compositional approach for analyzing dependencies in component-based systems