PDF de programación - INGENIERÍA DEL SOFTWARE I - Tema 11 - Arquitectura Lógica del Sistema (en desarrollo OO)

Imágen de pdf INGENIERÍA DEL SOFTWARE I - Tema 11 - Arquitectura Lógica del Sistema (en desarrollo OO)

INGENIERÍA DEL SOFTWARE I - Tema 11 - Arquitectura Lógica del Sistema (en desarrollo OO)gráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.101 visualizaciones desde el 14 de Enero del 2017
2,0 MB
22 paginas
Creado hace 14a (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
  • Links de descarga
http://lwp-l.com/pdf1072

Comentarios de: INGENIERÍA DEL SOFTWARE I - Tema 11 - Arquitectura Lógica del Sistema (en desarrollo OO) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad