Existing software development approaches construct component model in an unstructured and informal way, and the dependencies among components are implicit and lack rigorous semantic. They don’t support top-down component reuse effectively. This paper tries to address these problems by using category theory to define the links between components, so that the links between components and the link compositions have rigorous meaning. The morphism composition is used to trace the relationships between components at different abstraction levels, and the architecture design pattern is used to define component composition and constrains precisely. Category theory supports the diagrammatic representation of component model that visualizes the relationships between components and the structural feature. The constructed component model is understandable, traceable, and hence reusable. Formal component modeling approach is suitable to the software development for reuse.