you have an infrastructure, that allows you to build components upon.( by giving ijava elements) . the assumption here that you will have one visualization for each java element .
if you decide to us one to many mapping you will need some extra info in c2 to store that information , i.e through a wrapper that has a string bucket and composite ijava element.
problem : if you wanna allow users to drag elements they will be dragging wrappers instead of java elements, this means you extract the layer, i.e you give it the element when its try to be moved ( like you have th gui widget and you wanna drag the elements out ) . this will require that you will have access to the methods of the wrapper .
Lecture : Component based software engineering :
The 2 communities of software arch , and the reused components have been separated for he past x years .
what is a software component :
- explicit required interface (as opposed to implicit of objects)
- interchangeable , unit of composition .
- implementation , independently developed and delivered
Os's are not great for component systems .
Basic elements of a component model:
- interfaces: The model also provides ad infrastructure, and also for the componenet.
- Meta Data:(java reflection)
- Interoperability: if the components form different vendors are allowed to speak to each other.
- Customization: properties files , localizations.
- Composition: method calls , and requests , events
- Evolution support : some versioning is needed .
- packaging and development: raw , binary , jar ...dlls ?
contracts: add more specifications to interfaces
are object components ?
can be components in some cases
java object --> infrastructure is JVM,
C++ object --> OS
stateless Vs stateful components ?
doesn't matter in most cases, unless you are working with specific scenarios
if you have tow components that are talking to each other, means that they are 2 instances of the same component template .
framework for specific stuff like charting , db ... but patterns are more general !
Construct ---> component -----> reason
c-macro / no / install
html pages / ( depends on of its static or it has specific information)