SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Componentes con UML
Una forma simple de especificar software basado en
componentes
M.I. Capel
ETS Ingenierías Informática y
Telecomunicación
Departamento de Lenguajes y Sistemas Informáticos
Universidad de Granada
Email: manuelcapel@ugr.es
DSBCS
Máster Universitario en Ingeniería Informática
21 de octubre de 2015
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Índice
1 Especificación de componentes
2 Proceso de creación del Modelo de Información de Interfaz
3 Proceso de creación del MII de Sistema
4 Técnicas de Factorización
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 2/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Índice
1 Especificación de componentes
2 Proceso de creación del Modelo de Información de Interfaz
3 Proceso de creación del MII de Sistema
4 Técnicas de Factorización
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 3/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Índice
1 Especificación de componentes
2 Proceso de creación del Modelo de Información de Interfaz
3 Proceso de creación del MII de Sistema
4 Técnicas de Factorización
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 4/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Índice
1 Especificación de componentes
2 Proceso de creación del Modelo de Información de Interfaz
3 Proceso de creación del MII de Sistema
4 Técnicas de Factorización
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 5/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de SBCs
Contratos en Sistemas Basados en Componentes
Contrato de utilización
Contrato de realización
Especificación de una interfaz
Determinar qué partes la componen y describirlas sin
ambigüedad.
Especificación de un componente
Se trata fundamentalmente de agrupar las interfaces que
implementará e indicar las restricciones que afectan a la
realización del propio componente.
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 6/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Interfaces provistas
Una interfaz de este tipo cumple:
Es implementada por el propio componente o
Es implementada por uno de los objetos del componente o
Es ofrecida por un puerto del componente
Figura: El componente Servicios Meteorológicos implementa la interfaz Pronóstico Tiempo
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 7/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Interfaces requeridas
Una interfaz de este tipo cumple:
Es una dependencia de uso del propio componente
Es una dependencia de uso de uno de los objetos del
componente
Es necesitada por un puerto público del componente
Figura: El componente Servicios Usuario requiere la interfaz ServiciosIOrder
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 8/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Proceso de Especificación de Interfaces
Figura: Especificación de un componente dentro del flujo de trabajos completo en esta etapa
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 9/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de interfaces vs. operaciones
Especificación de operaciones de componentes
Carecen de cualquier información estructural acerca de un
componente
Nivel de descripción inadecuado respecto de la gestión de
dependencias
Especificación de interfaces de componentes
Agrupación de operaciones relacionadas
Dicha agrupación es revisitada en la tarea de factorización
Introducción de subtipado en las interfaces
Pueden incluir sólo 1 operación autocontenida y no
dependiente
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 10/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de operaciones
¿Qué tiene que incluir y qué no la especificación de una
operación?
Descripción de la relación entre las entradas, salidas y el
estado del objeto componente
El efecto que tiene la llamada sobre la anterior relación
¿Qué tiene que garantizar?
Transparencia de las relaciones del objeto componente
con otros
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 11/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de operaciones II
Elementos de la especificación:
Los parámetros de entrada y salida
Las restricciones que sean de aplicación
Cualquier cambio de estado resultante en el componente
Figura: Efecto de la operación IHotelMgt::makeReservation() en parte del estado del componente
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 12/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de interfaces I
Características del modelo:
Suficiente para permitir la especificación de las
operaciones de la interfaz
Así como restricciones y efectos sobre el estado del
componente
Descripción de cambios del estado como resultado de las
operaciones
Se construirá incrementalmente conforme se elabora la
especificación de las operaciones especificaciones de las
operaciones, añadiendo tipos, atributos, etc.
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 13/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de interfaces II
Condiciones que respetará el modelo de especificación:
Las interfaces sólo son asociadas a información tipada
Sólo contendrán información del conjunto de estados
propios de ese componente
Nunca pueden dar información sobre implementación
estado del componente
Tampoco sobre su persistencia
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 14/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Modelo de Especificación de Interfaz
Representación del estado del objeto componente del que
depende la interfaz
Necesidad de un Modelo de Información de Interfaz (MII)
Figura: Diagrama previo al modelo de especificación de la interfaz ICustomerMgt
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 15/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Modelo de Información de Interfaz (MII)
Discusión del ejemplo ICustomerMgt
Customer es una Información con Tipo
Los tipos de una interfaz no pueden mantener
asociaciones con nada fuera del modelo
Ubicación en el mismo paquete que la interfaz
Salvo subtipos heredados entre interfaces, los tipos no se
comparten pero se pueden importar
Figura: Ejemplo de herencia de tipos después de una factorización de interfaces
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 16/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Pre y postcondiciones
Cada operación posee una pre y poscondición asociada,
que especifican con detalle qué hará la operación
No proporcionan información algorítmica o de
implementación
Actúan como la letra pequeña de un contrato con el cliente
Precondición: la condición que garantiza que la ejecución
de la operación hará cierta la poscondición
La llamada de la operación aludida es totalmente
independiente del valor de certeza de su precondición
Cualquier suposición respecto de la ejecución de las
operaciones es responsabilidad del cliente
Las garantías contractuales (poscondición) son
responsabilidad del proveedor de la operación
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 17/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
OCL
Definición
Object Constraint Language es un lenguaje declarativo que
permite construir expresiones lógicas y sirve, por ejemplo, para
especificar condiciones contractuales en la especificación de
interfaces de componentes software
Expresiones OCL de pre y poscondiciones semánticamente
correctas
Se pueden referir a los parámetros, resultado de las
operaciones y al estado del objeto componente
No se pueden referir a elementos de otras interfaces
La especificación de interfaces sólo afectan localmente
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 18/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Expresiones con OCL
Especificación OCL de operación de cambio de nombre
1 context ICustomerMgt : : changeCustomerName ( in cus : CustId , in
newName: String )
2
3 pre :
4 −−cus es un i d e n t i f i c a d o r valido de c l i e n t e
5 customer−>exists ( c | c . id = cus )
6 post :
7 −−el nombre del c l i e n t e cuyo i d e n t i f i c a d o r es ’ cus ’ se
convierte en ’newName ’
8 customer−>exists ( c | c . id = cus and c .name = newName)
’customer’ se refiere al conjunto de clientes asociados a un
objeto-componente de soporte: ICustomerMgt
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 19/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Expresiones con OCL (II)
Especificación de operación para obtener detalles de un cliente
1 context ICustomerMgt : : getCustomerDetails ( in cus : CustId ) :
CustomerDetails
2 pre : −−cus es un i d e n t i f i c a d o r valido de c l i e n t e
3 customer−>exists ( c | c . id = cus )
4 post : −−los de ta ll es devueltos tras la ejecucion coinciden con
del c l i e n t e cuyo i d e n t i f i c a d o r es ’ cus ’
5 −−encontrar al c l i e n t e
6 Let e l C l i e n t e = customer−>select ( c | c . id = cus ) in
7 −−e s p e c i f i c a r el resultado
8 r e s u l t . nombre= e l C l i e n t e . nombre and
9 r e s u l t . codigoPostal = e l C l i e n t e . codigoPostal and
10 r e s u l t . email = e l C l i e n t e . email
11 −−la devolucion es i m p l i c i t a con la asignacion de la variable
’ r e s u l t ’ ; no hay cambio de estado del componente
Esta operación no cambia el estado del objeto que la realiza: la
poscondición sólo especifica el resultado a devolver.
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 20/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
OCL (II)
Condiciones en poscondiciones
Las expresiones de poscondición pueden referirse tanto al
estado antes de la ejecución de la operación (@pre de
OCL ) como a su estado posterior
Permiten escribir expresiones que especifican cómo
cambian los atributos o las asociaciones en el MII como
resultado de la ejecución de una operación
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 21/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Creación del Modelo de Información de una Interfaz
Generalidades del MII de reservas en hoteles
La interfaz IHotelMgt se preocupa de organizar reservas
en hoteles asignando habitaciones
ICustomerMgt se preocupa de gestionar los clientes
Tipos que son responsabilidad de IHotelMgt:
Hotel
RoomType
Room
Reservation
Tipos que son responsabilidad de ICustomerMgt:
Customer
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 22/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Creación del Modelo de Información de una Interfaz II
Figura: Diagrama de Responsabilidades de la Interfaz IHotelMgt
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 23/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Creación del Modelo de Información de una Interfaz III
Adaptaciones en el DRI para obtener el MII
Los tipos: Hotel, RoomType y Reservation han de
incluirse en el MII de IHotelMgt
La asociación entre reservas y clientes no tiene por qué
integrarse en el MII
Pueden transformarse las asociaciones en el DRI:
Inclusión de asociación directa: IHotelMgt ->
Reservation
De asociación derivada a directa: Hotel->Reservation
Se pueden eliminar asociaciones del DRI:
Asociación derivada Hotel -> RoomType
Se pueden añadir atributos: atributo claimed a
Reservation
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 24/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Creación del Modelo de Información de una Interfaz IV
Figura: Diagrama de Especificación de Interfaz de IHotelMgt
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 25/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Creación del Modelo de Información de una Interfaz V
Invariantes
Invariante: restricción asociada a un tipo que debe
mantenerse cierta para todas las instancias del mismo
Los invariantes pueden expresarse gráficamente con UML
Los invariantes se pueden escribir con expresiones OCL:
1 context r : Reservation inv :
2 −−una reserva esta confirmada ( claimed ) s i tiene ya una
habitacion asignada
3 r . claimed = r . allocation −>noEmpty
A partir de la definición anterior se podría utilizar “claimed”
como forma abreviada de la relación
Un invariante conecta diferentes partes de la información
contenida en una especificación
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 26/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de operaciones con OCL
Ejercicio propuesto
Especificar completamente la operación
IHotelMgt::makeReservation (...) con OCL;
utilizando los operadores: exists, select y
asSequence->first
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 27/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de Interfaces del Sistema
Interfaces del Sistema
El Modelo de Información de una Interfaz de Sistema
(MIIS) es un subconjunto del modelo del tipo de negocio
Este modelo de interfaz pretende agrupar las funciones
que realiza el sistema sin asistencia, automáticamente
Diferencias respecto de la elaboración de los MII de
negocio:
MIIS no tiene porqué contener todos los tipos del modelo
de negocio
La elaboración de diagramas de especificación de
responsabilidades no proporciona tanta información como
lo hacen en el caso de la elaboración del MII
No se tenga claro todos tipos del modelo de negocio que
hay que incluir hasta la programación de las operaciones
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 28/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Modelos de Información de Interfaces del Sistema
Figura: Diagrama de Especificación de Interfaz de Sistema IMakeReservation
Este modelo no necesita el atributo number de la clase Room
del MII de negocio
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 29/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Modelos de Información Interfaces Sistema II
Figura: Diagrama de Especificación de Interfaz de Sistema ITakeUpReservation
Necesita ahora el atributo number de la clase Room
No necesita ni el atributo name de Hotel ni available(during) de RoomType
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 30/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de componentes
Diferencias con la especificación de otras interfaces
Las interfaces MII de negocio y MIIS se refieren al contrato
de utilización
Ahora nos preocuparemos más por el contrato de
realización
Los más importante es describir las dependencias entre
un componente y otras interfaces
Incluye las restricciones de realización y combinación de
componentes
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 31/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de componentes II
Figura: Diagrama de Especificación de Componente de HotelMgr
El componente debe ofrecer la interfaz IHotelMgt y no se le
impide utilizar otras interfaces
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 32/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de componentes III
Figura: Diagrama de Especificación de Componente de HotelMgr
El componente debe ofrecer 2 interfaces de sistema y ha
de utilizar 3 interfaces de negocio adicionales
No dice cómo van a utilizarse estas interfaces en las
implementaciones del componente
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 33/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Especificación de componentes IV
Figura: Diagrama de Especificación de Componente de ReservationSystem
Todas las implementaciones del componente debe utilizar
los mismos objetos que ofrecen cada una de las interfaces
Restricción frozen: siempre los mismos objetos a lo largo
de todo el tiempo de vida del objeto-componente
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 34/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Restriciones entre interfaces
Completar las especificaciones de los componentes
¿Cómo se relacionan entre sí las interfaces provistas por
un componente?
¿Cómo se relacionan con las interfaces requeridas en el
componente?
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 35/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Interfaces provistas
Restricciones que aplican sobre estas interfaces
Se pretende dejar claro que los tipos del mismo nombre
ofrecidos en 2 ó más interfaces se refieren al mismo concepto
1 context ReservationSystem
2 −−r e s t r i c c i o n e s entre i n t e r f a c e s provistas
3 IMakeReservation : : hotel = ITakeUpReservation : : hotel
4 IMakeReservation : : reservation = ITakeUpReservation : : reservation
5 IMakeReservation : : customer = ITakeUpReservation : : customer
Las instancias del tipo del MII IMakeReservation son
lógicamente las mismas (= ) que las instancias del MII
ITakeUpReservation
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 36/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Interfaces provistas y requeridas
Relaciones entre todas las interfaces
Las implementaciones de las interfaces provistas obtienen
la información que necesitan de los componentes de
negocio: no reimplementan tipos comunes
Tampoco hay que especificar los protocolos de mensajes
que se establecen entre una interfaz provista y las
interfaces requeridas
Describir sólo las restricciones en OCL que hacen que los
modelos de información de todas las interfaces casen
1 context ReservationSystem
2 −−r e s t r i c c i o n e s entre i n t e r f a c e s provistas y requeridas
3 IMakeReservation : : hotel = IHotelMgt : : hotel
4 IMakeReservation : : reservation = IHotelMgt : : reservation
5 IMakeReservation : : customer = ICustomerMgt : : customer
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 37/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Factorización de interfaces
Motivación
Cada interfaz ha de tener un modelo de información diferente,
pero a veces sólo difieren en pequeños cambios; por
consiguiente, se produce mucha redundancia.
Pasos
Introducir interfaces abstractas nuevas que actúen como
super tipos de otras interfaces que compartan información
La interfaz abstracta mantiene los elementos coincidentes
de varios MIIs y también operaciones comunes
Puede ser indicado cuando los modelos de casos de uso
de los que proceden las interfaces comparten actores
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 38/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Factorización de interfaces II
Ejercicio propuesto
1) Factorizar los elementos comunes de los modelos de
información de las interfaces IMakeReservation y
ITakeUpReservation y ubicarlos en una nueva interfaz
IReservationSystem de las que las 2 interfaces aludidas
heredan.
2) Elaborar los diagramas de clases de las interfaces
IReservationSystem y rehacer el de IMakeReservation
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 39/ 40
Especificación de componentes
Proceso de creación del Modelo de Información de Interfaz
Proceso de creación del MII de Sistema
Técnicas de Factorización
Bibliografía Fundamental
Cheesman, J. and Daniels, J. (2001).
UML Components: A Simple Process for Specifying
Component–based Software.
Component Software Serirs. Addison-Wesley, first edition.
Eden, A., Hirshfeld, Y., and Kazman, R. (2006).
Abstraction classes in software design.
IEE Software, 153(4):163–182.
Exposito, D. and Saltarello, A. (2009).
Architecting Microsoft .NET solutions for the enterprise.
Microsoft Press, Redmond, Washington.
Szyperski, C. (1998).
Component Software. Beyond Object-Oriented Programming.
Addison–Wesley, Básica.
M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 40/ 40

