15
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 Desarrollo de Proyectos a un conjunto de métodos empleados para el desarrollo de sistemas automatizados. Lo más relevante de una metodología, es su capacidad de entregar una notación, la descripción de un proceso a seguir y la entrega de herramientas de apoyo al desarrollo de Sistemas.

11 ADM PROY INFORM - Unidad III - Metodologias.ppt …apuntesduoc.pbworks.com/w/file/fetch/49019888/11 ADM PROY INFOR… · La ventaja del Modelo en Espiral radica en el perfeccionamiento

  • Upload
    trinhtu

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

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