This pattern outlines CBSE (Component based Software engineering) or Component Oriented programming (COP) process for building RIA, which is identical to component-based engineering for design and development of physical products such as automobile and computers.
To understand the pattern, it is important to understand
(i) Component Based Engineering (CBE for physical products) and
(ii) Essential characteristics of the components for physical products and building software components having properties comparable to physical components.
The following webpage briefly summarizes the two important stages of CBE (component-based engineering) for the physical products:
The following webpage provides a simple example for software components, which possess properties comparable to the properties of physical components:
The following webpage defines couple of terms and unique meaning in the context of COP:
One must be cautious and notice that our definition for component is different than many other’s definition for software components. For example, most definitions for software component revolve around reusability (or distributed). But our components are custom designed (hence may not be reusable but loosely coupled objects), which must be easily replaceable (just like the components for physicals products).
A sample scenario for creating an RIA (Rich Internet Application) using COP:
Please notice each of the component is custom designed for the application (hence likely not reusable) but very easily replaceable.
Almost every physical product satisfies 20% rule, if it is built using CBE. Hence any software application built using COP must satisfy 20% rule:
All such products offers outstanding “division of labor” to refine each component independently. Since there is very little accidental wasteful dependencies between the components, such products rarely require re-factoring at component assemble level.