Ciclo de Vida

52
CICLO DE VIDA Y PROCESO SOFTWARE Planificación y Gestión del Desarrollo de Sistemas Informáticos

Transcript of Ciclo de Vida

Page 1: Ciclo de Vida

CICLO DE VIDA YPROCESO SOFTWARE

Planificación y Gestión del Desarrollo de Sistemas Informáticos

Page 2: Ciclo de Vida

Índice

• La Ingeniería del Software

• El proceso de desarrollo de software

• Definición del proceso

• Evaluación del proceso

• Mejora del proceso

• El Proceso Software Personal

Page 3: Ciclo de Vida

¿Cómo surge la Ingeniería del Software?

• 1955-1965: Programación de cualquier modo– Programas pequeños, ninguna gestión, uso de ensamblador

• 1965-1975: Programación a pequeña escala– Algoritmos, estructuras de datos, lenguajes de programación de

alto nivel, gestión individual

• 1975-actualidad: Programación a gran escala– Bases de datos, programas que se ejecutan continuamente,

especificaciones complejas, herramientas y entornos de desarrollo, gestión en equipo

Page 4: Ciclo de Vida

¿Cómo surge la Ingeniería del Software?

LINEAS DE CÓDIGO ESTRUCTURA DE DESARROLLO

1.000-5.000 Programador individual5.000-25.000 Pequeño equipo25.000-100.000 Equipo grande subdividido100.000-1.000.000 Varios equipos1.000.000-10.000.000 Varias empresas10.000.000-100.000.000 Proyecto nacional

El tamaño del software crece un orden de magnitud cada 5 años

Page 5: Ciclo de Vida

¿Cómo surge la Ingeniería del Software?

• Expansión sin control que condujo a la “Crisis del Software”:– Expectativas: No responden a las expectativas de los usuarios– Fiabilidad: Fallan muy a menudo– Coste: Difíciles de prever, superiores a lo esperado– Facilidad de modificación: complejo, costoso y propenso a errores– Plazos: se entrega tarde– Portabilidad: difícil, aún con la misma funcionalidad– Eficiencia: no se aprovechan óptimamente los recursos

Page 6: Ciclo de Vida

¿Cómo surge la Ingeniería del Software?

• El software es mucho más difícil de construir de lo que se pensaba.

• Conferencia de Garmish (1968): surge el término INGENIERÍA DEL SOFTWARE

“Establecer y usar principios de ingeniería orientados a obtenersoftware de manera económica, fiable y que funcione eficientemente sobre máquinas reales” (Bauer)

• Pero la ingeniería del software no es como otras ingenierías

Page 7: Ciclo de Vida

Principios de la Ingeniería del Software

• Haz de la calidad la razón de trabajar• Es posible el software de alta calidad• Una buena gestión es más importante que una buena

tecnología• Las personas y el tiempo no son intercambiables• Seleccionar el modelo de ciclo de vida adecuado• Entregar productos al usuario lo más pronto posible

Page 8: Ciclo de Vida

Principios de la Ingeniería del Software

• Determinar el problema antes de escribir los requisitos• Evaluar las alternativas de diseño• Diseñar sin documentación es no diseñar• Minimizar la distancia intelectual• Usar formalismos distintos para distintas fases• Las técnicas son anteriores a las herramientas

Page 9: Ciclo de Vida

Principios de la Ingeniería del Software

• Inspeccionar el código• Primero hazlo correcto, después hazlo rápido• La gente es la clave del éxito• Introduce las mejoras con cuidado• Asume tus responsabilidades• La entropía del software es creciente

Page 10: Ciclo de Vida

Componentes de la Ingeniería del Software• Métodos:

actividades necesarias para construir el software

• Técnicas: formas concretas de llevar a cabo los métodos

• Formalismos: notaciones utilizadas por las técnicas

• Herramientas: implementan las técnicas

• Procedimientos: establecen el orden en que se aplican los métodos

Page 11: Ciclo de Vida

Las tres P de la Ingeniería del Software

Las claves del éxito en un proyecto

Page 12: Ciclo de Vida

El Proceso de Resolución de Problemas

• Identificar el problema• Definir y representar el problema (qué hacer)• Explorar las posibles estrategias (cómo hacerlo)• Aplicar la mejor estrategia (hacerlo)• Mirar atrás y evaluar los efectos de la actividad

