Architecting the problem space: model-based user needs analysis