Sie sind auf Seite 1von 33

Fundamentos de Ingeniera del Software

Tema 2. El proceso software. Paradigmas de Ciclo de Vida. Paradigmas de Ciclo de Vida

Paradigmas de Ciclo de Vida

Ciclo de vida

Sucesin de etapas por las que atraviesa un producto software a lo largo de su existencia (p.e. durante su desarrollo y explotacin).

Paradigmas de Ciclo de Vida

Paradigma clsico

Paradigma en cascada o paradigma orientado a fases


Primer modelo empleado (1970). Ejecucin secuencial de una serie de fases. Cada fase genera entradas y documentacin para la siguiente.

Paradigmas de Ciclo de Vida

Paradigma clsico ideal


PLANIFICACION
Errores de anlisis

ANALISIS Y ESPECIFICACION INFORMAL

Errores de diseo

DISEO

Errores de codificacin

IMPLEMENTACION

MANTENIMIENTO

A todas las fases

Paradigmas de Ciclo de Vida

Paradigma clsico
PLANIFICACION
Errores de anlisis

ANALISIS Y ESPECIFICACION INFORMAL ESPECIFICACION DE REQUERIMIENTOS VALIDADA DISEO DISEO VALIDADO


Errores de codificacin

Errores de diseo

IMPLEMENTACION CODIGO VALIDADO (Producto liberado) MANTENIMIENTO


A todas las fases

Paradigmas de Ciclo de Vida

Paradigma clsico. Definicin alternativa

INGENIERA DEL SISTEMA ANLISIS DISEO CODIFICACIN PRUEBA MANTENIMIENTO

Paradigmas de Ciclo de Vida

Modelo en cascada. Fases


Anlisis del sistema. Qu debe hacer el sistema?


El software suele formar parte de un sistema mayor:

Identificar los requisitos de todos los elementos del sistema. Asignar un subconjunto requisitos al software.
Paradigmas de Ciclo de Vida

de

dichos

Modelo en cascada. Fases


Anlisis de los requisitos del software.


El proceso de recopilacin de los requisitos se centra especialmente en el software. Hay que especificar:

Funciones que el software debe realizar. Condicionantes existentes: rendimiento, utilizacin de recursos, etc.

Paradigmas de Ciclo de Vida

Modelo en cascada. Fases

Anlisis de los requisitos del software (II).


Los requisitos del software se documentan y se revisan con el cliente. Se genera la especificacin de

requisitos del software. (SRS, Software Requirements Specification).


Paradigmas de Ciclo de Vida

Modelo en cascada. Fases


Diseo. Cmo se ha de construir el sistema?.


Definir estructura del software para satisfacer los requisitos con la calidad necesaria:

Estructura de los datos. Arquitectura del software. Representaciones de interfaz. Determinar los algoritmos.

Paradigmas de Ciclo de Vida

10

Modelo en cascada. Fases

Generacin de cdigo.

Se puede realizar de forma automtica a partir de un diseo detallado.

Prueba. Se ha construido el sistema que se deseaba?


Prueba interna. Prueba externa.

Paradigmas de Ciclo de Vida

11

Modelo en cascada. Fases


Mantenimiento.
El software sufrir cambios despus de que se entregue al cliente

(errores, nuevas funciones, aumentos del rendimiento, etc.)

Volver a aplicar cada una de las fases anteriores al programa existente.


Paradigmas de Ciclo de Vida 12

Modelo clsico

Crticas al modelo ideal:

Los proyectos reales raramente pueden seguir el flujo secuencial que se propone. Dificultad para establecer todos los requerimientos al principio del proceso. El mantenimiento recae sobre el cdigo.
Paradigmas de Ciclo de Vida 13

Modelo clsico

Crticas al modelo ideal:


El usuario debe tener paciencia. Se tarda mucho tiempo en pasar por todo el ciclo (hasta que no termina una fase no empieza la siguiente).

Retrasos innecesarios
Paradigmas de Ciclo de Vida 14

Paradigma clsico (II)


PLANIFICACION
Errores de anlisis

ANALISIS Y ESPECIFICACION INFORMAL ESPECIFICACION DE REQUERIMIENTOS DISEO DISEO IMPLEMENTACION CODIGO PRUEBAS UNITARIAS MODULOS VALIDADOS PRUEBAS DE INTEGRACION (alfa-test) PROGRAMA VALIDADO SINTONIZACION (beta-test) PRODUCTO CERRADO MANTENIMIENTO

