software architecture: a comprehensive framework and guide for practitioners pdf