realizada (probar el resultado)• Se resolvió el problema (usar el resultado)

Page 13: Ciclo de Vida

El Proceso de Construcción de Software• Es un proceso de resolución de problemas: transformación

de una necesidad en una solución automatizada que satisface la necesidad:– Qué: Obtención de requisitos: analizar el problema– Cómo: Diseñar el sistema

• Diseño de alto nivel o preliminar: descomposición del sistema encomponentes y sus relaciones

• Diseño de bajo nivel o detallado: especificación de la función de cada componente

– Hacerlo: Implementar– Probar: Pruebas– Usar: Implantación y Uso– Mantenimiento (otro proceso de resolución problemas)

Page 14: Ciclo de Vida

Proceso Software vs. Ciclo de Vida

• El Proceso Software como proceso de transformación: recibe unas entradas y genera unas salidas

• El Producto Software va pasando por una serie de estados a medida que se transforma:– Necesidad– Especificación de requisitos– Diseño del sistema– Código– Sistema software operativo

• Ciclo de Vida: estados por los que pasa el producto desde que nace hasta que muere

Page 15: Ciclo de Vida

Proceso Software vs. Ciclo de Vida

Obtenciónrequisitos

Diseñarsistema

Codificar Probar

Necesidad Especific.requisitos

Diseño Código Sistemasoftware

PROCESO DECONSTRUCCIÓN

CICLO DE VIDA

Page 16: Ciclo de Vida

Ciclos de Vida• Modelo de ciclo de vida:

– abstracción de las fases o estados por los que pasa un producto software a lo largo de su vida

– representa una posible aproximación a la producción de software– Debe:

• Determinar el orden de las fases• Establecer los criterios de transición entre fases

• No hay un modelo de ciclo de vida que sirva para todos los proyectos:– cultura de la organización– deseo de asumir riesgos– área de aplicación– volatilidad de los requisitos– comprensión de los requisitos– experiencia previa

Page 17: Ciclo de Vida

Modelo clásico o en Cascada

Requisitos

Diseño

Codificación

Prueba

Operación

Page 18: Ciclo de Vida

Modelo clásico o en Cascada• Royce-1970• Orden lineal en las transiciones entre fases• Vuelta atrás al detectar Equivocaciones• Asume que:

– Los requisitos se pueden conocer completamente y sin ambigüedad al principio del proceso de desarrollo

– Los requisitos no varían– Cada etapa implica una revisión – No se pasa a la siguiente etapa hasta que se completa la actual

• Implica que:– Los requisitos pueden quedarse obsoletos – No hay un ejecutable que enseñar al usuario hasta el final– 99% de recursos consumidos - errores irremediables

Page 19: Ciclo de Vida

Coste de cada etapa• Según Boehm (1975):

Tipo de Sistema Requisitosy Diseño

Implementar Pruebas

Sistemas de Control 46 20 34Sistemas especiales 34 20 46Sistemas Operativos 33 17 50Sistemas científicos 45-53 27-36 15-23Sistemas de Gestión 44 28 28

Page 20: Ciclo de Vida

Modelo en VRequisitos

sistema Requisitossoftware Diseño

preliminar Diseñodetallado

Codificación

Pruebascomponente

Pruebasunidad

Integraciónsoftware

Pruebassistema

Integraciónsistema

Page 21: Ciclo de Vida

Modelo en V

• Énfasis en:– Validación de los productos– Proceso de análisis (descomposición) y síntesis

(composición) • El producto de cada etapa:

– Es la entrada para la siguiente– Determina los criterios para validar el resultado de la

composición

• Considera sistemas que engloban componentes software y otros

Page 22: Ciclo de Vida

Refinamiento Sucesivo o Mejora Iterativa

• Etapas y orden igual que en el cascada• Dentro de cada etapa los productos se

generan de forma iterativa, refinándose en cada ciclo

Page 23: Ciclo de Vida

Emisión Gradual

• Varias versiones sucesivas• En cada versión se incorporan nuevas funciones• De las funciones más esenciales a las menos

importantes• Modelo usual en productos comerciales• Es una mejora iterativa a nivel global

Page 24: Ciclo de Vida

Estándar MIL-STD-2167 (1987)

• Fuerzas armadas de EEUU• Como normativa para los contratistas• Especifica, además de las etapas:

– Los productos a entregar– Las revisiones a efectuar– Las técnicas a emplear– La forma de descomponer el producto para la gestión

de la configuración: CSCI (Computer Software Configuration Item) - CSC (Component) - CSU (Unit)

• Complejo y detallado

Page 25: Ciclo de Vida

Estándar MIL-STD-2167 (1987)

• Etapas:– Análisis de Requisitos del Sistema– Diseño del Sistema– Análisis de Requisitos del Software– Diseño Preliminar– Diseño Detallado– Codificación y Verificación de CSUs– Integración y Verificación de CSCs– Prueba de CSCIs– Integración y prueba del sistema

Page 26: Ciclo de Vida

Estándar ESA PSS-05-0

• Agencia Espacial Europea• Como normativa para los contratistas• Etapas:

– Definición de requisitos del usuario– Definición de requisitos del software– Diseño de la arquitectura– Diseño detallado y producción del software– Transferencia de la tecnología al usuario– Operación y mantenimiento

• Simple y de alto nivel

Page 27: Ciclo de Vida

Prototipado• Cuándo:

– El cliente no sabe bien lo que quiere– No se comprende bien lo que quiere– No se está seguro de la viabilidad de la solución

• Objetivo: producir una versión de funcionalidad reducida en las fases iniciales del proceso de desarrollo– En papel, describiendo la interacción– Ejecutable: tiene su propio ciclo de vida

• El prototipo es evaluado por el usuario y se refina la especificación de requisitos

Page 28: Ciclo de Vida

Tipos de Prototipos

• Desechable: – sólo se incorporan los aspectos peor entendidos o

dudosos– desarrollo ‘quick and dirty’

• Maqueta: – ejemplo de la interfaz que muestra las entradas y salidas

y la forma de interacción – con datos y encadenamientos forzados

• Prototipo evolutivo:– el prototipo se desarrolla rigurosamente– fácil de ampliar y modificar– se van incorporando las partes mejor entendidas

Page 29: Ciclo de Vida

Prototipado

• Etapas:– Análisis preliminar y especificación de

requisitos– Diseño e implementación del prototipo– Prueba del prototipo– Refinamiento iterativo del prototipo– Refinamiento de la especificación de requisitos– Diseño e implementación del sistema final

Page 30: Ciclo de Vida

Modelo en Espiral

Determinación de objetivos, alternativas, restricciones

Evaluación de alternativas, identificación de riesgos

Desarrollo, verificación delproducto del próximo nivelPlanificación de las próximas fases

Análisisderiesgo

Análisisderiesgo

Análisisderiesgo

Análisisderiesgo

Prototipooperativo

PrototipoPrototipoPrototipo

Concepto deoperación

Validación derequisitos

Validación y verificacióndel diseño

Implementación

Requisitosdel softwaare

DiseñoDiseñodetallado

CodificaciónPruebadeunidad

Integracióny prueba

Pruebadeaceptación

Plan de requisitosPlan de ciclo de vida

Plan del desarrollo

Plan de la integracióny prueba

Costes acumulados

Revisión

Page 31: Ciclo de Vida

Modelo en Espiral

• Boehm - 1986• Enfoque dirigido por el riesgo. En cada ciclo se

hace un análisis de riesgo: – identificar situaciones que pueden causar el fracaso– centrarse primero en los aspectos de mayor riesgo

• Tipos de ciclos:– Internos: prototipado– Externos: clásico

Page 32: Ciclo de Vida

Modelos alternativos

• Modelos basados en la reutilización de componentes (CotS)– Según la granularidad de los componentes

• Modelos basados en el uso de un generador de aplicaciones (generadores de informes, sistemas de autor, programación visual de interfaces)– Sólo para tipos de sistemas específicos– Basados en la especificación de parámetros– Generación automática de código

Page 33: Ciclo de Vida

Estándar de IEEE 1074-1995• Da el conjunto de actividades (65) que constituyen los

procesos (17) obligatorios para el desarrollo y mantenimiento de software. Sólo actividades relativas al software.

• No obliga al uso de ningún ciclo de vida en particular. Para utilizarse debe definirse antes la correspondencia entre las actividades y el ciclo de vida a utilizar.

• No obliga al uso de ninguna metodología de desarrollo en particular.

• Se aplica a cualquier tipo de software (dominio, tamaño, complejidad...)

• Cumplimiento = ejecución de todas las actividades obligatorias.