Errores de diseo

Errores de codificacin

A todas las fases

Paradigmas de Ciclo de Vida

15

Modelo clsico revisado


(con realimentacin anidada)

Crticas

El desarrollo es bastante manual. Las diferentes fases del ciclo van soportadas, en el mejor de los casos, por un conjunto de herramientas software en su mayor parte no relacionadas ni integradas. Los errores de anlisis y diseo son caros de eliminar, y se propagan a las otras etapas con un efecto conocido como bola de nieve. En la prctica, el modelo tiende a deformarse, y todo el peso de la validacin y mantenimiento recae, en su mayor parte, sobre el cdigo fuente. El software va deteriorndose y resulta cada vez ms difcil de mantener.
Paradigmas de Ciclo de Vida 16

Paradigma clsico deformado


ESPECIFICACION INFORMAL DISEO

ANALISIS Y ESPECIFICACION

DISEO

IMPLEMENTACION

PRODUCTO ACABADO

VALIDACION MANTENIMIENTO

Paradigmas de Ciclo de Vida

17

Paradigma clsico con prototipado


(prototipado como realimentacin en el ciclo bsico)

Prototipo:

Primera versin de un nuevo tipo de producto, en el que se han incorporado slo algunas caractersticas del sistema final, o no se han realizado completamente.

Paradigmas de Ciclo de Vida

18

Paradigma clsico con prototipado (II)

Caractersticas de los prototipos:


Utilidad de los prototipos:


Funcionalidad limitada. Poca fiabilidad. Caractersticas de operacin pobres. Ayuda al cliente a establecer claramente los requerimientos. Ayuda a los desarrolladores a:

Verificar correccin de la especificacin. Aprender sobre problemas que se presentarn durante el diseo e implementacin del sistema. Mejorar el producto. Examinar viabilidad y utildiad de la aplicacin.
Paradigmas de Ciclo de Vida 19

Paradigma clsico con prototipado


PLANIFICACION

PROTOTIPADO (MANUAL)

ANALISIS Y ESPECIFICACION INFORMAL

ESPECIFICACION VALIDADA DISEO DISEO

IMPLEMENTACION

VALIDACION

MANTENIMIENTO

Paradigmas de Ciclo de Vida

20

Modelo clsico con prototipado

Aspectos bsicos:
Tras el anlisis, se construye el prototipo, que ayudar a refinar la especificacin de requerimientos. El desarrollo posterior prosigue en cascada.

Paradigmas de Ciclo de Vida

21

Modelo clsico con prototipado

Crticas

Elimina el efecto bola de nieve pero no el mantenimiento sobre el cdigo. El cliente ve en funcionamiento una versin preliminar, sin asumir que no es robusta ni completa. Inversin en un producto desechable puede no ser rentable. Es frecuente arrastrar malas decisiones (de diseo, de planificacin ...) que slo eran apropiadas para la obtencin rpida del prototipo. El tiempo invertido en la construccin del prototipo puede hacer que el producto pierda oportunidad.

Paradigmas de Ciclo de Vida

22

Programacin automtica

(Balzer, 1.983)

Objetivo: Introducir automatizacin en el proceso de desarrollo del software. Idea base: programacin por transformaciones:

Construccin de una primera versin que expresa formalmente el comportamiento deseado. Transformacin en una versin ms eficiente, preservando la funcionalidad.

Adaptamos esta idea para hablar, no ya de dos versiones, sino de la conversin automtica de una especificacin en un prototipo, y luego en el producto definitivo.

Paradigmas de Ciclo de Vida

23

Prototipado automtico
DECISIONES DESARROLLO FORMAL OPTIMIZACION MECANICA PRODUCTO

ANALISIS

ESPECIFICACION FORMAL (Prototipo)

VALIDACION MANTENIMIENTO

SINTONIZACION

Paradigmas de Ciclo de Vida

24

Paradigma automtico

Aspectos bsicos

Se utilizan lenguajes de especificacin formal. El prototipo es la propia especificacin (o se deriva automticamente de ella). Los requerimientos se perfilan animando la especificacin. La validacin y el mantenimiento recaen sobre la especificacin. El mantenimiento consiste en revisar y reemplazar la especificacin, y rederivar el prototipo. El producto final se obtiene a travs de un proceso mecnico de transformacin.

