Describir: Patterns of object-oriented software component documentation