principio comÚn de la reutilizaciÓn.docx

3
Para tener en cuenta… [http://jms32.eresmas.net/web2008/documentos/informatica/ documentacion/logica/OOP/Principios/ 2012_09_04_PDOOPrincipioDisenyo_Indice.html ] PRINCIPIOS REFERIDOS A MÓDULOS (LIBRERÍAS) Cohesión Principio de Equivalencia entre Reutilización y Liberación (REP – Release Reuse Equivalency Principle) Principio de Cierre Común (CCP – Common Closure Principle) Principio de Reutilización Común (CRP – Common Reuse Principle) Acoplamiento Principio de Dependencias Acíclicas (ACP – Acyclic Dependencies Principle) Principio de Dependencias Estables (SDP – Stable Dependencies Principle) Principio de Abstracción Estable (SAP – Stable Abstractions Principle) [http://biblioteca.usac.edu.gt/tesis/08/08_0476_CS.pdf ] TENSIÓN ENTRE LOS PRINCIPIOS DE COHESIÓN DE PAQUETES Esos tres principios son mutuamente exclusivos. No pueden ser satisfechos simultáneamente. Esto es debido a que cada principio beneficia a diferente grupo de gente. El Principio de equivalencia reutilización / publicación y el principio de reutilización común hacen la vida fácil a los reutilizadores, en tanto que el principio de cierre común hace la vida más fácil a los mantenedores. El PCC se esfuerza para hacer paquetes tan grandes como sea posible. Después de todo, si todas las clases viven en un solo paquete, entonces

Upload: sebastian-otalora

Post on 30-Dec-2014

66 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: PRINCIPIO COMÚN DE LA REUTILIZACIÓN.docx

Para tener en cuenta…

[http://jms32.eresmas.net/web2008/documentos/informatica/documentacion/logica/OOP/Principios/2012_09_04_PDOOPrincipioDisenyo_Indice.html]

PRINCIPIOS REFERIDOS A MÓDULOS (LIBRERÍAS)

Cohesión

Principio de Equivalencia entre Reutilización y Liberación (REP – Release Reuse Equivalency Principle)

Principio de Cierre Común (CCP – Common Closure Principle) Principio de Reutilización Común (CRP – Common Reuse Principle)

Acoplamiento

Principio de Dependencias Acíclicas (ACP – Acyclic Dependencies Principle) Principio de Dependencias Estables (SDP – Stable Dependencies Principle) Principio de Abstracción Estable (SAP – Stable Abstractions Principle)

[http://biblioteca.usac.edu.gt/tesis/08/08_0476_CS.pdf]

TENSIÓN ENTRE LOS PRINCIPIOS DE COHESIÓN DE PAQUETES

Esos tres principios son mutuamente exclusivos. No pueden ser satisfechos simultáneamente. Esto es debido a que cada principio beneficia a diferente grupo de gente.

El Principio de equivalencia reutilización / publicación y el principio de reutilización común hacen la vida fácil a los reutilizadores, en tanto que el principio de cierre común hace la vida más fácil a los mantenedores. El PCC se esfuerza para hacer paquetes tan grandes como sea posible. Después de todo, si todas las clases viven en un solo paquete, entonces solo un paquete cambiará siempre. El PRC trata de hacer paquetes muy pequeños.

Afortunadamente los paquetes no están escritos en piedra. De hecho, es la naturaleza de los paquetes cambiar y modificarse durante el curso del desarrollo. Temprano en un proyecto, los arquitectos pueden preparar la estructura de paquetes de tal manera que el PCC domine y el desarrollo y mantenimiento sea ayudado. Más tarde, en tanto la arquitectura se estabiliza, los arquitectos pueden refactorizar la estructura de paquetes para maximizar el principio de equivalencia reutilización / publicación y el principio de cierre común para reutilizadores externos.

PRINCIPIO COMÚN DE LA REUTILIZACIÓN [PCR]

Page 2: PRINCIPIO COMÚN DE LA REUTILIZACIÓN.docx

Las clases que no se reutilizan juntas no deben mantenerse juntas.

[http://brendan.enrick.com/post/Common-Reuse-Principle.aspx]

Las clases que se utilizan en conjunto se empaquetan juntas.

[http://www.giro.infor.uva.es/oldsite/docpub/Door.pdf]

Este principio indica qué clases deben colocarse dentro de un paquete. Implica que las clases que tiendan a reutilizarse juntas deben permanecer juntas en el mismo paquete.

Las clases rara vez se reutilizan por separado. Generalmente se reutilizan clases que colaboran con otras clases que son parte de la abstracción reutilizable. Según el principio de reutilización común estas clases deben estar juntas en el mismo paquete.

El principio de reutilización común se enuncia como sigue:

Es común que los paquetes tengan una representación física del tipo de bibliotecas compartidas o DLLs. Si se produce una nueva revisión de una DLL porque se ha producido algún tipo de cambio, se redistribuye la DLL y todas las aplicaciones que trabajan con esta DLL trabajarán con la nueva revisión.

Por tanto, cuando se depende de un paquete, se depende de cada una de las clases del paquete. De otro modo, se tendría que revalidar y distribuir más de lo necesario, con el consiguiente aumento de esfuerzo.

[http://biblioteca.usac.edu.gt/tesis/08/08_0476_CS.pdf]

Una dependencia de un paquete es una dependencia de cualquier cosa dentro del paquete. Cuando un paquete cambia, y su número de publicación es afectado, todos los clientes de ese paquete deben verificar que trabajan con el nuevo paquete, aún si nada de lo que usaban dentro del paquete cambió.

Frecuentemente se experimenta esto cuando un vendedor de sistema operativo publica uno nuevo. Se tendrá que actualizar tarde o temprano, debido a que el vendedor no dará soporte a la versión anterior por siempre. Así que aunque nada de interés para nosotros cambió en la nueva publicación, se debe hacer el esfuerzo de actualizar y revalidar. Lo mismo ocurre con paquetes si las clases que no son usadas juntas son agrupadas. Los cambios a una clase que no interesa todavía forzarán una nueva publicación del paquete, y aún causarán que se tenga que ir al esfuerzo de actualizar y revalidar

Page 3: PRINCIPIO COMÚN DE LA REUTILIZACIÓN.docx