SlideShare une entreprise Scribd logo
1  sur  9
Una crítica a
             “A UML-Based Pattern Specification
                       Technique”
 Javier E. Buelvas Cueto, Estudiante del programa de especialización en Ingeniería de Software,

                                  Fundación Universitaria Tecnológico Comfenalco



La creciente complejidad de los sistemas informáticos representa un reto importante para los

ingenieros y arquitectos del software. De la preocupación inicial sobre la definición de la

estructura y calidad del código final, se ha pasado a dedicar cada vez más tiempo, atención y

esfuerzo al diseño y modelado del sistema. Los modelos proporcionan un mayor nivel de

abstracción, permitiendo trabajar con sistemas más complejos, y facilitando el proceso de

codificación e implementación del sistema de forma distribuida y en distintas plataformas.



En este nuevo contexto, los Patrones de Diseño ayudan a los desarrolladores de                                             software            a

resolver       problemas          de     diseño orientado a objetos que repetidamente ocurren. Cuando

estos      adaptan        patrones        a     soluciones particulares, muchas veces elaboran modelos usando

UML.        Sin embargo, a menudo, UML no es lo suficientemente expresivo para describir

patrones apropiadamente. Según [1], Cuando se ve desde fuera, un patrón de diseño se representa

como una colaboración parametrizada1. Cuando se ve desde dentro, un patrón e diseño es

simplemente una colaboración y se representa con sus partes estructural y de comportamiento.




 Un patrón representado como una colaboraciones parametrizadas, es un grupo de objetos/clases colaborando entre sí que se pueden abstraer de
un conjunto de escenarios general.
Debido a este tratamiento, se presentan algunas limitaciones para expresar correctamente la

semántica asociada a un patrón, principalmente porque estos tienen propósitos diferentes.



Una colaboración modela la interacción que puede existir entre un conjunto de objetos para

lograr un objetivo específico; un patrón tiene un propósito más general, ya que debe especificar

una solución de diseño desde el punto de vista de su estructura y su comportamiento.



De hecho, cuando instanciamos una colaboración parametrizada el resultado es otra colaboración,

pero la instanciación de un patrón de diseño da lugar a una porción de diseño que debe satisfacer

las restricciones del patrón y que resuelve un problema concreto, pudiendo ser puramente

estructural y no incluir interacción alguna.



Un patrón debería verse como una plantilla capaz de guiar al diseñador en la flexible selección,

creación y validación de los elementos (clases, objetos, relaciones, atributos, métodos, etc.,) que

participan en la solución de un problema típico de diseño, sin embargo,   los “ClassifierRole” o

“AssociationRole”      de     una colaboración parametrizada     dependen de clasificadores o

asociaciones    base    que    deben    existir previamente y donde los         “ClassiferRole” o

“AssociationRole” son una vista de éstos respectivamente. Además, sólo se pueden ligar

clasificadores o asociaciones a un parámetro con la única restricción de que el participante sea

del mismo tipo (o un descendiente del tipo) que el parámetro correspondiente.



Estos inconvenientes representan un problema para poder especificar la esencia de los patrones

de diseño en forma adecuada.
Una aproximación como solución a los problemas planteados anteriormente son los         perfiles

UML (en inglés “UML Profiles”). Estos permiten extender la sintaxis y la semántica d e

UML para modelar elementos de dominios particulares.



Así como los perfiles UML extienden su vocabulario y los patrones de diseño definen para los

diseñadores un vocabulario común;        también    es posible usar perfiles para definir un

vocabulario de patrones en UML. De esta         manera, los perfiles pueden ser usados no

solamente para dominios específicos, sino también para resolver problemas particulares en

diferentes dominios.



El perfil es un mecanismo definido por UML (en inglés,         Unified   Modeling    Language)

[2]   para extender y adaptar UML a una plataforma o dominio particular.         Incluye    tres

