Bridging the Gap between Requirements Engineering and Software Architecture : A Problem-Oriented and Quality-Driven Method