Component-based software development is an emerging field in software engineering aims toward the cost effective development of composite components or a complete system by reusing pre-built components or subsystems that are perhaps stored in a repository. In this paper the techniques of current software model such as objects and classes in object-oriented programming language and architecture models have been studied and hence coming up with the rationale of using a component-based software model with a unique property of compositionality and encapsulation as contrarily to what happens in the current component models.