Using CASL to Specify the Requirements and the Design: A Problem Specific Approach