1. Diseño Basado en Componentes Curso 2008 / 09
Tabla de contenidos
Diseño Basado en Componentes Introducción a UML
Paquetes en UML
Implementación de interfaces
UML aplicado al Diagramas de componentes
diseño basado en Diagramas de despliegue
componentes Bibliografía
Ingeniería Informática
Universidad Carlos III de Madrid
Diseño Basado en Componentes
Curso 2008 / 09 2
Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Introducción a UML. Elementos
Introducción a UML. Definición e historia principales (i)
UML es un lenguaje gráfico y formal para el modelado de Cosas – representan distintos aspectos del
sistemas. modelo:
– Visualizar, especificar, construir y documentar los artefactos de – Estructura: son los “sustantivos” de UML, tales como
un sistema. clase, interfaz, atributo, componente, nodo...
– Lenguaje, no método – ligado a USDP, pero sirve para otros – Comportamiento: son los “verbos” de UML, tales
métodos.
como acción, actividad, interacción, estado,
– Orientado a objetos – toma sus conceptos de los lenguajes OO. mensaje...
Origen histórico. – Agrupamiento: son los paquetes, que se usan para
– Antes de 1994: la “guerra de los métodos”. agrupar elementos relacionados semánticamente en
– 1994: Booch y Rumbaugh en Rational – 1995: Jacobson se unidades coherentes.
les une. – Anotación: son las “notas”, que pueden añadirse en
– 1997: primera versión estándar certificada por el OMG. cualquier parte del modelo para capturar información
no gráfica.
3 4
1
2. Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Introducción a UML. Elementos Introducción a UML. Elementos
principales (ii) principales (iii)
Relaciones – representan conexiones entre las Modelado de requisitos Diagrama de casos de uso
cosas:
Diagrama de clases
– Asociación Modelado estático
– Dependencia Diagrama de objetos
– Generalización Colaboración
– Otros: include y extend Interacción
Secuencia
Mecanismos de extensión: estereotipos, Modelado dinámico
valores etiquetados (tagged values) y Diagrama de estados
restricciones (constraints). Diagrama de actividad
Diagramas – representan un conjunto de cosas
Diagrama de componentes
y relaciones. Modelado físico
Diagrama de despliegue
5 6
Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Paquetes en UML (i) Paquetes en UML (ii)
Sirven para organizar los elementos de un
modelado en diferentes grupos (incluidos los Cada paquete constituye un “espacio de
diagramas). Podrían darse estructuras
recursivas, donde un paquete incluye otro nombres”: unicidad de nombres (no se permiten
paquete. dos elementos del mismo tipo con el mismo
También sirven para organizar modelos nombre).
grandes, agrupar elementos relacionados o Se pueden incluir dependencias entre paquetes
crear namespaces.
para indicar que el contenido de uno de ellos
Concepto clave: “Fuerte cohesión interna y
bajo acoplamiento externo” (mostrar). necesita de algún modo parte del contenido del
Un paquete puede ser incluido en cualquier tipo otro paquete.
de diagrama y, a su vez, puede contener
también otros diagramas.
7 8
2
3. Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Paquetes en UML. Visibilidad Paquetes en UML. Accesibilidad (i)
El nombre completo cualificado de un elemento x
que resida dentro del paquete Pq1 es: Pq1::x Para que un elemento de un paquete tenga
acceso (permisos) a otro elemento de otro
Los elementos de un paquete pueden tener
paquete se debe crear una relación entre ambos
visibilidad pública (+), privada (-) o protegida (#).
paquetes.
Un elemento de un paquete puede referenciar:
Se debe tener este tipo de permiso por ejemplo,
– Elementos públicos de cualquier paquete al que tenga
para crear una asociación entre dos elementos
permisos: nombre cualificado (P::A).
de distintos paquetes, o para definir el tipo de
– Elementos (incluso privados) de su paquete, o
cualquier paquete que incluya al suyo. dato de un atributo.
– Elementos protegidos de sus paquetes padre (relación
de generalización).
9 10
Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Paquetes en UML. Accesibilidad (ii) Paquetes en UML. Accesibilidad (iii)
Las relaciones de permiso son: Las relaciones de permiso no son simétricas ni
– <<import>>: Incorpora el espacio de nombres de un transitivas.
paquete a otro (ojo a duplicados). No hace falta – Pq1 puede acceder al contenido público de Pq2 y Pq2
cualificar nombres. Puede darse un alias a cada al de Pq3 pero:
elemento importado y definir una nueva visibilidad. Pq2 no puede acceder a ningún contenido de Pq1.
– <<access>>: permite acceder al espacio de nombres Pq1 no puede acceder a ningún contenido de Pq3.
de otro paquete sin llegar a incorporar sus elementos.
Los elementos accedidos se indican con su nombre
cualificado.
P Pq1 Pq2 «import» Pq3
«import»
«import»
R -S
+Q
11 12
3
4. Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Paquetes en UML. Accesibilidad (iv) Paquetes en UML. Generalización (i)
Debido a que no son simétricas, la siguiente asociación UML define el concepto de generalización entre
es poseída por el paquete de la izquierda, y sólo puede paquetes.
ser navegable en el sentido A B.
Conceptos como “principio de sustitución” y
visibilidad también son utilizados a nivel
paquete.
Un contenido también puede ser sobrescrito en
«Import»
un paquete hijo.
ClaseA ClaseB
El paquete hijo hereda los contenidos públicos y
protegidos del padre, incluyendo los contenidos
importados (no accedidos por el padre).
13 14
Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Paquetes en UML. Generalización (ii) Paquetes en UML. Tipos de paquetes (i)
Según el metamodelo de UML,
existen dos tipos especiales de Pac k ag e
paquetes
GUI
Modelo (raíz): sirve para
+Ventana
+Formulario
representar el primer nivel de
#GestorEventos agrupamiento. Otros modelos
-Evento
pueden ser utilizados para mostrar
un contenido desde distintos Su bsystem Mod el
puntos de vista. isInstantiable : Boolean
GUI Win Subsistema: sirve para
+GUI::Ventana GUI MAC
descomponer un sistema completo
+Formulario
#GUI::GestorEventos
a un elevado nivel de abstracción.
+VBForm También es un tipo de clasificador,
por lo que puede proporcionar
interfaces y definir operaciones
(servicios) de alto nivel.
15 16
4
5. Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Paquetes en UML . Tipos de paquetes (ii) Implementación de Interfaces (i)
Subsistema: Subsistema1
Realization elements
Una interfaz (<<interface>>) es una colección de un
– Puede ser mostrado con tres Funcion1(parm1: string): boolean
Clase1 conjunto de operaciones que se utiliza para especificar
Funcion2()
compartimentos:
un servicio de una clase o componentes.
Operaciones: se implementarán Specification Elements
mediante una clase pública del UC1 Colaboracion
Una interfaz no puede tener atributos ni asociaciones
subsistema. Son los servicios del
subsistema.
UC2
navegables.
Elementos de especificación: casos de Separan la especificación de una funcionalidad de su
uso e interfaces que se muestran al
exterior ocultando su verdadera implementación.
realización. La realización de una interfaz es una dependencia con
Elementos de realización: contiene los
elementos que realizan los casos de el estereotipo <<realize>>.
uso, o las clases que implementan las
operaciones del subsistema.
Una interfaz puede ser vista en su forma de icono (un
– Son el origen de los futuros círculo) o su forma extendida incluyendo sus
componentes. operaciones.
17 18
Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Implementación de Interfaces (ii) Implementación de Interfaces (iii)
UML 1.X UML 2.X
<<realize>>
19 20
5
6. Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Diagramas de componentes (i) Diagramas de componentes (ii)
Definición de componente:
Filosofía: “Alta cohesión interna, bajo
– Un componente es una unidad de ‘despliegue’
independiente. acoplamiento externo”.
– Un componente podría ser utilizado por cualquier Las interfaces implementadas o utilizadas por
organización sin necesidad de ningún conocimiento un componente son realmente utilizadas y/o
previo.
implementadas por su contenido.
– Un componente no tiene estado persistente en sí
mismo, lo tienen (opcionalmente) sus objetos. Unos componentes hacen uso de otros. Esto se
– Implementa una serie de interfaces y utiliza otras. denota mediante una relación de dependencia.
– Encierran otros elementos de modelado como por Para bajar el acoplamiento, no se hace que un
ejemplo clases, permitiendo a otros componentes
acceder a ellos. componente dependa de otro, sino de una o
– Ejemplos: ficheros fuente, controles ActiveX, varias de sus interfaces.
21 JavaBeans, Assemblies .Net, documentos,... 22
Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Diagramas de componentes (iii) Diagramas de componentes (iv)
Diagrama de componentes: UML 2.X
– Representa la estructura física de implementación. Iconic form
– Un componente puede ser un ejecutable, librería dll,
documento...
UML 1.X Iconic Form
Indexer.exe Normalizer.dll
INormalize
Expanded form
dependency realization
Expanded Form
«interface»
lNormalize
Indexer.exe Normalizer.dll
Config( )
getNormal( )
23 24
6
7. Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Diagramas de despliegue (i) Diagramas de despliegue (ii)
Nodo: Diagramas de despliegue:
– Representa una parte física (hardware) de un sistema. – Capturan la topología física del
sistema.
– No tiene porqué ser un elemento computacional, Infra-Red Camera
Ultrasonic Sonar Sensor
podría ser un sensor. – No suelen utilizarse con sistemas <<Processor>>
monolíticos donde sólo se usan Pentium
Pentium
Motherboard
Motherboard
– Sobre cada nodo se ejecutan los distintos periféricos estándar.
componentes del sistema. – Pueden ser vistos de diversas Automatic OCR
∼ ∼
Steering Motor Driving Motor
– Pueden usarse estereotipos para diferencias sus formas:
diferentes tipos y taggedValues para indicar sus Sólo nodos en el diagrama (y sus
cualidades. asociaciones o dependencias).
Nodos con dependencias a sus <<Processor>>
<<Processor>>
<<Processor>>
<<Processor>>
Server
Asociaciones entre nodos: respectivos componentes. Caching Server
Caching Server
Deploys
Deploys
http.exe
http.exe
Server
Deploys
Deploys
dbadmin.exe
dbadmin.exe
tktmstr.exe
– Representan conexiones físicas entre nodos (redes...). Nodos que incluyen dentro sus rting.exe
rting.exe
tktmstr.exe
logexc.exe
logexc.exe
componentes.
25 26
Diseño Basado en Componentes Curso 2008 / 09 Diseño Basado en Componentes Curso 2008 / 09
Diagramas de despliegue (iii) Diagramas de despliegue (iv)
Vista de Metamodelo de UML: En un diagrama de despliegue se pueden incluir
tanto instancias de componentes como
instancias de nodos.
Esto permite diseñar escenarios concretos de
ejecución.
27 28
7
8. Diseño Basado en Componentes Curso 2008 / 09
Bibliografía
UML and the Unified Process (Capítulos 11, 17, Diseño Basado en Componentes
21, 22, 23)
Jim Arlow
Addison Wesley, 2002
Utilización de UML en Ingeniería del Software UML aplicado al
con Objetos y Componentes (Capítulos 13 y 14) diseño basado en
Perdita Stevens
Addison Wesley, 2000
componentes
El Lenguaje Unificado de Modelado
Grady Booch, James Rumbaugh, Ivar Jacobson Ingeniería Informática
Addison Wesley, 1999 Universidad Carlos III de Madrid
29
El Estándar de UML v. 1.5: http://www.omg.org Diseño Basado en Componentes
Curso 2008 / 09
Diseño Basado en Componentes Curso 2008 / 09
Acoplamiento
Alto acoplamiento Bajo acoplamiento
Volver
31
8