Applying BCMP multi-class queueing networks for the performance evaluation of hierarchical and modular software systems