4 research outputs found

    Manejando la evolución de aplicaciones web con adaptación

    Get PDF
    La complejidad es una característica inherente al software desde sus orígenes, e igualmente característico es que dicha complejidad crece en consonancia con el universo de roles que desempeña en la actualidad. Permanentemente aparecen nuevas ideas, metodologías y herramientas para hacerle frente, que atacan diferentes aspectos del ciclo de vida de desarrollo de software, o más aún, los enfoques del ciclo mismo. Gran parte de la complejidad tiene que ver con la necesidad de estar preparado para adecuarse permanentemente a nuevos requerimientos. Reusabilidad, encapsulamiento, binding dinámico, han sido respuestas con la que el paradigma de objetos ha respondido a esta problemática y junto a estas, la separación de responsabilidades de un conjunto de parte que cooperan entre si, tiene un lugar destacado como lo demuestra el pattern modelo vista controlador originado en Smalltalk separando y desacoplando tareas de interfase y del modelo de la aplicación. Más allá de interfases y aplicaciones, la separación de responsabilidades y el desacoplamiento entre clases, desde un punto de vista más general, es abordada por una serie de design patterns así como su contraparte necesaria, el aspecto cooperativo entre las mismas. En este último aspecto, el pattern Observer aborda la problemática de un conjunto indeterminado de objetos observadores que requieren ser notificados y actualizados respecto de cambios de estado de otro objeto determinado. El pattern permite la evolución de los observadores, incluso el agregado o eliminación de algunos de ellos sin interferir en el objeto observado, lo que permite disminuir el impacto que cambios de una parte del software, tales como vistas u observadores pueden requerir sobre otra, tales como el modelo o elementos observados. Como cualquier disciplina, el software, y particularmente su diseño, evoluciona a medida que se sistematizan aspectos del mismo. Los design patterns constituyen un hito sustancial en la sistematización de soluciones a problemas que se repiten en el diseño de diversas aplicaciones. Sobre este hito se desarrolla otro, el refactoring o reestructuración de programas orientados a objeto, que tiene por objetivo introducir en forma automática mejoras, en especial design patterns en el código, sin modificar su comportamiento. La reestructuración es un paso previo a la introducción de nuevas prestaciones del software existente.Facultad de Informátic

    Automating the Evolution of Object-Oriented Systems

    No full text
    . A formal framework is presented for maintaining behavior and consistency of object-oriented systems during software evolution. The framework effectively couples a change avoidance approach based on Adaptive Object-Oriented Software with a change management mechanism to fully automate evolution. Schema transformations may render existing objects and programs inconsistent. The framework identifies the introduced inconsistencies and provides the necessary object and program transformations to reinstate consistency while maintaining the behavior of the system. A formal definition of behavioral equivalence is given. To prove behavioral equivalence of adaptive programs, the paper includes a formal semantics for adaptive software. Finally, the feasibility of the framework is demonstrated for a representative set of primitive schema transformations. Keywords: object-oriented system evolution; management of change; schema evolution. 1 Introduction Code management is important because poor co..
    corecore