Software prototyping by progressive annotation