elementos:    estereotipos, valores etiquetados y restricciones. Los estereotipos extienden el

vocabulario UML y es posible asociarle valores etiquetados y restricciones. Si bien,          el

lenguaje natural es usado para definir restricciones, debido a su precisión, OCL (por sus siglas

en inglés, Object Constraint Language) es uno de los más adecuados.



Las bondades ofrecidas por los perfiles pueden ser aprovechadas en la transformación de

modelos a otros modelos o a código (facilitando la tarea a los diseñadores de software). En

los últimos años el concepto de perfil ha servido para cubrir distintos dominios; tales

como, tiempo real, procesos de negocio, y otros.
Cuando los desarrolladores de software modelan soluciones usando UML, muchas veces

encuentran que UML no es lo suficientemente                    expresivo para describir patrones

apropiadamente.



Numerosos trabajos de investigación se ocuparon de la descripción de patrones con diferentes

enfoques. Algunos trabajos estudiaron el uso de UML para definir y documentar patrones.

Por ejemplo, Le Guennec, Sunyé y Jézéquel en [5] modificaron el metamodelo 1.3 para

permitir colaboraciones en el meta-nivel         y     restricciones   OCL,     en   lugar    de

colaboraciones parametrizadas. La idea era mejorar el modelo de colaboración y las plantillas

UML para una mejor definición de los roles de los patrones.



La OMG en [10] introdujo la noción de “Paquete de Patrón de Negocio” (consideró que las

reglas que gobiernan los conceptos de negocio pueden ser representados con un patrón con

restricciones) para definir un patrón, y “Ligamiento de Patrón de Negocio” para aplicar un

patrón.



Fontoura y Lucena en [6] extendieron UML representando una clase de patrones de

diseño llamados “patrones de configuración”. La extensión a             UML    fue   desarrollada

expresando un diagrama abstracto que permite mostrar diferentes formas de implementación;

y representando, además, un patrón de instanciación.



Una técnica de especificación para patrones fue propuesta por France, Kim y Song en [9].

Definieron un     lenguaje   de   metamodelado       (usando    UML    y restricciones OCL) para
especificar perspectivas de patrones; tales como estructura estática e iteraciones. Una

especificación de patrón define una familia de modelos UML en términos de roles.



Otros trabajos, como [7] y [8], estuvieron menos orientados               a   la   especificación    de

patrones para documentación, pero mostraron otras interesantes características. Sanada y

Adams en [7] extendieron UML para soportar patrones de diseño en diagramas de clases. Dang

y Yang en [8] presentaron un perfil UML para una mejor visualización de patrones de diseño

en diagramas de clases.



Barotto    y   Demonte     en    [11]     propusieron   una definición de patrones de diseño a

través    del metamodelo        UML.      Utilizaron    estereotipos   con restricciones OCL para

especificar los elementos que componen un patrón. Sin embargo, no utilizaron la noción de

“perfil UML” definido en UML 2.0 [4], sino conceptos anteriores a dicha versión.



EL USO DE PERFILES UML PARA DEFINICIÓN DE PATRONES DE DISEÑO



Algunas investigaciones están orientadas a la definición de Patrones de Diseño con Perfiles

UML. Estas, analizan las ventajas de los perfiles para definir, documentar              y     visualizar

patrones de diseño. Al definir un perfil por cada patrón, estas van conformando una librería

de patrones especificados con perfiles UML.             Además,    de cierta forma intentan     mostrar

que       las herramientas UML          son suficientes para introducir perfiles de     patrones, sin

implementar una herramienta específica para patrones.
Algunos resultados parciales



Para comenzar se seleccionaron los patrones diseño denominados “estructurales” de [3]. La

experiencia inicial consistió en la definición del patrón “Composite”.



Se     definieron     tres     estereotipos   de   clase: “Component”,        “Leaf”       and

“Composite”; y un esterotipo de asociación, “Children” (ver Figura 1).