Page 34: Ciclo de Vida

Categorías de Procesos (6)

• Relativos al modelado de ciclos de vida:• Modelado del ciclo de vida

• De gestión del proyecto:• Iniciación del proyecto• Monitorización y control del proyecto• Gestión de la calidad del software

• Previos al desarrollo:• Exploración del concepto• Asignación de sistema

• De desarrollo:• Requisitos• Diseño• Implementación

Page 35: Ciclo de Vida

Categorías de Procesos (6)

• Posteriores al desarrollo:• Instalación• Operación y soporte• Mantenimiento• Retiro

• Integrales:• Verificación y validación• Gestión de la configuración del software• Desarrollo de documentación• Entrenamiento

Page 36: Ciclo de Vida

Estructura de una Actividad

• Componentes:– Información de entradas, y su origen

(externo/actividad)– Descripción de las acciones a ejecutar– Información de salidas, y su destino (externo/actividad)

• Pueden tener varias instancias y ser iterativas• Ejecución completa de una actividad:

– Toda la información de entrada ha sido procesada– Toda la información de salida ha sido generada (en una

o más iteraciones)

Page 37: Ciclo de Vida

Los procesos integrales

• Sus actividades pueden ejecutarse:– en puntos discretos– durante el transcurso de otra actividad

• Las actividades pueden llamar a los procesos integrales como subrutinas, especificando la primera actividad a ejecutar en el proceso.

• Una actividad puede ser llamada desde varias. El origen y destino de la información se especifica de forma genérica “creating process”

Page 38: Ciclo de Vida

Modelado del Ciclo de Vida (2)

• Actividades:– Identificar posibles modelos de ciclo de vida a aplicar

• Según las restricciones del proyecto• Se puede definir uno nuevo

– Seleccionar el modelo de ciclo de vida del proyecto• Según el tipo de producto, las restricciones del proyecto, los

registros históricos de otros proyectos• De entre los modelos aplicables

• Salidas:– Modelo de ciclo de vida seleccionado

Page 39: Ciclo de Vida

Iniciación del Proyecto (3)

• Actividades:– Hacer corresponder las actividades del estándar con el

modelo de ciclo de vida seleccionado• Asignando un responsable (puesto) de controlar que la

actividad se completa en el plazo y presupuesto planeados, y de la calidad de los productos de salida.

– Asignar recursos• Humanos, de equipamiento, de espacio, etc.

– Establecer el entorno del proyecto• Metodologías, estándares, herramientas, librerías de software,

software comercial, ... a utilizar en el proyecto– Planificar la gestión del proyecto (iterativa)

Page 40: Ciclo de Vida

Iniciación del Proyecto (3) (ii)• Planificar la gestión del proyecto:

• Definir la organización del proyecto y asignar responsabilidades• Seleccionar estándares, metodologías y herramientas de:

– Gestión de configuración– Garantía de calidad– Verificación y validación– Entrenamiento– Documentación– Desarrollo

• Definir la programación temporal, el presupuesto y los recursos humanos del proyecto

• Definir procedimientos para:– Soporte– Retiro– Gestión de problemas– Seguimiento

Page 41: Ciclo de Vida

Iniciación del Proyecto (3) (iii)

• Salidas:– Plan de Gestión del Proyecto– Plan de retirada– Plan de gestión de problemas– Plan de actividades de apoyo– Lista de actividades no aplicables– Asignación de recursos a actividades

Page 42: Ciclo de Vida

Monitorización y Control del proyecto (3)

• Actividades (iterativas):– Analizar riesgos:

• Técnicos, económicos, de operación, de soporte, de tiempo, ...– Elaborar planes de contingencia

• Acciones a tomar en caso de que un riesgo se materialice– Gestionar el proyecto

• Revisar y medir el progreso del proyecto con respecto a sus hitos y el gasto con respecto al presupuesto

• Gestión del proyecto día a día– Mantener registros

• Documentos y registros provenientes de diversos procesos– Implementar el método de comunicación de problemas

• Según el procedimiento especificado

Page 43: Ciclo de Vida

Monitorización y Control del proyecto (3) (ii)

• Salidas:– Análisis de riesgos– Planes de contingencia– Informes de gestión del proyecto– Registros históricos del proyecto– Información de gestión de problemas

Page 44: Ciclo de Vida

Gestión de la Calidad del Software (4)

