Metodologías y Herramientas para el Desarrollo Evolutivo de Software

| cambiar idioma a English

Metodologías y Herramientas para el Desarrollo Evolutivo de Software

Datos Académicos

Módulo Ingeniería del Software Avanzada
Código UGR 125.56.1.24
Carácter Optativo
Créditos 4.0 ECTS
Modalidad Semipresencial/Virtual
Idioma Español
Profesor Responsable Patricia Paderewski Rodríguez

Breve Descripción de Contenidos

El desarrollo de software es un proceso iterativo en el que el producto cambia con extrema facilidad. Tradicionalmente los enfoques de desarrollo para el mantenimiento han perseguido incrementar la mantenibilidad del software. Numerosas tendencias apuntan actualmente a considerar el mantenimiento como una parte concreta de un fenómeno de mayor envergadura teórica y práctica: la evolución del software.

Nuestro interés en este curso es aunar el desarrollo orientado a objetos con una visión del desarrollo como proceso evolutivo, de forma que todo el proceso se dirija hacia la inevitabilidad, versatilidad e integración del cambio.

  1. Conceptos previos
  2. La evolución en el desarrollo orientado a objetos
  3. Evolución en los procesos de desarrollo
  4. Mecanismos de evolución en programación y diseño
  5. Arquitecturas del software y evolución
  6. Mecanismos de evolución en especificación

Temario detallado

  1. Conceptos previos
    1. Sistema, representación y evolución de un sistema
    2. Del mantenimiento a la evolución
    3. Abstracción
    4. Modelos y metamodelos
    5. Evolución, metamodelos y propagación del cambio
  2. La evolución en el desarrollo orientado a objetos.
    1. Una visión general del desarrollo O-O
    2. Los procesos iterativos y el RUP (Proceso Unificado Rational)
    3. Los puntos claves en la evolución O-O: abstracción y metamodelado
    4. UML y el metamodelado
  3. Evolución en los procesos de desarrollo
    1. Modelado de procesos: Simulación, control y ejecución de procesos.
    2. La evolución en la gestión de proyectos: gestión de la comunicación y del cambio
  4. Mecanismos de evolución en programación y diseño
    1. Metaclases
    2. Reflexión
    3. Patrones de diseño
    4. Técnicas de separación de responsabilidades (Concerns)
  5. Arquitecturas del software y evolución
    1. Arquitecturas software
    2. Arquitecturas dinámicas
    3. Componentes y reutilización
    4. Arquitectura evolutiva basada en agentes
  6. Mecanismos de evolución en especificación
    1. Implementación directa de especificaciones
    2. Evolución de esquemas y objetos. Refactorización
    3. Especificaciones formales
    4. Nivel meta y desarrollo basados en modelos
    5. Nivel meta y sistemas parametrizables
    6. Nivel meta y sistemas evolutivos

Otros

Más información de la asignatura en el portal de LSI: Metodologías y Herramientas para el Desarrollo Evolutivo de Software