380 likes | 616 Views
2.- Metodologías de desarrollo software Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA. Contenidos. Definición Un hecho Ventajas de la metodología Ciclo de vida Funciones básicas de una metodología Ciclos de vida clásicos Ciclo de vida en cascada
E N D
2.- Metodologías de desarrollo software Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Contenidos • Definición • Un hecho • Ventajas de la metodología • Ciclo de vida • Funciones básicas de una metodología • Ciclos de vida clásicos • Ciclo de vida en cascada • Ciclo de vida en cascada con refinamiento por mejoras • Prototipado y maquetaje • Ciclo de vida en espiral • Procesos clásicos: • IEEE • Métrica v3 • Proceso Unificado
Definición • Conjunto de métodos que se utilizan para desarrollar una actividad con el objetivo de formalizarla y optimizarla. • En ISW: optimización del proceso y producto SW. • Elementos de una metodología: • Fases: jerarquización ordenada del desarrollo completo. • Productos -intermedios y final-. • Procedimientos y herramientas. • Criterios de evaluación.
Un hecho • La mayor parte de los proyectos SW FRACASAN: • Mala evaluación de objetivos. • Mala planificación de recursos/tiempos/costes. • Participación insuficiente de la dirección. • Falta de acuerdos entre objetivos y planificación. • Rotación del personal clave. • Cambio de objetivos sin revisar la planificación. • Propósito no claro por/para los usuarios. • Falta de hitos y metas. • Poca comprensión del problema. • Poca calidad del producto. • Mala planificación A PROPÓSITO.
Ventajas de la metodología (I) • Desde el punto de vista de gestión • Facilita la planificación • Facilita el control y seguimiento de los proyectos • Mejora del ratio coste/beneficio • Optimiza la gestión de recursos • Facilita la comunicación entre los participantes • Facilita la evaluación de los proyectos
Ventajas de la metodología (II) • Desde el punto de vista de los Ingenieros en el desarrollo • Comprensión del problema • Optimización del proceso, y dentro del proceso las fases a seguir • Facilidad de mantenimiento • Algunos criterios sobre reusabilidad
Ventajas de la metodología (y III) • Desde el punto de vista del cliente/usuario final • Garantiza en la medida de lo posible la calidad del producto • Mayor confianza
Ciclo de vida • … o PARADIGMA: conjunto de fases por las que pasa el sistema que se está desarrollando desde que nace la idea hasta que el SW se retira o se reemplaza.
Funciones básicas de una metodología • Definición del ciclo de vida • Que se adecúe a las condiciones y características del desarrollo. • Determinación de las fases dentro del ciclo de vida. • Definición de resultados intermedios y finales. • Conjunto de métodos, herramientas y técnicas para facilitar la tarea del IS y aumentar su productividad.
Ciclos de vida clásicos (I) • Ciclo de vida en cascada • Características: • Visión del proceso de desarrollo como una sucesión de etapas que producen productos intermedios. • Deben desarrollarse todas las fases. • Limitaciones: • No se permiten iteraciones. • Los requisitos SE CONGELAN AL PRINCIPIO DEL PROYECTO. • No existe un producto enseñable hasta el final del proyecto.
Ciclos de vida clásicos (III) • Ciclo de vida en cascada con refinamiento por mejoras • Añade la capacidad de retorno de cada fase a la fase anterior. • Después se permitió pasar a cualquier fase.
Ciclos de vida clásicos (V) • Prototipado y maquetaje • Para evitar la tercera limitación del ciclo de vida en cascada se crean los siguientes modelos de desarrollo de productos SW: • Desarrollo basado en prototipo: • Valida la solución informática. • Es ya parte del sistema. • Da una visión de la dificultad del proyecto final. • Desarrollo basado en maqueta: • No valida la solución informática. • Se usa si no se conoce bien el nivel de dificultad. • Interfaz de usuario y módulo de comunicaciones.
Ciclos de vida clásicos (VI) • Ciclo de vida en espiral • Utilizado cuando existen muchos riesgos y hay que buscar alternativas. • Desventajas: • Muy complicado. • Consume muchos recursos. • Las fases no están claramente definidas.
Procesos Clásicos • Introducimos ahora brevemente un conjunto de procesos que se han utilizado y se utilizan a lo largo de la historia de la ingeniería de software: • Proceso IEEE 12207. • Proceso Métrica v3. • Proceso Unificado.
Procesos Clásicos: IEEE (I) • Sobre él se define el ciclo de vida y su funcionamiento, no sólo del desarrollo sino de gestión, desarrollo integral, etc: • Procesos de Gestión del Proyecto • Creación de la estructura del proyecto • Iniciación del proyecto • Estimación y planificación • Selección de estándares, metodología, herramientas, … • Planes de gestión: objetivos de cada fase. • Seguimiento y control de proyecto • Análisis de riesgos -comparación con los previstos-. • Gestión y coordinación del proyecto. • Gestión de la calidad del SW • Definición y control de métricas. • Plan de validación y verificación. • Plan de gestión de configuraciones del producto SW.
Procesos Clásicos: IEEE (II) • Procesos Orientados al desarrollo del SW • Predesarrollo • Exploración de conceptos: análisis de viabilidad. • Asignación del sistema: • Identificación de las funciones HW, SW e interfaces. • Definición global de requisitos: • Entradas y salidas del sistema. • Relación con otros elementos del entorno. • Personas que van a participar en el proyecto. • Arquitectura general del sistema. • Flujo de datos del sistema. • Criterios de evaluación.
Procesos Clásicos: IEEE (III) • Procesos de desarrollo • Análisis de requisitos. • Diseño. • Implementación • Procesos de post-desarrollo • Instalación/entrega. • Operación y soporte: • Asistencia técnica. • Consultas. • Operación del SW. • Mantenimiento: • Actividades perfectivas/evolutivas: mejoras. • Actividades adaptativas: modificaciones. • Actividades correctivas: correcciones de fallos. • Actividades preventivas: mediante mantenimiento continuo. • Retiro: • Finalización de operaciones y retiro del sistema.
Procesos Clásicos: IEEE (y IV) • Procesos Integrales del Proyecto • Pruebas • Verificación, validación y evaluación. • Gestión de configuraciones • Identificación de los elementos de un proyecto. • Control de la evolución de los elementos. • Generación de informe de estados de la configuración. • Documentación • Planificación de documentación. • Realización de la documentación. • Distribución y mantenimiento -a veces internamente-. • Formación • Planificación del programa de formación. • Desarrollo de los materiales necesarios. • Ejecución del programa.
Procesos Clásicos: Métrica v3 (I) • http://www.map.es/csi/metrica3 • Forma común de trabajo en el seno de las organizaciones. • Reducción de plazos y costes. • Aumento de la calidad y productividad. • Mayor satisfacción.
Procesos Clásicos: Métrica v3 (II) • Procesos Principales: • Planificación (PSI) • Desarrollo • Estudio de viabilidad (EVS) • Análisis (ASI) • Diseño (DSI) • Construcción (CSI) • Implantación y aceptación (IAS) • Mantenimiento (MSI)
Procesos Clásicos: Métrica v3 (y X) • Interfaces
Procesos Clásicos: PU (I) • Contaremos poco del PU ahora, pues lo estudiaremos en detalle posteriormente. • El proceso unificado proviene de otros exitosos procesos anteriores creados por: • James Rumbaugh: OMT (Object Modeling Technique) • Grady Booch: Chief Scientist. • Ivar Jacobson: • Concepto de “Building Blocks”. • Diagramas de secuencia. • SDL. • Casos de uso. • Objectory Process.
Procesos Clásicos: PU (y II) • Proviene de: • Objectory • OMT • Rational Approach
Otros procesos • Método Shlaer/Mellor • www.projtech.com • Particionamiento del sistema en dominios para su posterior análisis. • Verificación del análisis mediante ejecución. • Método Coad/Yourdon • Aproximación orientada a prototipo • Aproximación ligera
Bibliografía • Artículos: • Theory-W Software Project Management: principles and examples. B.Boehm, R. Ross, UCLA. IEEE Transactions on Software Engineering, 1989. • The Shlaer-Mellor method. S. Shlaer, S. J. Mellor. Project Technology. • Enlaces: • Cetus Links sobre metodologías: http://www.cetus-links.org/oo_ooa_ood_methods.html