Paradigmas de Ciclo de Vida

25

Paradigma automtico (II)

Crticas:
Compromiso entre las ventajas obtenidas y el nivel al que debe elevarse la especificacin. La tecnologa necesaria para cubrir todo el ciclo de vida an no est a punto.

Paradigmas de Ciclo de Vida 26

Modelo incremental
Incremento 1

Anlisis
Incremento 2

Diseo Anlisis Diseo Anlisis

Cdigo Cdigo Diseo

Prueba

Entrega Incremento 1 Entrega Incremento 2 Entrega Incremento 3 Entrega Incremento 4

Prueba Cdigo

Incremento 3

Prueba

Incremento 4

Anlisis

Diseo

Cdigo

Prueba

Tiempo

Cada secuencia produce un incremento del software. Con cada incremento, se entrega un producto operacional
Paradigmas de Ciclo de Vida 27

Modelo en espiral (Boehm 88)


Planificacin Recoleccin de requisitos y planificacin del proyecto iniciales Planificacin basada en los comentarios del cliente Anlisis de riesgo Anlisis de riesgo basado en los requisitos iniciales Anlisis de riesgo basado en la reaccin del cliente Prototipo inicial del software

Evaluacin del cliente Evaluacin del cliente Ingeniera Hacia el final del sistema

Prototipos de siguiente nivel

Ms realista que el ciclo de vida clsico Relativamente poco probado


Paradigmas de Ciclo de Vida 28

Modelo de ensamblaje de componentes


I d e n tif ic a r c o m p o n e n te s c a n d id a to s C o n s tr u ir n ite r a c io n e s d e l s is te m a Poner c o m p o n e n te s n u e v o s e n la b ib lio te c a B u scar c o m p o n e n te s e n b ib lio te c a E x tra e r c o m p o n e n te s s i e s t n d is p o n ib le s

P la n if ic a c i n

A n lis is d e r ie sg o

E v a lu a c i n d e l c lie n te

In g e n ie r a

E x tra e r c o m p o n e n te s s i e s t n d is p o n ib le s

Ligado a la OO Promueve reutilizacin del software.

t. desarrollo, costes
Paradigmas de Ciclo de Vida 29

Ciclo de vida OO
P la n if ic a c i n A n lis is d e r ie sg o

I d e n tif ic a r c la s e s c a n d id a ta s C o n s tr u ir n - s im a ite r a c i n d e l s is te m a B u s c a r c la s e s e n b ib lio te c a

E v a lu a c i n d e l c lie n te

I n g e n ie r a

A a d ir la s n u e v a s c la s e s a la b ib lio te c a

E x tra e r n u e v a s c la s e s s i e x is te n

D e s a r r o lla r la s c la s e s s i n o e x is te n A n lis is O O D is e o O O P r o g r a m a c i n O O P ruebas O O

Hincapi

en la reutilizacin. Notacin uniforme en todas las fases de desarrollo.


Paradigmas de Ciclo de Vida 30

Ciclo de vida OO Modelo cluster (agrupamiento)


Agrupamiento n

ESPEC DISREA

DISREA VALGEN

VALGEN

Tiempo ESPEC

Agrupamiento 2

ESPEC

DISREA

VALGEN

Agrupamiento 1

Tiempo

Cluster:

conjunto de clases relacionadas con objetivo

comn
Cada

subciclo de vida: Especificacin, Diseo y Realizacin, Validacin y Generalizacin


Paradigmas de Ciclo de Vida 31

Ciclo de vida OO Booch 94 (Macroproceso)


Establecer requisitos bsicos (conceptualizacin)

(Prototipo desechable)

Desarrollar un modelo del comportamiento deseado (anlisis) Crear una arquitectura (diseo)

Gestionar la evolucin tras la entrega (mantenimiento)

Desplegar la implementacin (evolucin)


Paradigmas de Ciclo de Vida 32

Ciclo de vida OO Booch 94 (Microproceso)


Identificar clases y objetos

Especificar interfaces e implantacin de clases y objetos

Identificar la semntica de clases y objetos

Identificar relaciones entre clases y objetos


Paradigmas de Ciclo de Vida 33

Das könnte Ihnen auch gefallen