Describir: Domain engineering for software reuse