Más contenido relacionado

La actualidad más candente

DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologiaslandeta_p
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 
Conceptos y principios de diseño
Conceptos y principios de diseñoConceptos y principios de diseño
Conceptos y principios de diseñoNataly Adelaida
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo iCathy Guevara
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Softwarebjjuarez
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Marta Silvia Tabares
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Marta Silvia Tabares
 
Arquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones AprendidasArquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones AprendidasJersson Dongo
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentesurumisama
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del softwareduberlisg
 

La actualidad más candente (20)

Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologias
 
Arquitectura software
Arquitectura softwareArquitectura software
Arquitectura software
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
Conceptos y principios de diseño
Conceptos y principios de diseñoConceptos y principios de diseño
Conceptos y principios de diseño
 
Arquitectura software capitulo i
Arquitectura software capitulo iArquitectura software capitulo i
Arquitectura software capitulo i
 
Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Software
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
 
Unidad v diseno_isbuap2020
Unidad v diseno_isbuap2020Unidad v diseno_isbuap2020
Unidad v diseno_isbuap2020
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Arquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones AprendidasArquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones Aprendidas
 
Arquitectura Basada En Componentes
Arquitectura Basada En ComponentesArquitectura Basada En Componentes
Arquitectura Basada En Componentes
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 

