Viewpoints: principles, problems and a practical approach to requirements engineering