22 research outputs found

    Ontological Representations of Software Patterns

    Full text link
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore