Bean Internals  «Prev 

Component Object Models and Component-based Software Engineering

Component object models

Just as the assembly line approach to manufacturing during the industrial revolution sparked a whole new level of efficiency, software components are now attempting to dramatically improve the efficiency of software development. A software component is a piece of software isolated into a discrete, easily reusable structure.
Software components are ideally supposed to act as software building blocks that can be easily used and reused together to create applications without reinventing the proverbial wheel over and over. JavaBeans is really just one offering in a long line of software component models, but for a number of reasons it is positioned to be the most promising attempt at providing a practical model.

Component-based Software Engineering

Component-based software engineering (CBSE) is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software.
Software engineering practitioners regard components as part of the starting platform for service-orientation. Components play this role, for example, in web services, and more recently, in service-oriented architectures (SOA), whereby a component is converted by the web service into a service and subsequently inherits further characteristics beyond that of an ordinary component. Components can produce or consume events and can be used for event-driven architectures.