Putting the Parts Together - Concepts, Description Techniques, and Development Process for Componentware