Está en la página 1de 47

Universidad Tecnolgica Nacional Facultad Regional Crdoba Ctedra de Ingeniera de Software Docentes: Judith Meles Daniel Battistelli

Procesos de Desarrollo de Software y Modelos de Proceso (Ciclos de Vida)

Judith Meles

El proceso de Software

Conjunto estructurado de actividades para desarrollar un sistema de software Estas actividades varan dependiendo de la organizacin y el tipo de sistema que debe desarrollarse. Debe ser explcitamente modelado si va a ser administrado.

Definicin de un Proceso de Software


Proceso: La secuencia de pasos ejecutados para un propsito dado (IEEE) Proceso de Software: Un conjunto de actividades, mtodos, prcticas, y transformaciones que la gente usa para desarrollar o mantener software y sus productos asociados (Sw-CMM)

B A C D Procedimientos y mtodos

Personas con habilidades, entrenamiento y motivacin

PROCESO
Herramientas y Equipos

Caractersticas del Proceso


Comprensibilidad

Visibilidad

Caractersticas del Proceso

Suportabilidad

Aceptabilidad

Caractersticas del Proceso

Robustez

Confiabilidad

Caractersticas del Proceso

Mantenibilidad

Rapidez

Qu se espera de un Proceso de Desarrollo ?


Que sea capaz de evolucionar Durante su evolucin se limite a las realidades que imponen : La Tecnologa Las Herramientas La gente Los patrones organizacionales

Cmo debera ser un Proceso de Desarrollo?

Debera permitir usarse con una variedad de ciclos de vida permitir seleccionar que artefactos producir definir actividades y roles modelar conceptos

Modelos de Proceso: Ciclos de Vida de Software


Definicin La serie de pasos a travs de los cuales el producto progresa. Un ciclo de vida de software es un representacin de un

proceso. Representa una descripcin del proceso desde una perspectiva particular Los modelos especifican
Las fases de proceso. Ejem: requerimientos, especificacin, diseo El orden en el cual se llevan a cabo

1 10 0

La importancia de los Modelos de Ciclos de Vida.


Proveer una gua para la administracin de proyecto. Cuales de las tareas deben ser rastreadas? Milestones! Que tipo de progreso se ha realizado? La necesidad de modelos de ciclos de vida. El carcter del desarrollo de software ha cambiado
pocas tempranas: los programadores eran los usuarios finales.
Diseos muy modestos, desconocimiento del potencial del software.

Sistemas mas complejos


Mas funcionalidad, mas sofisticacin mayor complejidad, ms chances para

cometer errores. Usuarios heterogneos.

1 11 1

A cerca de los Modelos de Ciclo de Vida...


Una herramienta para la planificacin y el monitoreo de

proyectos. Un modelo de progreso del proyecto. Independiente de los mtodos y procedimientos de cada actividad del ciclo de vida. Muy abstracto.

12

Costo Relativo de las fases


Integracin (8%) Test de Mod.(7%) Cod. De Mdulos (5%) Diseo (6%) Especificacin (5%) Requerimientos (2%)

Mantenimiento (67%)

1 13 3

Clasificacin de los Ciclos de Vida


Hay tres tipos bsicos de Ciclos de Vida
Secuencial
Iterativo Recursivo

Nota: Todos los modelos recursivos son iterativos, sin embargo no todos los

modelos iterativos son recursivos.

14

Tipos Bsicos del Ciclo de Vida


Secuenciales: significa que una actividad no inicia sino hasta que ha

terminado la anterior. Una luego de la otra

Iterativos: significa hacer algo una y otra vez (iteracin); como un

re-trabajo o un DO LOOP en un programa.

Recursivos: significa que se comienza con algo en forma

completa, como una subrutina que se llama a si misma en un ciclo completo que comienza nuevamente.

15

Modelos de Ciclos de Vida


Build and Fix Secuencial Cascada Cascada con Retroalimentacin Cascada con Subproyectos ModeloV Espiral Modelo Evolucionario Modelo Incremental RAD ( Desarrollo Rpido de Aplicaciones) Iterativo e Incremental

16

Modelos de Ciclos de vida


Build-and-fix Desarrollo
Sin especificaciones o diseo Modificaciones hasta que el cliente esta
Construir primer version Modificar hasta que el cliente esta satisfecho

satisfecho.

Por que no se escala en build-

Operacin

and-fix?
Cambios durante el mantenimiento
Muy caro!

Retiro Development Maintenance

17

17

Modelo Secuencial

Recoleccin de Requirimientos

Anlisis de Requerimientos

Diseo

Codificacin

Prueba

18

Modelo Secuencial
Es apropiado para tareas pequeas. Contrariamente al nombre, las fases individuales pueden superponerse o ser ejecutadas en forma simultnea. Puede no ser claro el lmite cuando una fase termina y otra empieza. Irnicamente se vincula con procesos no secuenciales a menudo

asociados con pequeas tareas de programacin.


apropiada de modelar.

Individuos y grupos pueden saltar de una actividad a otro desafiando la manera

19

Modelo Secuencial
Fortalezas
Simple para tareas simples Enfoque Just Do It (Solo hazlo)

