Post on 20-Sep-2018
25/11/2011
1
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Temario de la clase
Metodologías de desarrollo de un proyecto
Definiciones
Características
Metodologías
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Metodologías de Desarrollo de proyectos
Metodología: Definiremos como Metodología de Desarrollode Proyectos a un conjunto de métodos empleados para eldesarrollo de sistemas automatizados. Lo más relevante de unametodología, es su capacidad de entregar una notación, ladescripción de un proceso a seguir y la entrega de herramientasde apoyo al desarrollo de Sistemas.
25/11/2011
2
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Además de una "notación, de un proceso, y de herramientas," estas metodologías proporcionan:
• Guías para estimar costos,• Manejo del proyecto en las tareas y entregas,• Medidas y métricas,• Formas definidas y dirección en las entregas de la construcción,• Políticas y procedimientos para garantizar la calidad del software,• Descripciones de los roles y programas de entrenamiento detallados,• Ejemplos totalmente trabajados,• Ejercicios de entrenamiento,• Técnicas para adaptar el método, y• Técnicas definidas
Metodologías de Desarrollo de proyectos
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Metodologías Tradicionales en el Desarrollo
• Exponer procesos basados en planeación exhaustiva.
• El resultado de cada proceso es determinante y predecible.
Sin embargo, por las características del software,
• Los resultados de los procesos no son siempre predecibles,
• Es difícil predecir desde el comienzo del proyecto cada resultado.
• Las métricas permiten estimaciones acertadas en contextos de desarrollo repetibles.
Inicialmente el modelo de desarrollo de un proyecto de software, se generó apartir de teorías de administración de proyectos de construcción demanufactura o edificación, lo que suponía la realización de etapas sucesivas ysecuenciales, con productos claramente medibles e identificables comoresultado de cada etapa. Este modelo se denominó Modelo en Cascada.
Se caracterizan por:
25/11/2011
3
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Comprensión del proceso, el rendimiento y las interfaces requeridas
El Modelo de Cascada (Bennington 1956) fue uno de los primeros modelos de ciclo de vida que formalizó un conjunto de procesos de desarrollo de software.
Este modelo describe un orden secuencial en la ejecución de los procesos asociados.
Definición de Requerimiento
sDiseño
Codificación(Implementaci
ón) Prueba
Op y Mantenimiento
Genera la estructura de los datos, la arquitectura del software, el detalle procedimental y la caracterización de la interfaz
Genera la codificación de los distintos módulos
Realiza pruebas que aseguren que la entrada definida produce los resultados que se requieren
Adecuaciones al sistema debido a errores, a adaptaciones a cambios del entorno, o por nuevos requerimientos del cliente
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Modelo de Cascada Definición de
Requerimientos
Diseño del Softwarey del Sistema
Implementación yPrueba de unidades
Integración y Prueba del Sistema
Operación yMantenimiento
25/11/2011
4
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Definición de Requerimientos
Diseño
Codificación(Implementación)
Prueba
Op y Mantenimiento
La ventaja de este método radica en su sencillez, al seguir los pasos intuitivos necesarios a la hora de desarrollar el software
Bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida.
El Modelo de Cascada - Ventajas
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
El Modelo de Cascada - Desventajas Definición de Requerimientos
Diseño
Codificación(Implementación)
Prueba
Op y Mantenimiento
Los proyectos reales raramente siguen el flujo secuencial que propone el modelo, siempre hay iteraciones y se crean problemas en la aplicación del paradigma.
Normalmente, es difícil para el cliente establecer explícitamente al principio todos los requisitos. El ciclo de vida clásico lo requiere y tiene dificultades en acomodar posibles incertidumbres que pueden existir al comienzo de muchos productos.
El cliente debe tener paciencia. Hasta llegar a las etapas finales del proyecto, no estará disponible una versión operativa del programa. Un error importante no detectado hasta que el programa este funcionando puede ser desastroso.
Metodologías Tradicionales en el Desarrollo
25/11/2011
5
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
• Los sistemas de software son intangibles por lo que los administradores necesitan documentación para identificar el progreso en el desarrollo.
• Esto puede causar problemas.. El tiempo planeado para entrega de resultados puede no coincidir con el tiempo
necesario para completar una actividad. La necesidad de producir documentos restringe la iteración entre procesos. .El tiempo para revisar y aprobar documentos es significativo.
• El modelo de cascada es aún el modelo basado en resultados mas utilizado.
Visibilidad de Procesos
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
El Modelo Incremental se postuló como un refinamiento del modelo de cascada.
Mantiene el esquema de etapas, pero éstas son repetitivas hasta lograr la satisfacción de los requerimientos del cliente.
Definición de Requerimientos
Diseño
Codificación(Implementación)
RequerimientoDe Software
Diseño
Codificación(Implementación)
RequerimientoDe Software
Diseño
Codificación(Implementación)
RequerimientoDe Software
Diseño
Codificación(Implementación)
RequerimientoDe Software
•••
Metodologías Tradicionales en el Desarrollo
25/11/2011
6
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Se evitan proyectos largos y se entrega “Algo de valor” a los usuarios con cierta frecuencia El usuario se involucra más
El Modelo Incremental - Desventajas
El Modelo Incremental - Ventajas
Difícil de evaluar el costo total
Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo
Requiere gestores experimentados
Los errores en los requisitos se detectan tarde.
El resultado puede ser muy positivo
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
El Modelo en Espiral se postuló como una alternativa al modelo de cascada.
El modelo de cascada y el modelo espiral suponen, de manera general, que los requerimientos del cliente no cambian radicalmente en el transcurso del desarrollo del sistema. Las fase de este modelo son:
• Planteamiento de Objetivos– Se identifican los objetivos específicos para cada fase del proyecto.
• Identificación y reducción de riesgos.– Los riesgos clave se identifican y analizan, y la información sirve para
minimizar los riesgos.• Desarrollo y Validación.
– Se elige un modelo apropiado para la siguiente fase del desarrollo.• Planeación.
– Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.
Metodologías Tradicionales en el Desarrollo
25/11/2011
7
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos InformáticosModelo de Proceso de Espiral
Determinación de objetivos
alternativas yrestricciones
Evaluación de alternativas,identificación y resolución de
riesgos
Análisisde
Riesgos
Planeamiento de la siguiente fase
Desarrollar y verificarel siguiente nivel
del producto
Prototipo 1
Plan de requerimientosPlan del ciclo de vida
REVISIÓN
Concepto deOperación
Codificación
Análisis deRiesgos
Análisis deRiesgos
Análisis deRiesgos
PrototipoOperacionalPrototipo
3Prototipo2
Plan de Desarrollo
Plan de Integracióny Prueba
Simulaciones, modelos y benchmarks
Requerimientos de
SWValidación deRequerimientosDiseñoV &V
Servicio
Prueba deAceptación
Prueba deIntegración
Prueba deUnidades
DiseñoDetallado
Diseñodel
Producto
modelo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Plantilla para una ronda del espiral
• Objetivos.
La ventaja del Modelo en Espiral radica en el perfeccionamiento de las soluciones encontradas con cada ciclo de desarrollo, en términos de dar respuesta a los requerimientos inicialmente analizados.
Los pasos a seguir en cada ciclo de la espiral son:
Determinación de objetivos
alternativas yrestricciones
Evaluación de alternativas,identificación y resolución de
riesgos
Planea la siguiente fase
Desarrollar y verificarel siguiente nivel
del producto
• Restricciones.• Alternativas.• Riesgos.• Resolución de riesgos.• Resultados.• Planes.• Garantías.
25/11/2011
8
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Flexibilidad en el modelo de Espiral
• Para sistemas bien comprendidos utiliza el Modelo de Cascada. La fase de análisis de riesgos es relativamente fácil.
• Con requerimientos estables y sistemas de seguridad críticos, utiliza modelos formales.
• Con especificaciones incompletas, utiliza el modelo de prototipado.• Pueden utilizarse modelos híbridos en distintas partes del desarrollo.
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Ventajas del Modelo de Espiral
• Centra su atención en la reutilización de componentes y eliminación de errores en información descubierta en fases iniciales.
• Los objetivos de calidad son el primer objetivo.• Integra desarrollo con mantenimiento.• Provee un marco de desarrollo de hardware/software.
Metodologías Tradicionales en el Desarrollo
25/11/2011
9
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Problemas con el Modelo de Espiral
• El desarrollo contractual especifica el modelo del proceso y los resultados a entregar por adelantado.
• Requiere de experiencia en la identificación de riesgos.• Requiere refinamiento para uso generalizado.
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Una técnica complementaria, El Prototipado (realización de prototipos) es una herramienta en la que se apoyan diferentes metodologías. Un prototipo debe tener el objetivo de mostrar al cliente una maqueta del resultado que se obtendrá de la implementación de cada uno de los requerimientos del cliente una vez terminado el desarrollo. Con los prototipos se tiene la posibilidad de obtener retroalimentación de manera temprana.
Recolección y Refinamientos
Diseño Rápido
Construcción de Prototipo
Prueba
Aprobación y/o Obs del usuario
Refinamiento del Prototipo
IngenieríaR y Ref
Prot
PruebaAprob
Ref
Ing
Partida
Metodologías Tradicionales en el Desarrollo
25/11/2011
10
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Las características más relevantes de la técnica de Prototipos son las siguientes: No modifica el flujo del ciclo de vida Reduce el riesgo de construir productos que no satisfagan las necesidades de
los usuarios Reduce costos y aumenta la probabilidad de éxito
Exige disponer de las herramientas adecuadas No presenta calidad ni robustez Una vez identificados todos los requisitos mediante el prototipo, se construye
el producto de ingeniería.
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Debe ser un sistema con el que se pueda experimentar Debe ser comparativamente barato (< 10%) Debe desarrollarse rápidamente Énfasis en la interfaz de usuario Equipo de desarrollo reducido Herramientas y lenguajes adecuados
Para que el modelo de Prototipos sea efectivo, se requiere:
Metodologías Tradicionales en el Desarrollo
25/11/2011
11
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos InformáticosModelo por Prototipos
• Prototipado exploratorio El objetivo es trabajar con clientes hasta evolucionar a un sistema final,
a partir de una especificación inicial. Se debe comenzar con unas especificaciones bien entendidas.
Puede ser usado como base del sistema
• Prototipado de “throw-away” (desechable). El objetivo es entender los requerimientos del sistema. Se puede
comenzar con especificaciones poco entendidas. El prototipo no se utiliza para construir el sistema final. Se programan
sin fijarse en usar buenas practicas de programación y se hacen muy rápido, en un lenguaje muy conocido. En este caso el prototipo no es un producto final.
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Un enfoque diferente se obtiene con el Modelo Evolutivo, el que se caracteriza por permitir que los requerimientos no sean totalmente conocidos al comienzo del proyecto y se deben obtener poco a poco.
El Modelo Evolutivo propone la elaboración de varios ciclos de desarrollo en forma paralela, donde cada uno aporta nuevos elementos a las otras etapas, durante el desarrollo del proyecto.
Descripcióndel sistema
VersiónInicial
VersiónFinal
VersionesIntermedias
Especificación
Desarrollo
Validación
Actividades Concurrentes
Metodologías Tradicionales en el Desarrollo
25/11/2011
12
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos InformáticosModelo de Desarrollo Evolutivo
• Problemas Poca visibilidad en el proceso Los sistemas están pobremente especificados Se requieren habilidades especiales.
• Aplicabilidad Para sistemas interactivos pequeños o medianos. Para partes de sistemas grandes Para sistemas de corta vida.
Metodologías Tradicionales en el DesarrolloModelo Evolutivo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos InformáticosMetodologías Tradicionales en el Desarrollo
El Prototipo Evolutivo
Construcción de una implementación parcial que cubre los requisitos conocidos, para ir aprendiendo el resto y, paulatinamente, incorporarlos al sistema Reduce el riesgo y aumenta la probabilidad de éxito No se conocen niveles apropiados de calidad y documentación Problemas de gestión de configuración Construir software para que pueda ser modificado fácilmente es un “arte
desconocido”
Es posible combinar algunas de estas metodologías, es así como podemos encontrar la metodología de desarrollo que combina los Prototipos con la Evolutiva. Sus características principales son:
Metodologías Tradicionales en el Desarrollo
25/11/2011
13
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Problemas y Riesgos con los Modelos.• Cascada.
Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño.
Bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida.
• Prototipado. Bajo riesgo para nuevas aplicaciones debido a que las
especificaciones y el diseño se llevan a cabo paso a paso. Alto riesgo debido a falta de visibilidad
• Evolutivo. Alto riesgo debido a la necesidad de tecnología avanzada y
habilidades del grupo desarrollador.
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos InformáticosManejo de Riesgos
• El “riesgo” inherente en una actividad es se mide en base a la incertidumbre que presenta el resultado de esa actividad.
• Las actividades con alto riesgo causan sobrecostos por mayor planeación• El riesgo es proporcional al monto de la calidad de la información
disponible. Cuanto menos información, mayor el riesgo.
• Los sistemas grandes están hechos usualmente de varios subsistemas.• No es necesario utilizar el mismo modelo de proceso para todos los
subsistemas.• El prototipado es recomendado cuando existen especificaciones de alto
riesgo.• El modelo de cascada es utilizado en desarrollos bien comprendidos.
25/11/2011
14
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
• Riesgos. No existen mejoras baratas en el software. Las mejoras en la calidad pueden incrementar los costos en forma excesiva Los nuevos métodos pueden causar bajas en el personal.
• Solución de riesgos. Estudio de la literatura existente. Proyecto piloto. Búsqueda de todos los componentes reutilizables potenciales. Identificación del soporte disponible para las herramientas a usar Entrenamiento al personal
Manejo de Riesgos
Metodologías Tradicionales en el Desarrollo
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Actividad Documentos Producidos Análisis de Requerimientos Documento de Requerimientos Definición de Requerimientos Documento de Requerimientos. Especificación del Sistema. Especificación Funcional, Plan de Pruebas de Aceptación Diseño Arquitectural Especificación de la Arquitectura, y Plan de Pruebas del
Sistema Diseño de Interfaces Especificación de la Interfaces y Plan de pruebas de
Integración. Diseño Detallado Especificación del diseño y Plan de prueba de Unidades. Codificación Código de Programa Prueba de Unidades Reporte de prueba de unidades Prueba de Módulos Reporte de prueba de módulos Prueba de Integración Reporte de prueba de integración y Manual de usuario
final Prueba del Sistema Reporte de prueba del sistema Prueba de Aceptación Sistema final mas la documentación.
Documentación del Modelo En CascadaUna posible recomendación de documentación en este modelo.
25/11/2011
15
ESCUELA DE INGENIERÍA - Ingeniería Ejecución en Informática
Administración de Recursos Informáticos
Resumen
• El modelo de cascada considera cada actividad del proceso como una actividad discreta.
• El modelo de desarrollo evolutivo considera actividades del proceso en forma concurrente.
• El modelo de espiral se basa en análisis de riesgos.
• La visibilidad del proceso involucra la creación de documentos o resultados de las actividades.
Metodologías Tradicionales en el Desarrollo