Similar a UML Componentes Especificación

Webinar IFML en Español
Webinar IFML en EspañolWebinar IFML en Español
Webinar IFML en EspañolMatteo Silva
 
Bpm forum 2013 WebRatio - BPMN & IFML
Bpm forum 2013   WebRatio - BPMN & IFMLBpm forum 2013   WebRatio - BPMN & IFML
Bpm forum 2013 WebRatio - BPMN & IFMLMatteo Silva
 
Arquitectura 2
Arquitectura 2Arquitectura 2
Arquitectura 2bistasa
 
Presentacion
PresentacionPresentacion
Presentacionviringas
 
Analisis de requerimiento para el desarrollo software
Analisis de requerimiento para el desarrollo softwareAnalisis de requerimiento para el desarrollo software
Analisis de requerimiento para el desarrollo softwareRafael Quintero
 
ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.Julio Cejas
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturasenlinea70
 
Modulo2 Arquitectura dotnet
Modulo2 Arquitectura dotnetModulo2 Arquitectura dotnet
Modulo2 Arquitectura dotnetJuan Pablo
 
Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareLenin Lozano
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
 
Fundamentos del diseño de software
Fundamentos del diseño de softwareFundamentos del diseño de software
Fundamentos del diseño de softwareMariangelCastro4
 