Debilidades
Fases pobremente definidas
No hay controles ni asistencia Propenso a Errores Muy dependiente de la calidad de la ingeniera de software.

20

Modelo de Cascada Clsico


Requerimientos

Diseo

Implementacin

Prueba

Operacin y Mantenimiento
21

Modelo de Cascada con Retroalimentacin


Requerimientos

Diseo

Implementacin

Prueba

Operacin y Mantenimiento
22

Modelo Cascada con Sub - Proyectos


Definicin del Problema Anlisis Requerimientos

Subproyecto 1
Diseo Detallado Codificacin y Depuracin Definicin del Problema Pruebas Subproyecto

Diseo Global

Subproyecto 2
Diseo Detallado Codificacin y Depuracin

Definicin del Problema


Pruebas Subproyecto

Prueba Integral

23

Producto Final

Modelo en V
Requerimientos de softtware Planeamiento testeo sistema de software Testeo sistema de software

Diseo preliminar

Planeamiento testeo integracin

Testeo integracin

Diseo detallado

Planeamiento testeo unitario

Testeo unitario

Codificacin 24

Ventajas del Modelo de Cascada


Fcil de administrar: flujo simple de actividades

Fcil de estimar: fases bien diferenciadas


Rgida disciplina cumplida a travs de documentos.
Ninguna fase esta completa hasta que los documentos estn

confeccionados y chequeados por el grupo de calidad. Evidencia concreta de progreso.

El Testing es inherente en cada fase


Al final de cada fase.

25

Desventajas del Modelo de Cascada


Necesita requerimientos bien comprendidos. Mucho tiempo entre el inicio del proyecto y la entrega del producto.

Modelo orientado por documentos Lo clientes a menudo no entienden esto. Imaginen a un arquitecto mostrando una definicin textual de

su trabajo y no una maqueta o plano. El cliente ve productos que todava no se codificaron. Problemas? Conduce a que los productos no contengan las necesidades del cliente. Se asume la viabilidad antes de la implementacin. El re-diseo es problemtico.

26

Modelo de Espiral

27

Modelo en Spiral
Siempre algn riesgo esta involucrado en el desarrollo de

software Idea principal

Minimizar los riesgos Ejem: construir prototipos y simular escenarios (que pasa si?)

Cada fase esta precedida por


Buscar las alternativas Anlisis de riesgos

Despus de cada fase


Evaluacin Planificar la fase siguiente

2 28 8

Evaluacin de Riesgos
Enfocado a la deteccin de riesgos, en cada espiral: Identificar los riesgos potenciales Planificar el prximo paso basado en el anlisis de riesgos Redefinir el diseo en las reas de mas alto riesgo. Explcitamente intenta identificar los problemas

potenciales

No solo en la etapas iniciales del diseo Sino tambin mas adelante, cuando mas hemos aprendido

acerca del problema y el diseo

2 29 9

Evaluando el Modelo en Espiral


Evaluacin de Riesgos
Como sabemos que es un riesgo? Como sabemos que hemos identificado los riegos

correctos? Experiencia es un factor crtico El modelo falla si los riegos son evaluados indebidamente
Para grandes proyectos
La evaluacin e identificacin de los riesgos puede costar

ms que desarrollo

3 30 0

Modelo en Espiral
Fortalezas Adecuado para proyectos muy grandes con ciclos de vida largos. Facilita equipos completamente diferentes para cada ciclo. Minimiza el compromiso de encontrar una solucin a los riesgos tcnicos, en cada etapa. Demuestra progreso al finalizar cada ciclo. Debilidades Se desarrollan muchos prototipos para minimizar riesgos tcnicos. Cada prototipo aprueba o no la factibilidad de un subconjunto de requerimientos. Despus que cada prototipos es desarrollado, se decide si continuar, cancelar o modificar el proyecto. Depende de un ncleo estable de requerimientos. Requiere un anlisis detallado de riesgos tcnicos.

31

Modelo Incremental o de Entrega por etapas


Recoleccin de Requerimientos

Diseo del Ncleo

Diseo de Funcin Diseo de Funcin Codificacin Codificacin de Funcin de Funcin Prueba de la Prueba de la Funcin Funcin

Anlisis de Requerimientos

Codificacin del Ncleo

Prueba del Ncleo


32

Entrega

Requerimientos

Anlisis
Diseo arquitectnico

Etapa 1:
Diseo Detallado Implementacin Prueba Despliegue

Modelo Incremental o de Entrega por etapas


Etapa 2:

Diseo Detallado Implementacin Prueba Despliegue

Etapa N:
33
Diseo Detallado Implementacin Prueba Despliegue

Modelo Evolucionario
Recoleccin de Requerimientos Recoleccin de Requerimientos Recoleccin de Requerimientos

Desarrollo

Desarrollo

Desarrollo

Prueba Entrega
34

Prueba Entrega

Prueba Entrega

Modelo Evolucionario
Fortalezas
til cuando los requerimientos no son claros.
Entregas tempranas al cliente

Debilidades/ Restricciones
Depende de que los diseadores desarrollen un sistema fcil de

