1. CAPITULO 7
DIAGRAMA DE PAQUETES
Este método se baso en la descomposición de funciones, en el cual el sistema en su conjunto se
correlaciona como una función y se dividía en subsunciones, que a su vez se dividían en otras
subsunciones y así sucesivamente, lo cual hacia el sistema como un todo.
Se le llama paquete, a la idea de agrupar las clases en unidades de nivel mas alto, esta idea se
aplicó mas a el método orientado a objetos.
El termino diagrama de paquetes se aplica para indicar un diagrama que muestra los paquetes de
clases y las dependencias entre ellos. Los paquetes y las dependencias son elementos de un
diagrama de clases, por lo cual un diagrama de paquetes es solo una forma de un diagrama de
clases.
Existe dependencia entre dos elementos si los cambios a la definición de un elemento pueden
causar cambios al otro. En las clases, la dependencia puede darse por: una clases envía un mensaje
a otra; una clase tiene a otra como parte de sus datos; una clase se menciona a otra como
parámetro para una operación.
El diagrama muestra como está estructurado el sistema. Cada paquete puede contener otros
paquetes o clases, que tienen interfaces y realizan cierta funcionalidad
También se pueden mostrar algunas clases dentro de los paquetes, así como las relaciones de
dependencia de estas clases con otras clases o paquetes
Existe una dependencia entre dos paquetes si existe algún tipo de dependencia entre dos clases
cualquiera en los paquetes.
La diferencia entre dependencia de paquetes y de compilación esta en que la dependencia de
paquetes no es transitiva.
Trazar una dependencia con un paquete que contenga subpaquetes:
2. Que es lo que se ve, si se tiene una dependencia hacia un paquete? Se ven todas las clases
publicas del paquete y todos sus métodos públicos. Bajo el esquema de visibilidad de c++, esto
causa un problema ya que se quiere que una clase que contenga métodos que pueden ser vistos
por otros objetos dentro del mismo paquete, pero no por objetos que pertenezcan a otros
paquetes. Una técnica eficaz aquí es reducir aun mas la interfaz del paquete exportando un
pequeño subconjunto de las operaciones asociadas con las clases del paquete.
Los paquetes no dan respuestas sobre la manera de reducir las dependencias en el sistema, pero si
ayudan a ver cuales son las dependencias, y solo se puede efectuar para reducirlo.
Los diagramas de paquete son, una herramienta clave para mantener el control sobre la estructura
global de un sistema.
IU
Captura
de pedidos
AWT IU
Lista
De correo
Aplicación de
Captura
de pedidos
Aplicación lista
de correo
paquete dependencia
Pedidos Clientes
3. IU
Captura
de pedidos
AWT IU
Lista
De correo
Aplicación de
Captura
de pedidos
Aplicación lista
de correo
paquete dependencia
Pedidos Clientes
dominio
Interfaz con
Oracle
Interfaz con
Sybase
Interfaz con
base de datos
4. Un diagrama de paquetes muestra cómo un sistema está dividido en agrupaciones lógicas
mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está
pensado como un directorio, los diagramas de paquetes suministran una descomposición de la
jerarquía lógica de un sistema.
Los Paquetes están normalmente organizados para maximizar la coherencia interna dentro de
cada paquete y minimizar el acoplamiento externo entre los paquetes. Con estas líneas maestras
sobre la mesa, los paquetes son buenos elementos de gestión. Cada paquete puede asignarse a un
individuo o a un equipo, y las dependencias entre ellos pueden indicar el orden de desarrollo
requerido.
Un paquete es un mecanismo utilizado para agrupar elementos de UML, permite organizar los
elementos modelados con UML, facilitando de ésta forma el manejo de los modelos de un sistema
complejo
Define un espacio de nombres:
Dos elementos de UML pueden tener el mismo nombre, con tal y estén en paquetes distintos, en
este sentido, son similares a los namespacesen C++ o a los paquetes en Java. Los paquetes pueden
ser simples estructuras conceptuales o pueden estar reflejados en la implementación. Permiten
dividir un modelo para agrupar y encapsular sus elementos en unidades lógicas individuales. En
general, pueden tener una interfaz (métodos de clases e interfaces exportadas) y una realización
de éstas interfaces (clases internas que implementan dichas interfaces)
Los paquetes pueden estar anidados unos dentro de otros, y unos paquetes pueden depender de
otros paquetes. Se pueden utilizar para plantear la arquitectura del sistema a nivel macro.
El diagrama muestra como está estructurado el sistema. Cada paquete puede contener otros
paquetes o clases, que tienen interfaces y realizan cierta funcionalidad.
Con los paquetes se puede aplicar la generalización. Significa que el paquete específico debe
conformarse a la interfaz del paquete general. Esto es comparable con la perspectiva de
especificación de la subtipificación de los diagramas de clases. La generalización implica
dependencia del subtipo. El poner las clases abstractas en un paquete de supertipo es una buena
forma de romper ciclos en la estructura de dependencias. La generalización permite poner la
interfaz disparadora necesaria en el paquete de interfaz con la base de datos.
Cuando utilizar los diagramas de paquetes
Úselos siempre que un diagrama de clases que abarque todo el sistema ya no sea legible en una
hoja tamaño A4.
Se querrá mantener las dependencias al mínimo, ya que ello reduce el acoplamiento. Sin embargo
la heurística de esto no esta bien comprendida. Los paquetes son especialmente útiles para las
5. pruebas, hacer pruebas unitarias en el nivel de paquete por paquete. Cada paquete deberá tener
una o mas clases de pruebas que verifiquen su comportamiento.