Describir: Mathematical frameworks for component software