1 Mori Propuesta Tesis
1 Mori Propuesta Tesis1 Mori Propuesta Tesis
1 Mori Propuesta Tesisrocio2881
 
MÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWARE
MÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWAREMÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWARE
MÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWAREDavid Leon Sicilia
 
Curso Uml 2.5 Diagramas De ImplementacióN
Curso Uml   2.5 Diagramas De ImplementacióNCurso Uml   2.5 Diagramas De ImplementacióN
Curso Uml 2.5 Diagramas De ImplementacióNEmilio Aviles Avila
 
IMPORTANCIA DEL ANALISIS DE REQUERIMIENTOS
IMPORTANCIA DEL ANALISIS DE REQUERIMIENTOSIMPORTANCIA DEL ANALISIS DE REQUERIMIENTOS
IMPORTANCIA DEL ANALISIS DE REQUERIMIENTOSAntonio Josue
 

Similar a UML Componentes Especificación (20)

Webinar IFML en Español
Webinar IFML en EspañolWebinar IFML en Español
Webinar IFML en Español
 
Bpm forum 2013 WebRatio - BPMN & IFML
Bpm forum 2013   WebRatio - BPMN & IFMLBpm forum 2013   WebRatio - BPMN & IFML
Bpm forum 2013 WebRatio - BPMN & IFML
 
