Now we have a notion about Componets, because I supposed you read the first post about Components.
Software Component Based is an established are of software engineering.
The Software Component Based doesn’t represent in fact a significant change in how the softwares has been built. In rather than this technology is a attempt to produce new softwares in a good time, with reusability, scalability, all the key words said in the First Post.
Unfortunately, the the lack of agreement among researchers and Universities, technology producers and consumers about what is a component and how the components can be utilized for develop and implements new systems,turns it difficult the advances of this technology.
For example, about the definition of Software Component, We have a lot of definitions:
A software component is a software building block that conforms to a component model. A Component Model defines standards for (i) properties that individual components must satisfy and (ii) methods, and possibly mechanisms, for composing components.
For F. Bachman et. al. the real component definition is:
- an opaque implementation of functionality
- subject to third-party composition
- conformant with a component model
Discussion about component definitions can also be found in many recent conferences and publications [Koza 1999; Parrish 1999; Wang 2000; Yacoub 1999; Fischer2002; Fukazawa 2002]. In the book Component-Oriented Programming(Andy Ju an Wang) we can see:
A software component is a piece of self-contained, self-deployable computer code
with well-defined functionality and can be assembled with other components through
These generic definitions allows the existence of a wide spectrum of components models, which is also happening in reality.However, it makes it more difficult to properly understand the Component-Based(CB) principles. In particular, we can see that the real principles are not clearly explained and formally defined.
Finally, Component-based development has not succeeded in providing standard principles, as for example object-oriented development. The component definition is more general – actually a component is specified through the specification of the component model. The component model itself is not specified.
Volume II: Technical Concepts of Component-Based Software Engineering
C. Szyperski Components vs. Objects vs. Component Objects