Publicado el 14 de Enero del 2017
1.256 visualizaciones desde el 14 de Enero del 2017
2,0 MB
22 paginas
Creado hace 15a (08/12/2009)
INGENIERÍA DEL SOFTWARE I
Tema 11
Arquitectura Lógica del Sistema
(en desarrollo OO)
Univ. Cantabria – Fac. de Ciencias
Francisco Ruiz y Patricia López
Objetivos del Tema
• Conocer las características de los paquetes y los
diagramas de paquetes.
• Aprender a agrupar elementos de modelado.
• Aprender a realizar vistas arquitecturales de un
sistema empleando paquetes.
• Comprender las relaciones entre los distintos tipos
de modelos y la arquitectura en las principales
metodologías de desarrollo OO.
Francisco Ruiz, Patricia López - IS1
11.2
1
Contenido
• Introducción
• Paquetes
Contenido
Relaciones
Fusión
Tipos Especiales
• Diagramas de Paquetes
Uso de paquetes en diagramas de clase
Consejos
• Modelado
Grupos de Elementos
Vistas Arquitecturales
• Modelos, Arquitectura y Metodologías
Francisco Ruiz, Patricia López - IS1
11.3
Bibliografía
• Básica
Booch, Rumbaugh y Jacobson (2006): El Lenguaje
Unificado de Modelado. 2ª edición.
Cap. 12.
Rumbaugh, Jacobson y Booch (2007): El Lenguaje
Unificado de Modelado. Manual de Referencia. 2ª edición.
Cap. 11.
• Complementaria
Miles y Hamilton (2006): Learning UML 2.0.
Cap. 13.
Francisco Ruiz, Patricia López - IS1
11.4
2
Introducción
• Modelar sistemas medianos o grandes conlleva manejar una
cantidad considerable de elementos de modelado (clases,
interfaces, componentes, nodos, relaciones, diagramas).
A partir de un cierto tamaño, es necesario organizar estos elementos
en bloques mayores.
La mejor forma de comprender un sistema complejo es agrupando las
abstracciones en grupos
Se agrupan aquellos elementos relacionados entre sí de acuerdo a algún
criterio.
• En UML las abstracciones que permiten organizar un modelo
se llaman paquetes.
Francisco Ruiz, Patricia López - IS1
11.5
Paquetes
• Un paquete es un mecanismo de propósito general para organizar un
modelo de manera jerárquica.
Cada paquete establece un espacio de nombres (namespace).
• Utilidades principales:
Organizar los elementos en los modelos para comprenderlos más fácilmente.
Controlar el acceso a sus contenidos para controlar las líneas de separación
de la arquitectura del sistema.
• Son un mecanismo importante para gestionar la complejidad del
modelado.
• Son completamente diferentes a las clases:
Las clases son abstracciones de aspectos del problema o la solución.
Los paquetes son mecanismos para organizar, pero no tienen identidad (no
puede haber instancias de paquetes).
Francisco Ruiz, Patricia López - IS1
11.6
3
Paquetes
• Notación: Carpeta
• Nombre
Unívoco
Simple o Calificado
(precedido por el
nombre del otro
paquete en que se
encuentra, separados
por “::”).
Francisco Ruiz, Patricia López - IS1
11.7
Paquetes
• Existen varias maneras de representar gráficamente el
contenido de un paquete.
Sin especificar su contenido => El nombre aparece en la carpeta
Notación interna: incluyéndolo dentro de la carpeta => El nombre
aparece en la pestaña
Notación externa: poniéndolo fuera y relacionado con el paquete
mediante un símbolo “+” envuelto en un círculo => El nombre en la
carpeta
Francisco Ruiz, Patricia López - IS1
11.8
4
Paquetes - Contenido
• Un paquete puede contener diferentes tipos de elementos como
clases, interfaces, componentes, nodos, colaboraciones, casos de uso
e incluso otros paquetes.
• Los paquetes bien diseñados agrupan elementos cercanos
semánticamente:
Fuertemente cohesionados
Débilmente acoplados
• Entre un paquete y sus elementos existe una relación de composición
=>
Cada elemento del modelo pertenece a un único paquete (aquel en el
que es declarado)
aunque puede ser referenciado desde otros.
Si el paquete se destruye, todos los elementos que contiene son
también destruidos.
Francisco Ruiz, Patricia López - IS1
11.9
Paquetes - Contenido
• Un paquete forma un espacio de nombres (namespace):
No puede haber dentro de un paquete dos elementos del mismo tipo
– si de tipos diferentes – con el mismo nombre.
No puede haber dos clases Lista en el mismo paquete.
P1::Lista y P2::Lista son elementos diferentes en paquetes diferentes (P1
y P2).
Sí puede haber una clase Logger y un componente Logger.
• En UML, cuando se referencia una clase desde un paquete externo
hay que utilizar el nombre completo cualificado => Indicando el
namespace (paquete) al que pertenecen
Entre clases que pertenecen al mismo paquete no es necesario
Francisco Ruiz, Patricia López - IS1
11.10
5
Paquetes - Contenido
• Los paquetes pueden contener a otros paquetes (se forman
jerarquías de paquetes).
Los paquetes anidados tienen acceso al espacio de nombres del
paquete que los contiene.
No hace falta cualificar los nombres
No recomendable más de 3 niveles.
UML asume que existe un paquete raíz anónimo (root).
Cuidado: En Java los elementos de un paquete anidado no tienen
visibilidad directa sobre los elementos del paquete contenedor
Francisco Ruiz, Patricia López - IS1
11.11
Paquetes - Contenido
•
•
Los paquetes controlan la visibilidad de los elementos que contienen:
+ Público
Disponibles fuera del paquete contenedor.
•
El acceso desde un paquete externo es siempre con nombre cualificado.
- Privado
No disponibles fuera del paquete contenedor
No son posibles el resto de visibilidades (package o protected)
Francisco Ruiz, Patricia López - IS1
11.12
6
Paquetes - Relaciones
• Las dependencias entre paquetes denotan que
algún elemento de un paquete depende de los
elementos en otro paquete.
GestionCurso
matricula(alumno:Almacenamiento::Alumno)
Dominio
GestionCurso
Almacenamiento
Alumno
Francisco Ruiz, Patricia López - IS1
11.13
Paquetes - Relaciones
• Entre paquetes puede haber tres tipos de relaciones
de dependencia:
Importación: modelado como una dependencia
estereotipada con <<Import>>
Acceso: modelado como una dependencia estereotipada
con <<Access>>
Exportación: modelado implícitamente a través de la
visibilidad pública en los elementos de un paquete
No se exporta explícitamente a algún paquete.
Se pone público, para que cualquier otro paquete pueda
importarlo.
Francisco Ruiz, Patricia López - IS1
11.14
7
Paquetes - Relaciones
• Exportación
La parte pública de un paquete son sus exportaciones.
Francisco Ruiz, Patricia López - IS1
11.15
Paquetes - Relaciones
• ¿Importación o Acceso?
Ambas indican que:
El paquete origen tiene acceso al contenido del destino
El contenido público del paquete destino se añade al espacio de nombres
del paquete origen =>
• No hay que calificar los nombres de los elementos importados
• Cuidado: Posibilidad de colisión
<<import>> añade los elementos públicos del paquete destino al
espacio de nombres público del origen (paquete importador).
<<access>> añade los elementos públicos del destino al espacio de
nombres privado del origen.
• No se pueden reexportar los elementos importados si un tercer paquete
importa el origen.
Ambas son transitivas.
Francisco Ruiz, Patricia López - IS1
11.16
8
Paquetes - Relaciones
• Ejemplo de Importaciones y Accesos entre paquetes.
Los elementos en Types son importados a ShoppingCart.
Los elementos en Types son importados también a WebShop (por
transitividad).
Los elementos de Auxiliary sólo son accedidos desde ShoppingCart y,
por tanto, no pueden usarse sin calificar desde WebShop.
Francisco Ruiz, Patricia López - IS1
11.17
Paquetes - Relaciones
Import
vs
Access
Francisco Ruiz, Patricia López - IS1
11.18
9
Paquetes - Relaciones
• También se pueden importar o acceder elementos de un
paquete en vez de paquetes completos.
Se puede asignar un alias a un elemento importado/accedido.
El tipo Types:Real está disponible en el
paquete Shapes con el nombre Double.
Francisco Ruiz, Patricia López - IS1
11.19
Paquetes – Fusión
• Una relación de fusión (merge) entre dos paquetes
especifica que el contenido del paquete origen (receptor) se
extiende con el contenido del paquete destino.
Es necesario un mecanismo para fusionar los contenidos de ambos
paquetes:
Resuelve los conflictos de nombres mediante especialización y
redefinición.
Es bastante complicado.
Se define mediante restricciones (precondiciones para realizar la fusión) y
transformaciones (postcondiciones después de la fusión).
Físicamente, en el repositorio de modelos no se produce ningún
cambio en los paquetes.
Francisco Ruiz, Patricia López - IS1
11.20
10
Paquetes – Fusión
• Significado conceptual de una relación <<merge>>.
UML
Francisco Ruiz, Patricia López - IS1
11.21
Paquetes – Fusión
• Ejemplo.
Resultado
Francisco Ruiz, Patricia López - IS1
11.22
11
Paquetes – Tipos Especiales
• Todos los mecanismos de extensibilidad pueden ser aplicados
a paquetes
Con frecuencia se añaden estereotipos y valores etiquetados para
incorporar nuevas propiedades a los paquetes.
• Existen varios estereotipos que definen nuevas categorías
de paquetes (además del ya conocido “profile”):
<<framework>>: Contiene elementos reusables como clases,
patrones y plantillas que definen una arquitectura aplicable a un
sistema.
<<modelLibrary>>: Contiene elementos de modelado que pueden
ser reutilizados por diferentes modelos.
Francisco Ruiz, Patricia López - IS1
11.23
Paquetes – Tipos Especiales
• En UML 2, un modelo
Comentarios de: INGENIERÍA DEL SOFTWARE I - Tema 11 - Arquitectura Lógica del Sistema (en desarrollo OO) (0)
No hay comentarios