Reducing Software Architecture Models Complexity: A Slicing and Abstraction Approach