Gestion de Redes
Gestion de RedesGestion de Redes
Gestion de Redes
 
VIPER
VIPERVIPER
VIPER
 
Arquitectura 2
Arquitectura 2Arquitectura 2
Arquitectura 2
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Presentacion
PresentacionPresentacion
Presentacion
 
Analisis de requerimiento para el desarrollo software
Analisis de requerimiento para el desarrollo softwareAnalisis de requerimiento para el desarrollo software
Analisis de requerimiento para el desarrollo software
 
ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.ESB y SOA, Plataforma de integracion.
ESB y SOA, Plataforma de integracion.
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 
Modulo2 Arquitectura dotnet
Modulo2 Arquitectura dotnetModulo2 Arquitectura dotnet
Modulo2 Arquitectura dotnet
 
Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming Middleware
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 
Fundamentos del diseño de software
Fundamentos del diseño de softwareFundamentos del diseño de software
Fundamentos del diseño de software
 
Com521
Com521Com521
Com521
 
1 Mori Propuesta Tesis
1 Mori Propuesta Tesis1 Mori Propuesta Tesis
1 Mori Propuesta Tesis
 
MÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWARE
MÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWAREMÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWARE
MÉTRICAS PARA ASEGURAR LA CALIDAD DEL SOFTWARE
 
Curso Uml 2.5 Diagramas De ImplementacióN
Curso Uml   2.5 Diagramas De ImplementacióNCurso Uml   2.5 Diagramas De ImplementacióN
Curso Uml 2.5 Diagramas De ImplementacióN
 
IMPORTANCIA DEL ANALISIS DE REQUERIMIENTOS
IMPORTANCIA DEL ANALISIS DE REQUERIMIENTOSIMPORTANCIA DEL ANALISIS DE REQUERIMIENTOS
IMPORTANCIA DEL ANALISIS DE REQUERIMIENTOS
 
Asp
AspAsp
Asp
 

Más de Manuel Capel-Tunon

Más de Manuel Capel-Tunon (7)

Mantenimiento y evolución del software
Mantenimiento y evolución del softwareMantenimiento y evolución del software
Mantenimiento y evolución del software
 
Software Testing (2)
Software Testing (2)Software Testing (2)
Software Testing (2)
 
Software Testing (1)
Software Testing (1)Software Testing (1)
Software Testing (1)
 
Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
 
Presen sew-35-12(beamer)
Presen sew-35-12(beamer)Presen sew-35-12(beamer)
Presen sew-35-12(beamer)
 
Concurrency or "Hard Computing"
Concurrency or "Hard Computing"Concurrency or "Hard Computing"
Concurrency or "Hard Computing"
 
BUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLINGBUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLING
 

Último

Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 

Último (20)

Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 

