Una crítica a             “A UML-Based Pattern Specification                       Technique” Javier E. Buelvas Cueto, Est...
Debido a este tratamiento, se presentan algunas limitaciones para expresar correctamente lasemántica asociada a un patrón,...
Una aproximación como solución a los problemas planteados anteriormente son los         perfilesUML (en inglés “UML Profil...
Cuando los desarrolladores de software modelan soluciones usando UML, muchas vecesencuentran que UML no es lo suficienteme...
especificar perspectivas de patrones; tales como estructura estática e iteraciones. Unaespecificación de patrón define una...
Algunos resultados parcialesPara comenzar se seleccionaron los patrones diseño denominados “estructurales” de [3]. Laexper...
Conclusiones y trabajos futurosLos perfiles UML pueden ser útiles para definir, documentar y visualizar patrones de diseño...
Referencias[1] G. Booch, J. Rumbaugh, I. Jacobson, El Lenguaje Unificado de Modelado, Addison-Wesley,2006, pp. 429-430.[2]...
[8]    J. Dong, S. Yang, “Visualizing Design Patterns With A UML Profile”, IEEE Symposiumon Human Centric Computing Langua...
Próxima SlideShare
Cargando en…5
×

Crítica A UML - Based Pattern

810 visualizaciones

Publicado el

Ensayo crítico sobre el artículo "A UML -Based Pattern Specification Technique"

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
810
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Crítica A UML - Based Pattern

  1. 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 ComfenalcoLa creciente complejidad de los sistemas informáticos representa un reto importante para losingenieros y arquitectos del software. De la preocupación inicial sobre la definición de laestructura y calidad del código final, se ha pasado a dedicar cada vez más tiempo, atención yesfuerzo al diseño y modelado del sistema. Los modelos proporcionan un mayor nivel deabstracción, permitiendo trabajar con sistemas más complejos, y facilitando el proceso decodificació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 aresolver problemas de diseño orientado a objetos que repetidamente ocurren. Cuandoestos adaptan patrones a soluciones particulares, muchas veces elaboran modelos usandoUML. Sin embargo, a menudo, UML no es lo suficientemente expresivo para describirpatrones apropiadamente. Según [1], Cuando se ve desde fuera, un patrón de diseño se representacomo una colaboración parametrizada1. Cuando se ve desde dentro, un patrón e diseño essimplemente 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 deun conjunto de escenarios general.
  2. 2. Debido a este tratamiento, se presentan algunas limitaciones para expresar correctamente lasemá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 paralograr un objetivo específico; un patrón tiene un propósito más general, ya que debe especificaruna 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 satisfacerlas restricciones del patrón y que resuelve un problema concreto, pudiendo ser puramenteestructural 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.,) queparticipan 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 oasociaciones base que deben existir previamente y donde los “ClassiferRole” o“AssociationRole” son una vista de éstos respectivamente. Además, sólo se pueden ligarclasificadores o asociaciones a un parámetro con la única restricción de que el participante seadel mismo tipo (o un descendiente del tipo) que el parámetro correspondiente.Estos inconvenientes representan un problema para poder especificar la esencia de los patronesde diseño en forma adecuada.
  3. 3. Una aproximación como solución a los problemas planteados anteriormente son los perfilesUML (en inglés “UML Profiles”). Estos permiten extender la sintaxis y la semántica d eUML para modelar elementos de dominios particulares.Así como los perfiles UML extienden su vocabulario y los patrones de diseño definen para losdiseñadores un vocabulario común; también es posible usar perfiles para definir unvocabulario de patrones en UML. De esta manera, los perfiles pueden ser usados nosolamente para dominios específicos, sino también para resolver problemas particulares endiferentes 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 treselementos: estereotipos, valores etiquetados y restricciones. Los estereotipos extienden elvocabulario UML y es posible asociarle valores etiquetados y restricciones. Si bien, ellenguaje natural es usado para definir restricciones, debido a su precisión, OCL (por sus siglasen 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 demodelos a otros modelos o a código (facilitando la tarea a los diseñadores de software). Enlos últimos años el concepto de perfil ha servido para cubrir distintos dominios; talescomo, tiempo real, procesos de negocio, y otros.
  4. 4. Cuando los desarrolladores de software modelan soluciones usando UML, muchas vecesencuentran que UML no es lo suficientemente expresivo para describir patronesapropiadamente.Numerosos trabajos de investigación se ocuparon de la descripción de patrones con diferentesenfoques. 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 parapermitir colaboraciones en el meta-nivel y restricciones OCL, en lugar decolaboraciones parametrizadas. La idea era mejorar el modelo de colaboración y las plantillasUML 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 lasreglas que gobiernan los conceptos de negocio pueden ser representados con un patrón conrestricciones) para definir un patrón, y “Ligamiento de Patrón de Negocio” para aplicar unpatrón.Fontoura y Lucena en [6] extendieron UML representando una clase de patrones dediseño llamados “patrones de configuración”. La extensión a UML fue desarrolladaexpresando 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. 5. especificar perspectivas de patrones; tales como estructura estática e iteraciones. Unaespecificació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 depatrones para documentación, pero mostraron otras interesantes características. Sanada yAdams en [7] extendieron UML para soportar patrones de diseño en diagramas de clases. Dangy Yang en [8] presentaron un perfil UML para una mejor visualización de patrones de diseñoen diagramas de clases.Barotto y Demonte en [11] propusieron una definición de patrones de diseño através del metamodelo UML. Utilizaron estereotipos con restricciones OCL paraespecificar 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ÑOAlgunas investigaciones están orientadas a la definición de Patrones de Diseño con PerfilesUML. Estas, analizan las ventajas de los perfiles para definir, documentar y visualizarpatrones de diseño. Al definir un perfil por cada patrón, estas van conformando una libreríade patrones especificados con perfiles UML. Además, de cierta forma intentan mostrarque las herramientas UML son suficientes para introducir perfiles de patrones, sinimplementar una herramienta específica para patrones.
  6. 6. Algunos resultados parcialesPara comenzar se seleccionaron los patrones diseño denominados “estructurales” de [3]. Laexperiencia 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 acontinuación (el metamodelo UML es mostrado en la Figura 2 para entender mejor lasespecificaciones OCL).Children:(Core::Association)inv:self.connection->exists(participant.isSterotyped (“Composite”) and multiplicity.min=1 andmultiplicity.max=1) andself.connection->forAll (c1,c2|c1.participant.isSterotyped (“Composite”)andc2.participant.isSterotyped (“Component”)implies c1.aggregation=#composite and c2.aggregation=#none )
  7. 7. Conclusiones y trabajos futurosLos 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 perfilesde 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 definirperfiles UML. El análisis de las bondades de las diferentes herramientas, permitirá elaboraruna 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á siendoutilizado 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 patronesde diseño. Luego del análisis de las especificaciones resultantes, se podrá empezar adesarrollar una arquitectura para patrones usando perfiles UML.
  8. 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 StandardISO/IEC 19501.[3] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns. Elements of ReusableObject- 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 UML2000, Vol. 1939 LNCS, 2000, pp. 482-496.[6] M. Fontoura, C. Lucena, “Extending UML to Improve the Representation of DesignPatterns”, Journal of Object Technology, 2000.[7] Y. Sanada, R. Adams, “Representing Design Patterns and Frameworks in UML. Towardsa Comprehensive Approach”, Journal of Object Technology, Vol.1(2), 2002, pp.143–154.
  9. 9. [8] J. Dong, S. Yang, “Visualizing Design Patterns With A UML Profile”, IEEE Symposiumon 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 Profilefor Enterprise distributed Object. Computing (EDOC) Specification”,http://www.omg.org/technology/ documents, 2004.[11] V. Barotto, M. Demonte, D. Riesco. “Definición de Patrones deDiseño a través del metamodelo UML”. Tesis de Licenciatura en Ciencias de laComputación. Universidad Nacional de Río IV, Argentina. 2005.

×