Fueron establecidas restricciones OCL sobre         los estereotipos, la cuales son mostradas a

continuación (el metamodelo UML es mostrado en la Figura 2 para entender mejor las

especificaciones OCL).



Children:(Core::Association)

inv:

self.connection->exists

(participant.isSterotyped (“Composite”) and multiplicity.min=1 and

multiplicity.max=1) and

self.connection->forAll (c1,c2|

c1.participant.isSterotyped (“Composite”)

and

c2.participant.isSterotyped (“Component”)

implies c1.aggregation=#composite and c2.aggregation=#none )
Conclusiones y trabajos futuros



Los perfiles UML pueden ser útiles para definir, documentar y visualizar patrones de diseño.

Además cuentan con la ventaja de que si las herramientas UML permiten introducir perfiles

de patrones, no es necesario implementar una herramienta específica para patrones.



El trabajo futuro está dirigido a buscar información de herramientas UML que permitan definir

perfiles UML. El análisis de las bondades de las diferentes herramientas, permitirá elaborar

una propuesta general para la especificación de patrones usando herramientas UML.



Además se pretende mostrar que al usar perfiles para especificar patrones; el perfil está siendo

utilizado no solamente para definir un dominio específico (tal como originariamente se pensó),

sino también para definir un dominio general.



De la misma forma que con “Composite”, se realizará la especificación de otros patrones

de diseño. Luego del análisis de las especificaciones resultantes, se podrá empezar           a

desarrollar una arquitectura para patrones usando perfiles UML.
Referencias



[1] G. Booch, J. Rumbaugh, I. Jacobson, El Lenguaje Unificado de Modelado, Addison-Wesley,

2006, pp. 429-430.



[2]    ISO/IEC, Unified Modeling Language (UML), Version 1.5, International Standard

ISO/IEC 19501.



[3]    E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns. Elements of Reusable

Object- Oriented Software, Addison-Wesley. 1995.



[4]    UML 2.0,      Infraestructure Specification, http://www.omg.org/technology/ documents,

Agosto del 2004.



[5]    A. Le Guennec, G. Sunyé, J. Jézéquel, “Precise Modeling of Design Patterns”, In UML

2000, Vol. 1939 LNCS, 2000, pp. 482-496.



[6]    M. Fontoura, C. Lucena, “Extending UML to Improve the Representation     of     Design

Patterns”, Journal of Object Technology, 2000.



[7]    Y. Sanada, R. Adams, “Representing Design Patterns and Frameworks in UML. Towards

a Comprehensive Approach”, Journal of Object Technology, Vol.1(2), 2002, pp.143–154.
[8]    J. Dong, S. Yang, “Visualizing Design Patterns With A UML Profile”, IEEE Symposium

on Human Centric Computing Languages and Environments (HCC 2003), 2003.



[9]    R. France, D. Kim, E. Song, “A UML-Based Pattern            Specification      Technique”,

       IEEE Transactions     on       Software       Engineering, Vol.30(3), 2004, pp.193-206.



[10]   OMG, “UML Profile for                Patterns Specification”, Parte del “UML Profile

for Enterprise          distributed        Object.          Computing (EDOC) Specification”,

http://www.omg.org/technology/        documents, 2004.



[11] V.      Barotto,        M.       Demonte,       D.     Riesco. “Definición de Patrones de

Diseño a través del metamodelo UML”. Tesis de              Licenciatura en Ciencias      de      la

Computación. Universidad Nacional de Río IV, Argentina. 2005.

Contenu connexe

Tendances (20)

Uml (lenguaje unificado de modelado)
Uml (lenguaje unificado de modelado)Uml (lenguaje unificado de modelado)
Uml (lenguaje unificado de modelado)
 
Historia uml
Historia umlHistoria uml
Historia uml
 
Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
Uml
UmlUml
Uml
 
Objeto de Aprendizaje : Introducción a UML
Objeto de Aprendizaje : Introducción a UMLObjeto de Aprendizaje : Introducción a UML
Objeto de Aprendizaje : Introducción a UML
 
Presentacion uml dian1_2003
Presentacion uml dian1_2003Presentacion uml dian1_2003
Presentacion uml dian1_2003
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento Unificado
 
El lenguaje de modelado unificado
El lenguaje de modelado unificadoEl lenguaje de modelado unificado
El lenguaje de modelado unificado
 
Conceptos Basicos Uml
Conceptos Basicos UmlConceptos Basicos Uml
Conceptos Basicos Uml
 
Introduccion a Uml
Introduccion a Uml Introduccion a Uml
Introduccion a Uml
 
Curso Uml 1 Introduccion
Curso Uml   1 IntroduccionCurso Uml   1 Introduccion
Curso Uml 1 Introduccion
 
Historia de uml
Historia de umlHistoria de uml
Historia de uml
 
Um presentación
Um presentaciónUm presentación
Um presentación
 
Lenguaje Unificado de Modelado
Lenguaje Unificado de ModeladoLenguaje Unificado de Modelado
Lenguaje Unificado de Modelado
 
Diseño de sistemas - UML - compendio
Diseño de sistemas  -  UML - compendioDiseño de sistemas  -  UML - compendio
Diseño de sistemas - UML - compendio
 
Introducción a UML
Introducción a UMLIntroducción a UML
Introducción a UML
 
Tm02 introducción a uml
Tm02 introducción a umlTm02 introducción a uml
Tm02 introducción a uml
 
Curso Uml 2.1 Diagramas De Cu Y Clases
Curso Uml   2.1 Diagramas De Cu Y ClasesCurso Uml   2.1 Diagramas De Cu Y Clases
Curso Uml 2.1 Diagramas De Cu Y Clases
 
Densy yuli
Densy yuliDensy yuli
Densy yuli
 
Capitulo01p01
Capitulo01p01Capitulo01p01
Capitulo01p01
 

En vedette

el futbol es solo de hombres
el futbol es solo de hombresel futbol es solo de hombres
el futbol es solo de hombreslfp2009
 
Vahe Consultores: Post de Entrenamiento para EVA
Vahe Consultores: Post de Entrenamiento para EVAVahe Consultores: Post de Entrenamiento para EVA
Vahe Consultores: Post de Entrenamiento para EVAorlando tipismana
 
C like business model 20160901 update
C like business model  20160901 updateC like business model  20160901 update
C like business model 20160901 updateCheng Han-Ni
 
Ivan Schumann Letter of recommendation Crossroads Bible College.PDF
Ivan Schumann Letter of recommendation Crossroads Bible College.PDFIvan Schumann Letter of recommendation Crossroads Bible College.PDF
Ivan Schumann Letter of recommendation Crossroads Bible College.PDFIvan Schumann
 
06 09consorciatencióPersones
06 09consorciatencióPersones06 09consorciatencióPersones
06 09consorciatencióPersonesAlbert Batalla
 
JulianaMarinLetterofRec
JulianaMarinLetterofRecJulianaMarinLetterofRec
JulianaMarinLetterofRecJuliana Marin
 
(130119) #fitalk sql server forensics
(130119) #fitalk   sql server forensics(130119) #fitalk   sql server forensics
(130119) #fitalk sql server forensicsINSIGHT FORENSIC
 
Benalúa de las Villas
Benalúa de las VillasBenalúa de las Villas
Benalúa de las Villasjessimi
 
software y hardware
software y hardwaresoftware y hardware
software y hardwareeli morocho
 
Floristeria Ana
Floristeria AnaFloristeria Ana
Floristeria AnaANA MARIA
 
Técnicas teraputicas aplicables a adultos que consultan en pareja
Técnicas teraputicas aplicables a adultos que consultan en parejaTécnicas teraputicas aplicables a adultos que consultan en pareja
Técnicas teraputicas aplicables a adultos que consultan en parejaUniversidad Don Vasco A.C.
 
El RincóN Del Bajá
El RincóN Del BajáEl RincóN Del Bajá
El RincóN Del Bajáguestd3205d6
 

En vedette (20)

el futbol es solo de hombres
el futbol es solo de hombresel futbol es solo de hombres
el futbol es solo de hombres
 
Vahe Consultores: Post de Entrenamiento para EVA
Vahe Consultores: Post de Entrenamiento para EVAVahe Consultores: Post de Entrenamiento para EVA
Vahe Consultores: Post de Entrenamiento para EVA
 
Andrea 11 2 T
Andrea 11 2 TAndrea 11 2 T
Andrea 11 2 T
 
FLDEP License
FLDEP LicenseFLDEP License
FLDEP License
 
C like business model 20160901 update
C like business model  20160901 updateC like business model  20160901 update
C like business model 20160901 update
 
Islande
IslandeIslande
Islande
 
Ivan Schumann Letter of recommendation Crossroads Bible College.PDF
Ivan Schumann Letter of recommendation Crossroads Bible College.PDFIvan Schumann Letter of recommendation Crossroads Bible College.PDF
Ivan Schumann Letter of recommendation Crossroads Bible College.PDF
 
Index
IndexIndex
Index
 
01. Catequesis Para El Adviento 2009
01. Catequesis Para El Adviento 200901. Catequesis Para El Adviento 2009
01. Catequesis Para El Adviento 2009
 
06 09consorciatencióPersones
06 09consorciatencióPersones06 09consorciatencióPersones
06 09consorciatencióPersones
 
JulianaMarinLetterofRec
JulianaMarinLetterofRecJulianaMarinLetterofRec
JulianaMarinLetterofRec
 
(130119) #fitalk sql server forensics
(130119) #fitalk   sql server forensics(130119) #fitalk   sql server forensics
(130119) #fitalk sql server forensics
 
Benalúa de las Villas
Benalúa de las VillasBenalúa de las Villas
Benalúa de las Villas
 
software y hardware
software y hardwaresoftware y hardware
software y hardware
 
Porque 1 e_um_2_e_dois_3_
Porque 1 e_um_2_e_dois_3_Porque 1 e_um_2_e_dois_3_
Porque 1 e_um_2_e_dois_3_
 
1 Anuncio Expo2
1 Anuncio Expo21 Anuncio Expo2
1 Anuncio Expo2
 
Floristeria Ana
Floristeria AnaFloristeria Ana
Floristeria Ana
 
Jaime
JaimeJaime
Jaime
 
Técnicas teraputicas aplicables a adultos que consultan en pareja
Técnicas teraputicas aplicables a adultos que consultan en parejaTécnicas teraputicas aplicables a adultos que consultan en pareja
Técnicas teraputicas aplicables a adultos que consultan en pareja
 
El RincóN Del Bajá
El RincóN Del BajáEl RincóN Del Bajá
El RincóN Del Bajá
 

Similaire à Crítica A UML - Based Pattern

Similaire à Crítica A UML - Based Pattern (20)

Uml
UmlUml
Uml
 
Densy yuli
Densy yuliDensy yuli
Densy yuli
 
Densy yuli
Densy yuliDensy yuli
Densy yuli
 
Software
SoftwareSoftware
Software
 
Software
SoftwareSoftware
Software
 
EL UML X2
EL UML X2EL UML X2
EL UML X2
 
Perfiles UML - Jénifer Quintero
Perfiles UML - Jénifer QuinteroPerfiles UML - Jénifer Quintero
Perfiles UML - Jénifer Quintero
 
Uml
UmlUml
Uml
 
Tema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptTema 2.UML parte 1.ppt
Tema 2.UML parte 1.ppt
 
Lenguaje de modelo de objetos
Lenguaje de modelo de objetosLenguaje de modelo de objetos
Lenguaje de modelo de objetos
 
Perfiles UML - Paola Morales
Perfiles UML - Paola MoralesPerfiles UML - Paola Morales
Perfiles UML - Paola Morales
 
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
 
Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8
 
Uml albagni camila ibarguen asprilla
Uml albagni camila ibarguen asprillaUml albagni camila ibarguen asprilla
Uml albagni camila ibarguen asprilla
 
Glosario uml
Glosario umlGlosario uml
Glosario uml
 
Uml clase1
Uml clase1Uml clase1
Uml clase1
 
Uml clase1
Uml clase1Uml clase1
Uml clase1
 
Uml
UmlUml
Uml
 
Uml clase1
Uml clase1Uml clase1
Uml clase1
 
IngenieríA De Software Uml
IngenieríA De Software UmlIngenieríA De Software Uml
IngenieríA De Software Uml
 

Dernier

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Dernier (10)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Crítica A UML - Based Pattern

  • 1. Una crítica a “A UML-Based Pattern Specification Technique” Javier E. Buelvas Cueto, Estudiante del programa de especialización en Ingeniería de Software, Fundación Universitaria Tecnológico Comfenalco La creciente complejidad de los sistemas informáticos representa un reto importante para los ingenieros y arquitectos del software. De la preocupación inicial sobre la definición de la estructura y calidad del código final, se ha pasado a dedicar cada vez más tiempo, atención y esfuerzo al diseño y modelado del sistema. Los modelos proporcionan un mayor nivel de abstracción, permitiendo trabajar con sistemas más complejos, y facilitando el proceso de codificación e implementación del sistema de forma distribuida y en distintas plataformas. En este nuevo contexto, los Patrones de Diseño ayudan a los desarrolladores de software a resolver problemas de diseño orientado a objetos que repetidamente ocurren. Cuando estos adaptan patrones a soluciones particulares, muchas veces elaboran modelos usando UML. Sin embargo, a menudo, UML no es lo suficientemente expresivo para describir patrones apropiadamente. Según [1], Cuando se ve desde fuera, un patrón de diseño se representa como una colaboración parametrizada1. Cuando se ve desde dentro, un patrón e diseño es simplemente una colaboración y se representa con sus partes estructural y de comportamiento. Un patrón representado como una colaboraciones parametrizadas, es un grupo de objetos/clases colaborando entre sí que se pueden abstraer de un conjunto de escenarios general.
  • 2. Debido a este tratamiento, se presentan algunas limitaciones para expresar correctamente la semántica asociada a un patrón, principalmente porque estos tienen propósitos diferentes. Una colaboración modela la interacción que puede existir entre un conjunto de objetos para lograr un objetivo específico; un patrón tiene un propósito más general, ya que debe especificar una solución de diseño desde el punto de vista de su estructura y su comportamiento. De hecho, cuando instanciamos una colaboración parametrizada el resultado es otra colaboración, pero la instanciación de un patrón de diseño da lugar a una porción de diseño que debe satisfacer las restricciones del patrón y que resuelve un problema concreto, pudiendo ser puramente estructural y no incluir interacción alguna. Un patrón debería verse como una plantilla capaz de guiar al diseñador en la flexible selección, creación y validación de los elementos (clases, objetos, relaciones, atributos, métodos, etc.,) que participan en la solución de un problema típico de diseño, sin embargo, los “ClassifierRole” o “AssociationRole” de una colaboración parametrizada dependen de clasificadores o asociaciones base que deben existir previamente y donde los “ClassiferRole” o “AssociationRole” son una vista de éstos respectivamente. Además, sólo se pueden ligar clasificadores o asociaciones a un parámetro con la única restricción de que el participante sea del mismo tipo (o un descendiente del tipo) que el parámetro correspondiente. Estos inconvenientes representan un problema para poder especificar la esencia de los patrones de diseño en forma adecuada.
  • 3. Una aproximación como solución a los problemas planteados anteriormente son los perfiles UML (en inglés “UML Profiles”). Estos permiten extender la sintaxis y la semántica d e UML para modelar elementos de dominios particulares. Así como los perfiles UML extienden su vocabulario y los patrones de diseño definen para los diseñadores un vocabulario común; también es posible usar perfiles para definir un vocabulario de patrones en UML. De esta manera, los perfiles pueden ser usados no solamente para dominios específicos, sino también para resolver problemas particulares en diferentes dominios. El perfil es un mecanismo definido por UML (en inglés, Unified Modeling Language) [2] para extender y adaptar UML a una plataforma o dominio particular. Incluye tres elementos: estereotipos, valores etiquetados y restricciones. Los estereotipos extienden el vocabulario UML y es posible asociarle valores etiquetados y restricciones. Si bien, el lenguaje natural es usado para definir restricciones, debido a su precisión, OCL (por sus siglas en inglés, Object Constraint Language) es uno de los más adecuados. Las bondades ofrecidas por los perfiles pueden ser aprovechadas en la transformación de modelos a otros modelos o a código (facilitando la tarea a los diseñadores de software). En los últimos años el concepto de perfil ha servido para cubrir distintos dominios; tales como, tiempo real, procesos de negocio, y otros.
  • 4. Cuando los desarrolladores de software modelan soluciones usando UML, muchas veces encuentran que UML no es lo suficientemente expresivo para describir patrones apropiadamente. Numerosos trabajos de investigación se ocuparon de la descripción de patrones con diferentes enfoques. Algunos trabajos estudiaron el uso de UML para definir y documentar patrones. Por ejemplo, Le Guennec, Sunyé y Jézéquel en [5] modificaron el metamodelo 1.3 para permitir colaboraciones en el meta-nivel y restricciones OCL, en lugar de colaboraciones parametrizadas. La idea era mejorar el modelo de colaboración y las plantillas UML para una mejor definición de los roles de los patrones. La OMG en [10] introdujo la noción de “Paquete de Patrón de Negocio” (consideró que las reglas que gobiernan los conceptos de negocio pueden ser representados con un patrón con restricciones) para definir un patrón, y “Ligamiento de Patrón de Negocio” para aplicar un patrón. Fontoura y Lucena en [6] extendieron UML representando una clase de patrones de diseño llamados “patrones de configuración”. La extensión a UML fue desarrollada expresando un diagrama abstracto que permite mostrar diferentes formas de implementación; y representando, además, un patrón de instanciación. Una técnica de especificación para patrones fue propuesta por France, Kim y Song en [9]. Definieron un lenguaje de metamodelado (usando UML y restricciones OCL) para
  • 5. especificar perspectivas de patrones; tales como estructura estática e iteraciones. Una especificación de patrón define una familia de modelos UML en términos de roles. Otros trabajos, como [7] y [8], estuvieron menos orientados a la especificación de patrones para documentación, pero mostraron otras interesantes características. Sanada y Adams en [7] extendieron UML para soportar patrones de diseño en diagramas de clases. Dang y Yang en [8] presentaron un perfil UML para una mejor visualización de patrones de diseño en diagramas de clases. Barotto y Demonte en [11] propusieron una definición de patrones de diseño a través del metamodelo UML. Utilizaron estereotipos con restricciones OCL para especificar los elementos que componen un patrón. Sin embargo, no utilizaron la noción de “perfil UML” definido en UML 2.0 [4], sino conceptos anteriores a dicha versión. EL USO DE PERFILES UML PARA DEFINICIÓN DE PATRONES DE DISEÑO Algunas investigaciones están orientadas a la definición de Patrones de Diseño con Perfiles UML. Estas, analizan las ventajas de los perfiles para definir, documentar y visualizar patrones de diseño. Al definir un perfil por cada patrón, estas van conformando una librería de patrones especificados con perfiles UML. Además, de cierta forma intentan mostrar que las herramientas UML son suficientes para introducir perfiles de patrones, sin implementar una herramienta específica para patrones.
  • 6. Algunos resultados parciales Para comenzar se seleccionaron los patrones diseño denominados “estructurales” de [3]. La experiencia inicial consistió en la definición del patrón “Composite”. Se definieron tres estereotipos de clase: “Component”, “Leaf” and “Composite”; y un esterotipo de asociación, “Children” (ver Figura 1). Fueron establecidas restricciones OCL sobre los estereotipos, la cuales son mostradas a continuación (el metamodelo UML es mostrado en la Figura 2 para entender mejor las especificaciones OCL). Children:(Core::Association) inv: self.connection->exists (participant.isSterotyped (“Composite”) and multiplicity.min=1 and multiplicity.max=1) and self.connection->forAll (c1,c2| c1.participant.isSterotyped (“Composite”) and c2.participant.isSterotyped (“Component”) implies c1.aggregation=#composite and c2.aggregation=#none )
  • 7. Conclusiones y trabajos futuros Los perfiles UML pueden ser útiles para definir, documentar y visualizar patrones de diseño. Además cuentan con la ventaja de que si las herramientas UML permiten introducir perfiles de patrones, no es necesario implementar una herramienta específica para patrones. El trabajo futuro está dirigido a buscar información de herramientas UML que permitan definir perfiles UML. El análisis de las bondades de las diferentes herramientas, permitirá elaborar una propuesta general para la especificación de patrones usando herramientas UML. Además se pretende mostrar que al usar perfiles para especificar patrones; el perfil está siendo utilizado no solamente para definir un dominio específico (tal como originariamente se pensó), sino también para definir un dominio general. De la misma forma que con “Composite”, se realizará la especificación de otros patrones de diseño. Luego del análisis de las especificaciones resultantes, se podrá empezar a desarrollar una arquitectura para patrones usando perfiles UML.
  • 8. Referencias [1] G. Booch, J. Rumbaugh, I. Jacobson, El Lenguaje Unificado de Modelado, Addison-Wesley, 2006, pp. 429-430. [2] ISO/IEC, Unified Modeling Language (UML), Version 1.5, International Standard ISO/IEC 19501. [3] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns. Elements of Reusable Object- Oriented Software, Addison-Wesley. 1995. [4] UML 2.0, Infraestructure Specification, http://www.omg.org/technology/ documents, Agosto del 2004. [5] A. Le Guennec, G. Sunyé, J. Jézéquel, “Precise Modeling of Design Patterns”, In UML 2000, Vol. 1939 LNCS, 2000, pp. 482-496. [6] M. Fontoura, C. Lucena, “Extending UML to Improve the Representation of Design Patterns”, Journal of Object Technology, 2000. [7] Y. Sanada, R. Adams, “Representing Design Patterns and Frameworks in UML. Towards a Comprehensive Approach”, Journal of Object Technology, Vol.1(2), 2002, pp.143–154.
  • 9. [8] J. Dong, S. Yang, “Visualizing Design Patterns With A UML Profile”, IEEE Symposium on Human Centric Computing Languages and Environments (HCC 2003), 2003. [9] R. France, D. Kim, E. Song, “A UML-Based Pattern Specification Technique”, IEEE Transactions on Software Engineering, Vol.30(3), 2004, pp.193-206. [10] OMG, “UML Profile for Patterns Specification”, Parte del “UML Profile for Enterprise distributed Object. Computing (EDOC) Specification”, http://www.omg.org/technology/ documents, 2004. [11] V. Barotto, M. Demonte, D. Riesco. “Definición de Patrones de Diseño a través del metamodelo UML”. Tesis de Licenciatura en Ciencias de la Computación. Universidad Nacional de Río IV, Argentina. 2005.