This article introduces basic concepts of component based software engineering (CBSE), and clarifies the commonly used terms within the area of CBSE and discusses relations between them. Component-based software engineering is a new, promising, and rapidly growing discipline in academia and industry. The basic concepts in CBSE originate from different areas of software engineering and computer science, such as Object oriented programming, reuse, software architecture, modeling languages, and formal specifications. CBSE is strongly related to new and innovative technologies, but it is also based on a long history of work in modular systems, structured design, and the object oriented approach. CBSE extends these well-established concepts by emphasizing outsourcing of pieces of a systems and the controlled assembly of those pieces through well-defined interfaces. One is witnessing an enormous expansion in using CBSE and have seen that many different concepts, definitions, and specifications lie behind attempts to successfully manage component-based development.