|
*** Documento en elaboración *** v191
Los componentes interactúan entre si usando referencias a sus
interfaces.
El uso de interfaces permite el reemplazo de un componente por otro que provea
la misma interface. Un componente es una parte reemplazable de un sistema.
Topología
Dos componentes vinculados pueden guardar entre si una relación
jerárquica de composición o una relación heterárquica peer-to-peer.
En ambos casos interactúan entre si usando referencias a sus interfaces.
Una heterarquia es una estructura en que los componentes comparten el mismo
nivel jerárquico.
Cada nivel en una jerarquía puede contener grupos heterárquicos.
En una heterarquia un componente puede conectarse e interoperar con cualquiera
de sus pares en su grupo sin necesidad de atravesar u obtener permiso de otros
pares.
Los componentes que interoperan en modo peer-to-peer existen independientemente
y su ciclo de vida esta determinado por lo general por un componente que los
contiene.
Los componentes de una heterarquia conforman un super-componente lógico y
deberían encapsularse en conjunto.
Dependencias
Las conexiones entre componentes implican interdependencias las
cuales deberían ser minimizadas para mantener flexible el sistema.
Lo anterior implica que la cantidad de referencias a interfaces debe
minimizarse.
Dependencias cíclicas
Si el componente A depende del componente B y este, directa o
indirectamente, depende del componente A se esta en presencia de un "dependency
cycle".
Los componentes involucrados en un dependency cycle forman una unidad
indivisible y no pueden ser desarrollados ni probados separadamente.
Los dependency cycles constituyen una forma de "código spaghetti" y el código
debería ser reestructurado para eliminarlos.
|