Bridging the Gap between Requirements Engineering and Software Architecture