• Actividades:– Planificación de la Gestión de la Calidad

• Identificar actividades de Garantía de Calidad• Objetivos de calidad, Metas y estándares• Organización, herramientas, metodologías y técnicas

– Definición de métricas• De producto y de proceso• Métodos de recolección y análisis

– Gestión de la Calidad del Software• Según el Plan de Gestión de la Calidad

– Identificar necesidades de Mejora de la Calidad• Partiendo, fundamentalmente, de los resultados de las actividades de

Validación y Verificación

Page 45: Ciclo de Vida

Gestión de la Calidad del Software (4) (ii)

• Salidas:– Plan de Gestión de la Calidad– Definición de métricas y métodos de

recolección y análisis– Valoraciones de la Calidad del Proyecto– Recomendaciones de mejora

Page 46: Ciclo de Vida

Verificación y Validación (6)• Actividades:

– Planificación de la Verificación y Validación• Para cada proceso y producto del proceso• Auditorías, revisiones, inspecciones, demostraciones formales,

prototipado, ...– Ejecución de las tareas de V&V

• Según el plan– Recolección y análisis de datos de métricas

• Según se especificó en Gestión de la Calidad– Planificación de las Pruebas

• Actividad de V&V especialmente importante– Desarrollo de especificaciones de Prueba– Ejecución de las Pruebas

• Según el plan

Page 47: Ciclo de Vida

Verificación y Validación (6) (ii)

• Salidas:– Plan de V&V del Software– Informes de V&V– Informes de métricas– Plan de Pruebas– Informes de las pruebas– Software probado

Page 48: Ciclo de Vida

Gestión de la Configuración (4)• Actividades:

– Planificación de la Gestión de la Configuración– Identificación de la Configuración

• Esquema de etiquetado• Líneas base

– Control de la Configuración• Seguimiento de cambios

– Contabilidad del Estado de la Configuración• Generación de informes

• Salidas:– Plan de Gestión de la Configuración– Identificación de la Configuración– Elementos bajo control– Información de estado de la configuración

Page 49: Ciclo de Vida

Desarrollo de Documentación (3)

• Actividades:– Planificación de la Documentación

• responsables, fechas, estándares, fuentes, destinatarios– Documentar

• Según el plan– Producir y distribuir Documentación

• Hacer llegar la documentación a sus destinatarios

• Salidas:– Plan de documentación– Documentación publicada

Page 50: Ciclo de Vida

Entrenamiento (4)

• Actividades:– Planificar el Programa de Formación

• Necesidades de formación• Fechas, recursos, destinatarios

– Desarrollar materiales de formación– Validar el Programa de Formación

• Por un grupo de evaluadores– Implementar el Programa de Formación

• Salidas:– Plan de Formación– Personal formado

Page 51: Ciclo de Vida

Relación Modelo-Ciclo de Vida-Plan• Modelo de ciclo de vida:

– abstracción de las fases o estados por los que pasa un producto software a lo largo de su vida

• Ciclo de vida:– es la secuencia ordenada de actividades o instancias de actividades que se

deben ejecutar a lo largo de la vida del software, indicando quién tiene la responsabilidad de ejecutarlas.

– Se obtiene haciendo corresponder las actividades del estándar con un modelo de ciclo de vida concreto: Mapa de Actividades

– Cada proyecto debe definir su propio ciclo de vida

• Plan del proyecto:– A la información del ciclo de vida se añade la programación temporal

(schedule) y la asignación de recursos.

Page 52: Ciclo de Vida

Mapa de ActividadesACTIVIDADES FA RS DP DD CO IN IM OM REIdentificar posibles modelos de ciclo de vida a aplicar X

Seleccionar el modelo de ciclo de vida del proyecto X

Hacer corresponder las actividades del estándar con elmodelo de ciclo de vida seleccionado

X

Asignar recursos X X X X X X X X X

Establecer el entorno del proyecto X X XPlanificar la gestión del proyecto X X

Analizar riesgos: X X X X X X X

Elaborar planes de contingencia X X X X X XGestionar el proyecto X X X X X X X X X

Mantener registros X X X X X X X XImplementar el método de comunicación de problemas X X X X X X X X X

Planificación de la Gestión de la Calidad X X

Definición de métricas X X XGestión de la Calidad del Software X X X X X X X X X

Identificar necesidades de Mejora de la Calidad X X X X X X X X X

...