modificar. Modelo completamente recursivo que repite todas las tareas.

35

DRA Desarrollo Rpido de Aplicaciones


RAD generalmente depende de la disponibilidad de herramientas de desarrollo de

software potentes, tales como generadores de cdigo y de la participacin intensiva de los usuarios. Sesiones combinadas de Requerimientos/ Diseo/ Codificacin se realizan con usuarios finales y personal del equipo, generalmente son formales. Utilizando generadores de cdigo el sistema es conducido desde los conceptos a la implementacin. Los usuarios estn MUY involucrados en la definicin de los requerimientos y el diseo del sistema.

36

Evaluacin del Modelo de DRA


Ventajas El proceso procede linealmente (con poca informacin se retroalimenta) Resalta los riegos de la tecnologa con el prototipo. Desventajas Genera expectacin. Entregar un sistema andando lleva tiempo. Hacer ajustes durante la produccin de cdigo:
Genera controversias. Nos lleva a build-and-fix
37

Prototipacin Rpida
Los prototipos deben ser construidos y cambiados rpidamente.
No gastar demasiado tiempo en perfeccionar el cdigo/la estructura

Planifique desecharlo!!! por qu? Por que lo har!!!!


Mustrelo a su cliente/usuario Utilice protipado de interfaces y otras herramientas de desarrollo rpido

para hacerlo mas fciles (en su construccin)

Prototipacin Rpida como herramienta validacin de requerimientos.


Permitir a los usuarios ver y usar las soluciones propuestas. Desarrollar la especificacin desde el prototipo/requerimientos.

Procede con el resto de las etapas como un modelo en cascada


38

Modelo Iterativo e Incremental


Divide al proyecto en builds Cada builds agrega nuevas funciones. Cada build se integra con la estructura del producto y se lo testea como un todo. Ventajas Entregas tempranos al cliente. Se produce un producto operativo en semanas Es menos traumtico para la organizacin Desventajas Necesita requerimientos estables Se debe elegir cuidadosamente el ncleo del sistema. Pocos builds build-and-fix Demasiados builds sobre trabajos

39

Iterativo e Incremental
Requerimientos Anlisis & Diseo Implementacin Testing Despliegue

Requerimientos

Anlisis & Diseo

Implementacin

Testing

Despliegue

Requerimientos

Anlisis & Diseo

Implementacin

Testing

Despliegue

Fase Iniciacin Elaboracin Construccin Transicin

Conjunto de Requerimientos Conjunto de Diseo Conjunto de Implementacin Conjunto de Despliegue

El Ciclo de Vida de Iteracin: Una MiniCascada


Comienzo Elaboracin Construccin Transicin

Iteracin 1

Iteracin 2

Iteracin 3

Proceso Mini-Cascada
Planif. Iteracin Captura Reqs. Anlisis & Diseo Implementacin Prueba Preparar Release

Algo ms a cerca de los Ciclos de Vida


Cada modelo progresa a travs de la misma serie de pasos
Solo varia la cantidad de trabajo hecho en cada paso

Cada modelo puede dibujarse como una secuencia lineal de

pasos
Los diferentes arreglos sirven para hacer nfasis en el modelo

42

Revisin de Modelos de Ciclos de Vida



43

Build and Fix Secuencial Cascada Cascada con Retroalimentacin Cascada con Subproyectos ModeloV Espiral Modelo Evolucionario Modelo Incremental RAD ( Desarrollo Rpido de Aplicaciones) Iterativo e Incremental

Cul es Secuencial? Cul es Iterativo? Cul recursivo?

Revisin de Modelos de Ciclos de Vida


Modelo Build & Fix Secuencial Cascada Cascada con Retroalimentacin Cascada con Subproyectos Modelo Evolucionario Modelo V Modelo Incremental Espiral RAD ( Desarrollo Rpido de Aplicaciones) Iterativo e Incremental
44

Tipo Recursivo Secuencial Secuencial Secuencial Secuencial Recursivo Secuencial Iterativo Recursivo Secuencial Iterativo

Eligiendo un Ciclo de Vida


La eleccin depende de muchos factores tales como:
Riesgos tcnicos

Riesgos de Administracin
Volatilidad de los requerimientos Ciclo de tiempo requerido Aspectos del cliente

Tamao del Equipo

45

Perlas de los ciclos de vida


Los gerentes los quieren
Definen un conjunto de entregables Queda bien informar la etapa xxxx tiene un xx% completado. Son formalmente exigidos por muchas agencias del gobierno. (?)

Los programadores los encuentran inadecuados


No representan los que ocurre en las trincheras Las etapas se mezclan con otras

Ejem: el diseo revela que una parte de la especificacin

no puede ser implementada por que no dan los costos.

4 46 6

Resumen
Proceso de Software Un conjunto coherente de actividades para especificar, disear, implementar y testear un sistema de software. Modelos de Ciclo de Vida Cascada demasiado inflexible
Orientado a documentos
Modelo evolutivos y prototipos

Dependen de las decisiones tomadas antes del

entendimiento del problema

Una buena solucin es integrar protipado rpido y cascada La tendencia hoy: los iterativos!!!
4 47 7