Applying Empirical Software Engineering to Software Architecture: Challenges and Lessons Learned