UML Componentes Especificación

  • 1. Componentes con UML Una forma simple de especificar software basado en componentes M.I. Capel ETS Ingenierías Informática y Telecomunicación Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada Email: manuelcapel@ugr.es DSBCS Máster Universitario en Ingeniería Informática 21 de octubre de 2015
  • 2. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Índice 1 Especificación de componentes 2 Proceso de creación del Modelo de Información de Interfaz 3 Proceso de creación del MII de Sistema 4 Técnicas de Factorización M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 2/ 40
  • 3. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Índice 1 Especificación de componentes 2 Proceso de creación del Modelo de Información de Interfaz 3 Proceso de creación del MII de Sistema 4 Técnicas de Factorización M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 3/ 40
  • 4. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Índice 1 Especificación de componentes 2 Proceso de creación del Modelo de Información de Interfaz 3 Proceso de creación del MII de Sistema 4 Técnicas de Factorización M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 4/ 40
  • 5. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Índice 1 Especificación de componentes 2 Proceso de creación del Modelo de Información de Interfaz 3 Proceso de creación del MII de Sistema 4 Técnicas de Factorización M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 5/ 40
  • 6. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de SBCs Contratos en Sistemas Basados en Componentes Contrato de utilización Contrato de realización Especificación de una interfaz Determinar qué partes la componen y describirlas sin ambigüedad. Especificación de un componente Se trata fundamentalmente de agrupar las interfaces que implementará e indicar las restricciones que afectan a la realización del propio componente. M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 6/ 40
  • 7. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Interfaces provistas Una interfaz de este tipo cumple: Es implementada por el propio componente o Es implementada por uno de los objetos del componente o Es ofrecida por un puerto del componente Figura: El componente Servicios Meteorológicos implementa la interfaz Pronóstico Tiempo M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 7/ 40
  • 8. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Interfaces requeridas Una interfaz de este tipo cumple: Es una dependencia de uso del propio componente Es una dependencia de uso de uno de los objetos del componente Es necesitada por un puerto público del componente Figura: El componente Servicios Usuario requiere la interfaz ServiciosIOrder M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 8/ 40
  • 9. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Proceso de Especificación de Interfaces Figura: Especificación de un componente dentro del flujo de trabajos completo en esta etapa M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 9/ 40
  • 10. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de interfaces vs. operaciones Especificación de operaciones de componentes Carecen de cualquier información estructural acerca de un componente Nivel de descripción inadecuado respecto de la gestión de dependencias Especificación de interfaces de componentes Agrupación de operaciones relacionadas Dicha agrupación es revisitada en la tarea de factorización Introducción de subtipado en las interfaces Pueden incluir sólo 1 operación autocontenida y no dependiente M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 10/ 40
  • 11. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de operaciones ¿Qué tiene que incluir y qué no la especificación de una operación? Descripción de la relación entre las entradas, salidas y el estado del objeto componente El efecto que tiene la llamada sobre la anterior relación ¿Qué tiene que garantizar? Transparencia de las relaciones del objeto componente con otros M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 11/ 40
  • 12. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de operaciones II Elementos de la especificación: Los parámetros de entrada y salida Las restricciones que sean de aplicación Cualquier cambio de estado resultante en el componente Figura: Efecto de la operación IHotelMgt::makeReservation() en parte del estado del componente M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 12/ 40
  • 13. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de interfaces I Características del modelo: Suficiente para permitir la especificación de las operaciones de la interfaz Así como restricciones y efectos sobre el estado del componente Descripción de cambios del estado como resultado de las operaciones Se construirá incrementalmente conforme se elabora la especificación de las operaciones especificaciones de las operaciones, añadiendo tipos, atributos, etc. M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 13/ 40
  • 14. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de interfaces II Condiciones que respetará el modelo de especificación: Las interfaces sólo son asociadas a información tipada Sólo contendrán información del conjunto de estados propios de ese componente Nunca pueden dar información sobre implementación estado del componente Tampoco sobre su persistencia M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 14/ 40
  • 15. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Modelo de Especificación de Interfaz Representación del estado del objeto componente del que depende la interfaz Necesidad de un Modelo de Información de Interfaz (MII) Figura: Diagrama previo al modelo de especificación de la interfaz ICustomerMgt M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 15/ 40
  • 16. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Modelo de Información de Interfaz (MII) Discusión del ejemplo ICustomerMgt Customer es una Información con Tipo Los tipos de una interfaz no pueden mantener asociaciones con nada fuera del modelo Ubicación en el mismo paquete que la interfaz Salvo subtipos heredados entre interfaces, los tipos no se comparten pero se pueden importar Figura: Ejemplo de herencia de tipos después de una factorización de interfaces M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 16/ 40
  • 17. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Pre y postcondiciones Cada operación posee una pre y poscondición asociada, que especifican con detalle qué hará la operación No proporcionan información algorítmica o de implementación Actúan como la letra pequeña de un contrato con el cliente Precondición: la condición que garantiza que la ejecución de la operación hará cierta la poscondición La llamada de la operación aludida es totalmente independiente del valor de certeza de su precondición Cualquier suposición respecto de la ejecución de las operaciones es responsabilidad del cliente Las garantías contractuales (poscondición) son responsabilidad del proveedor de la operación M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 17/ 40
  • 18. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización OCL Definición Object Constraint Language es un lenguaje declarativo que permite construir expresiones lógicas y sirve, por ejemplo, para especificar condiciones contractuales en la especificación de interfaces de componentes software Expresiones OCL de pre y poscondiciones semánticamente correctas Se pueden referir a los parámetros, resultado de las operaciones y al estado del objeto componente No se pueden referir a elementos de otras interfaces La especificación de interfaces sólo afectan localmente M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 18/ 40
  • 19. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Expresiones con OCL Especificación OCL de operación de cambio de nombre 1 context ICustomerMgt : : changeCustomerName ( in cus : CustId , in newName: String ) 2 3 pre : 4 −−cus es un i d e n t i f i c a d o r valido de c l i e n t e 5 customer−>exists ( c | c . id = cus ) 6 post : 7 −−el nombre del c l i e n t e cuyo i d e n t i f i c a d o r es ’ cus ’ se convierte en ’newName ’ 8 customer−>exists ( c | c . id = cus and c .name = newName) ’customer’ se refiere al conjunto de clientes asociados a un objeto-componente de soporte: ICustomerMgt M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 19/ 40
  • 20. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Expresiones con OCL (II) Especificación de operación para obtener detalles de un cliente 1 context ICustomerMgt : : getCustomerDetails ( in cus : CustId ) : CustomerDetails 2 pre : −−cus es un i d e n t i f i c a d o r valido de c l i e n t e 3 customer−>exists ( c | c . id = cus ) 4 post : −−los de ta ll es devueltos tras la ejecucion coinciden con del c l i e n t e cuyo i d e n t i f i c a d o r es ’ cus ’ 5 −−encontrar al c l i e n t e 6 Let e l C l i e n t e = customer−>select ( c | c . id = cus ) in 7 −−e s p e c i f i c a r el resultado 8 r e s u l t . nombre= e l C l i e n t e . nombre and 9 r e s u l t . codigoPostal = e l C l i e n t e . codigoPostal and 10 r e s u l t . email = e l C l i e n t e . email 11 −−la devolucion es i m p l i c i t a con la asignacion de la variable ’ r e s u l t ’ ; no hay cambio de estado del componente Esta operación no cambia el estado del objeto que la realiza: la poscondición sólo especifica el resultado a devolver. M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 20/ 40
  • 21. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización OCL (II) Condiciones en poscondiciones Las expresiones de poscondición pueden referirse tanto al estado antes de la ejecución de la operación (@pre de OCL ) como a su estado posterior Permiten escribir expresiones que especifican cómo cambian los atributos o las asociaciones en el MII como resultado de la ejecución de una operación M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 21/ 40
  • 22. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Creación del Modelo de Información de una Interfaz Generalidades del MII de reservas en hoteles La interfaz IHotelMgt se preocupa de organizar reservas en hoteles asignando habitaciones ICustomerMgt se preocupa de gestionar los clientes Tipos que son responsabilidad de IHotelMgt: Hotel RoomType Room Reservation Tipos que son responsabilidad de ICustomerMgt: Customer M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 22/ 40
  • 23. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Creación del Modelo de Información de una Interfaz II Figura: Diagrama de Responsabilidades de la Interfaz IHotelMgt M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 23/ 40
  • 24. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Creación del Modelo de Información de una Interfaz III Adaptaciones en el DRI para obtener el MII Los tipos: Hotel, RoomType y Reservation han de incluirse en el MII de IHotelMgt La asociación entre reservas y clientes no tiene por qué integrarse en el MII Pueden transformarse las asociaciones en el DRI: Inclusión de asociación directa: IHotelMgt -> Reservation De asociación derivada a directa: Hotel->Reservation Se pueden eliminar asociaciones del DRI: Asociación derivada Hotel -> RoomType Se pueden añadir atributos: atributo claimed a Reservation M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 24/ 40
  • 25. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Creación del Modelo de Información de una Interfaz IV Figura: Diagrama de Especificación de Interfaz de IHotelMgt M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 25/ 40
  • 26. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Creación del Modelo de Información de una Interfaz V Invariantes Invariante: restricción asociada a un tipo que debe mantenerse cierta para todas las instancias del mismo Los invariantes pueden expresarse gráficamente con UML Los invariantes se pueden escribir con expresiones OCL: 1 context r : Reservation inv : 2 −−una reserva esta confirmada ( claimed ) s i tiene ya una habitacion asignada 3 r . claimed = r . allocation −>noEmpty A partir de la definición anterior se podría utilizar “claimed” como forma abreviada de la relación Un invariante conecta diferentes partes de la información contenida en una especificación M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 26/ 40
  • 27. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de operaciones con OCL Ejercicio propuesto Especificar completamente la operación IHotelMgt::makeReservation (...) con OCL; utilizando los operadores: exists, select y asSequence->first M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 27/ 40
  • 28. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de Interfaces del Sistema Interfaces del Sistema El Modelo de Información de una Interfaz de Sistema (MIIS) es un subconjunto del modelo del tipo de negocio Este modelo de interfaz pretende agrupar las funciones que realiza el sistema sin asistencia, automáticamente Diferencias respecto de la elaboración de los MII de negocio: MIIS no tiene porqué contener todos los tipos del modelo de negocio La elaboración de diagramas de especificación de responsabilidades no proporciona tanta información como lo hacen en el caso de la elaboración del MII No se tenga claro todos tipos del modelo de negocio que hay que incluir hasta la programación de las operaciones M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 28/ 40
  • 29. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Modelos de Información de Interfaces del Sistema Figura: Diagrama de Especificación de Interfaz de Sistema IMakeReservation Este modelo no necesita el atributo number de la clase Room del MII de negocio M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 29/ 40
  • 30. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Modelos de Información Interfaces Sistema II Figura: Diagrama de Especificación de Interfaz de Sistema ITakeUpReservation Necesita ahora el atributo number de la clase Room No necesita ni el atributo name de Hotel ni available(during) de RoomType M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 30/ 40
  • 31. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de componentes Diferencias con la especificación de otras interfaces Las interfaces MII de negocio y MIIS se refieren al contrato de utilización Ahora nos preocuparemos más por el contrato de realización Los más importante es describir las dependencias entre un componente y otras interfaces Incluye las restricciones de realización y combinación de componentes M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 31/ 40
  • 32. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de componentes II Figura: Diagrama de Especificación de Componente de HotelMgr El componente debe ofrecer la interfaz IHotelMgt y no se le impide utilizar otras interfaces M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 32/ 40
  • 33. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de componentes III Figura: Diagrama de Especificación de Componente de HotelMgr El componente debe ofrecer 2 interfaces de sistema y ha de utilizar 3 interfaces de negocio adicionales No dice cómo van a utilizarse estas interfaces en las implementaciones del componente M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 33/ 40
  • 34. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Especificación de componentes IV Figura: Diagrama de Especificación de Componente de ReservationSystem Todas las implementaciones del componente debe utilizar los mismos objetos que ofrecen cada una de las interfaces Restricción frozen: siempre los mismos objetos a lo largo de todo el tiempo de vida del objeto-componente M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 34/ 40
  • 35. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Restriciones entre interfaces Completar las especificaciones de los componentes ¿Cómo se relacionan entre sí las interfaces provistas por un componente? ¿Cómo se relacionan con las interfaces requeridas en el componente? M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 35/ 40
  • 36. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Interfaces provistas Restricciones que aplican sobre estas interfaces Se pretende dejar claro que los tipos del mismo nombre ofrecidos en 2 ó más interfaces se refieren al mismo concepto 1 context ReservationSystem 2 −−r e s t r i c c i o n e s entre i n t e r f a c e s provistas 3 IMakeReservation : : hotel = ITakeUpReservation : : hotel 4 IMakeReservation : : reservation = ITakeUpReservation : : reservation 5 IMakeReservation : : customer = ITakeUpReservation : : customer Las instancias del tipo del MII IMakeReservation son lógicamente las mismas (= ) que las instancias del MII ITakeUpReservation M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 36/ 40
  • 37. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Interfaces provistas y requeridas Relaciones entre todas las interfaces Las implementaciones de las interfaces provistas obtienen la información que necesitan de los componentes de negocio: no reimplementan tipos comunes Tampoco hay que especificar los protocolos de mensajes que se establecen entre una interfaz provista y las interfaces requeridas Describir sólo las restricciones en OCL que hacen que los modelos de información de todas las interfaces casen 1 context ReservationSystem 2 −−r e s t r i c c i o n e s entre i n t e r f a c e s provistas y requeridas 3 IMakeReservation : : hotel = IHotelMgt : : hotel 4 IMakeReservation : : reservation = IHotelMgt : : reservation 5 IMakeReservation : : customer = ICustomerMgt : : customer M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 37/ 40
  • 38. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Factorización de interfaces Motivación Cada interfaz ha de tener un modelo de información diferente, pero a veces sólo difieren en pequeños cambios; por consiguiente, se produce mucha redundancia. Pasos Introducir interfaces abstractas nuevas que actúen como super tipos de otras interfaces que compartan información La interfaz abstracta mantiene los elementos coincidentes de varios MIIs y también operaciones comunes Puede ser indicado cuando los modelos de casos de uso de los que proceden las interfaces comparten actores M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 38/ 40
  • 39. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Factorización de interfaces II Ejercicio propuesto 1) Factorizar los elementos comunes de los modelos de información de las interfaces IMakeReservation y ITakeUpReservation y ubicarlos en una nueva interfaz IReservationSystem de las que las 2 interfaces aludidas heredan. 2) Elaborar los diagramas de clases de las interfaces IReservationSystem y rehacer el de IMakeReservation M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 39/ 40
  • 40. Especificación de componentes Proceso de creación del Modelo de Información de Interfaz Proceso de creación del MII de Sistema Técnicas de Factorización Bibliografía Fundamental Cheesman, J. and Daniels, J. (2001). UML Components: A Simple Process for Specifying Component–based Software. Component Software Serirs. Addison-Wesley, first edition. Eden, A., Hirshfeld, Y., and Kazman, R. (2006). Abstraction classes in software design. IEE Software, 153(4):163–182. Exposito, D. and Saltarello, A. (2009). Architecting Microsoft .NET solutions for the enterprise. Microsoft Press, Redmond, Washington. Szyperski, C. (1998). Component Software. Beyond Object-Oriented Programming. Addison–Wesley, Básica. M.I.Capel Desarrollo de Software Basado en Componentes y Servicios 40/ 40