22 research outputs found
Ontological Representations of Software Patterns
This paper is based on and advocates the trend in software engineering of
extending the use of software patterns as means of structuring solutions to
software development problems (be they motivated by best practice or by company
interests and policies). The paper argues that, on the one hand, this
development requires tools for automatic organisation, retrieval and
explanation of software patterns. On the other hand, that the existence of such
tools itself will facilitate the further development and employment of patterns
in the software development process. The paper analyses existing pattern
representations and concludes that they are inadequate for the kind of
automation intended here. Adopting a standpoint similar to that taken in the
semantic web, the paper proposes that feasible solutions can be built on the
basis of ontological representations.Comment: 7 page
UML-F: A Modeling Language for Object-Oriented Frameworks
The paper presents the essential features of a new member of the UML language
family that supports working with object-oriented frameworks. This UML
extension, called UML-F, allows the explicit representation of framework
variation points. The paper discusses some of the relevant aspects of UML-F,
which is based on standard UML extension mechanisms. A case study shows how it
can be used to assist framework development. A discussion of additional tools
for automating framework implementation and instantiation rounds out the paper.Comment: 22 pages, 10 figure
Una integración de patrones de diseño en procesos de ingeniería forward de modelos estáticos UML
Los patrones de diseño describen soluciones a problemas de diseño recurrentes. Si bien no hay consenso sobre la forma de integrar patrones de diseño en el desarrollo de software (usando por ejemplo herramientas o lenguajes), si lo hay en cuanto a que la tarea debería ser automatizada o al menos asistida. La experiencia industrial (Beck, 1996) indica que los patrones de diseño reducen los tiempos de desarrollo, facilitan la comunicación, pero su aplicación manual es tediosa, propensa a errores y a pérdida de traceability.
La importancia del diseño de software a partir de patrones de diseño es ampliamente reconocida.
Varios IDEs (Integrated Development Environments) y ambientes de modelado de software basados en UML (OMG, 2004) han comenzado a introducir soporte para patrones de diseño aunque las herramientas comerciales existentes proveen limitada asistencia para la generación de código a partir de los mismos. La mayoría simplemente asiste en un proceso “cortar y pegar”, en el cual el diseñador selecciona un patrón y obtiene una pieza de código en el lenguaje apropiado. El programador necesita luego ajustar el código obtenido a la implementación (Peckham y Lloyd, 2003). En general, las técnicas empleadas no son independientes del lenguaje y son incapaces de generar código en más de un lenguaje.
Estas propuestas asumen que los patrones de diseño involucran clases dedicadas a su rol como el de colaborador dentro de un patrón de diseño particular. En general esto no es verdad, los patrones raramente existen en forma aislada. Con frecuencia un colaborador en un patrón juega un rol diferente en otro. La definición de patrón pone el énfasis en esto: un patrón es "una solución a un problema en un contexto particular" (Gamma y otros,1995). Es más, un patrón es implementado generando no sólo nuevas clases y métodos, sino adaptando el contexto existente, es decir, las construcciones de código preexistentes, a los roles que asumen en el nuevo patrón aplicado (Eden y otros, 1997).Eje: Ingeniería de SoftwareRed de Universidades con Carreras en Informática (RedUNCI
Una integración de patrones de diseño en procesos de ingeniería forward de modelos estáticos UML
Los patrones de diseño describen soluciones a problemas de diseño recurrentes. Si bien no hay consenso sobre la forma de integrar patrones de diseño en el desarrollo de software (usando por ejemplo herramientas o lenguajes), si lo hay en cuanto a que la tarea debería ser automatizada o al menos asistida. La experiencia industrial (Beck, 1996) indica que los patrones de diseño reducen los tiempos de desarrollo, facilitan la comunicación, pero su aplicación manual es tediosa, propensa a errores y a pérdida de traceability. La importancia del diseño de software a partir de patrones de diseño es ampliamente reconocida. Varios IDEs (Integrated Development Environments) y ambientes de modelado de software basados en UML (OMG, 2004) han comenzado a introducir soporte para patrones de diseño aunque las herramientas comerciales existentes proveen limitada asistencia para la generación de código a partir de los mismos. La mayoría simplemente asiste en un proceso “cortar y pegar”, en el cual el diseñador selecciona un patrón y obtiene una pieza de código en el lenguaje apropiado. El programador necesita luego ajustar el código obtenido a la implementación (Peckham y Lloyd, 2003). En general, las técnicas empleadas no son independientes del lenguaje y son incapaces de generar código en más de un lenguaje. Estas propuestas asumen que los patrones de diseño involucran clases dedicadas a su rol como el de colaborador dentro de un patrón de diseño particular. En general esto no es verdad, los patrones raramente existen en forma aislada. Con frecuencia un colaborador en un patrón juega un rol diferente en otro. La definición de patrón pone el énfasis en esto: un patrón es "una solución a un problema en un contexto particular" (Gamma y otros,1995). Es más, un patrón es implementado generando no sólo nuevas clases y métodos, sino adaptando el contexto existente, es decir, las construcciones de código preexistentes, a los roles que asumen en el nuevo patrón aplicado (Eden y otros, 1997)
Una integración de patrones de diseño en procesos de ingeniería forward de modelos estáticos UML
Los patrones de diseño describen soluciones a problemas de diseño recurrentes. Si bien no hay consenso sobre la forma de integrar patrones de diseño en el desarrollo de software (usando por ejemplo herramientas o lenguajes), si lo hay en cuanto a que la tarea debería ser automatizada o al menos asistida. La experiencia industrial (Beck, 1996) indica que los patrones de diseño reducen los tiempos de desarrollo, facilitan la comunicación, pero su aplicación manual es tediosa, propensa a errores y a pérdida de traceability. La importancia del diseño de software a partir de patrones de diseño es ampliamente reconocida. Varios IDEs (Integrated Development Environments) y ambientes de modelado de software basados en UML (OMG, 2004) han comenzado a introducir soporte para patrones de diseño aunque las herramientas comerciales existentes proveen limitada asistencia para la generación de código a partir de los mismos. La mayoría simplemente asiste en un proceso “cortar y pegar”, en el cual el diseñador selecciona un patrón y obtiene una pieza de código en el lenguaje apropiado. El programador necesita luego ajustar el código obtenido a la implementación (Peckham y Lloyd, 2003). En general, las técnicas empleadas no son independientes del lenguaje y son incapaces de generar código en más de un lenguaje. Estas propuestas asumen que los patrones de diseño involucran clases dedicadas a su rol como el de colaborador dentro de un patrón de diseño particular. En general esto no es verdad, los patrones raramente existen en forma aislada. Con frecuencia un colaborador en un patrón juega un rol diferente en otro. La definición de patrón pone el énfasis en esto: un patrón es "una solución a un problema en un contexto particular" (Gamma y otros,1995). Es más, un patrón es implementado generando no sólo nuevas clases y métodos, sino adaptando el contexto existente, es decir, las construcciones de código preexistentes, a los roles que asumen en el nuevo patrón aplicado (Eden y otros, 1997)
Una integración de patrones de diseño en procesos de ingeniería forward de modelos estáticos UML
Los patrones de diseño describen soluciones a problemas de diseño recurrentes. Si bien no hay consenso sobre la forma de integrar patrones de diseño en el desarrollo de software (usando por ejemplo herramientas o lenguajes), si lo hay en cuanto a que la tarea debería ser automatizada o al menos asistida. La experiencia industrial (Beck, 1996) indica que los patrones de diseño reducen los tiempos de desarrollo, facilitan la comunicación, pero su aplicación manual es tediosa, propensa a errores y a pérdida de traceability.
La importancia del diseño de software a partir de patrones de diseño es ampliamente reconocida.
Varios IDEs (Integrated Development Environments) y ambientes de modelado de software basados en UML (OMG, 2004) han comenzado a introducir soporte para patrones de diseño aunque las herramientas comerciales existentes proveen limitada asistencia para la generación de código a partir de los mismos. La mayoría simplemente asiste en un proceso “cortar y pegar”, en el cual el diseñador selecciona un patrón y obtiene una pieza de código en el lenguaje apropiado. El programador necesita luego ajustar el código obtenido a la implementación (Peckham y Lloyd, 2003). En general, las técnicas empleadas no son independientes del lenguaje y son incapaces de generar código en más de un lenguaje.
Estas propuestas asumen que los patrones de diseño involucran clases dedicadas a su rol como el de colaborador dentro de un patrón de diseño particular. En general esto no es verdad, los patrones raramente existen en forma aislada. Con frecuencia un colaborador en un patrón juega un rol diferente en otro. La definición de patrón pone el énfasis en esto: un patrón es "una solución a un problema en un contexto particular" (Gamma y otros,1995). Es más, un patrón es implementado generando no sólo nuevas clases y métodos, sino adaptando el contexto existente, es decir, las construcciones de código preexistentes, a los roles que asumen en el nuevo patrón aplicado (Eden y otros, 1997).Eje: Ingeniería de SoftwareRed de Universidades con Carreras en Informática (RedUNCI
Reifying Design Patterns as Metalevel Constructs
A design pattern describes a structure of communicating components that solves a commonly occurring design problem. Designing with patterns offers the possibility of raising the abstraction level at which design is performed, with improvements in clarity, understanding, and facility of maintenance of applications. However, in their most common presentation, design patterns are informal pieces of design process, which application is not reflected in the operational system, and the potential advantages of a more principled design are not realized. This work proposes to organize design in such a way that pattern applications remain explicit in the operational systems. A reflective architecture is proposed, where patterns are reified as metalevel constructs.Sociedad Argentina de Informática e Investigación Operativ
Framework de evaluación para modelos formales de patrones de diseño
Patrones de diseño es una herramienta de soporte como técnica de reuso y anticipación al cambio. Su descripción es habitualmente bastante informal no permitiendo concluir cuándo y cómo un patrón es aplicado correctamente. En esto el uso de lenguajes formales ayuda a su descripción. En este trabajo se resumen las limitaciones de los lenguajes informales y los requisitos de un lenguaje formal para la adecuada descripción y utilización de patrones de diseño. Dadas las diferentes opciones en modelos formales actuales, se conformó un Framework de Evaluación compuesto de dos partes. La primera incluye 14 características para analizar los lenguajes formales utilizados para desarrollar los Modelos de Patrones OO. La segunda se compone de 10 aspectos referentes a los modelos propiamente dichos. El objetivo de este Framework es adquirir mayor conocimiento de las ventajas y falencias de los modelos formales y así comprender aún mejor los elementos constituyentes requeridos en un lenguaje formal para una apropiada representación de patrones. Los diseñadores pueden beneficiarse con un proceso de Diseño basado en Patrones soportado por una descripción precisa de patrones con la flexibilidad adicional de herramientas automáticas basadas en los modelos formales desarrollados.Eje: Ingeniería de Software y Bases de Datos (ISBD)Red de Universidades con Carreras en Informática (RedUNCI
Framework de evaluación para modelos formales de patrones de diseño
Patrones de diseño es una herramienta de soporte como técnica de reuso y anticipación al cambio. Su descripción es habitualmente bastante informal no permitiendo concluir cuándo y cómo un patrón es aplicado correctamente. En esto el uso de lenguajes formales ayuda a su descripción. En este trabajo se resumen las limitaciones de los lenguajes informales y los requisitos de un lenguaje formal para la adecuada descripción y utilización de patrones de diseño. Dadas las diferentes opciones en modelos formales actuales, se conformó un Framework de Evaluación compuesto de dos partes. La primera incluye 14 características para analizar los lenguajes formales utilizados para desarrollar los Modelos de Patrones OO. La segunda se compone de 10 aspectos referentes a los modelos propiamente dichos. El objetivo de este Framework es adquirir mayor conocimiento de las ventajas y falencias de los modelos formales y así comprender aún mejor los elementos constituyentes requeridos en un lenguaje formal para una apropiada representación de patrones. Los diseñadores pueden beneficiarse con un proceso de Diseño basado en Patrones soportado por una descripción precisa de patrones con la flexibilidad adicional de herramientas automáticas basadas en los modelos formales desarrollados.Eje: Ingeniería de Software y Bases de Datos (ISBD)Red de Universidades con Carreras en Informática (RedUNCI
Formal specification of the variants and behavioural features of design patterns
The formal specification of design patterns is widely recognized as being vital to their effective and correct use in software development. It can clarify the concepts underlying patterns, eliminate ambiguity and thereby lay a solid foundation for tool support. This paper further advances a formal meta-modelling approach that uses first order predicate logic to specify design patterns. In particular, it specifies both structural and behavioural features of design patterns and systematically captures the variants in a well-structured format. The paper reports a case study involving the formal specification of all 23 patterns in the Gang of Four catalog. It demonstrates that the approach improves the accuracy of pattern specifications by covering variations and clarifying the ambiguous parts of informal descriptions