Está en la página 1de 32

Ingeniera de Software: Metodologas

Agustn J. Gonzlez
ElO329: Diseo y Programacin Orientados
a Objeto
Adaptado de: http://www.dsic.upv.es/~uml
http://inst.eecs.berkeley.edu/~cs169/ entre otras
fuentes.

Algunas Metodologas ...

Personal Software Process y Team software


Process
XP (Programacin Extrema)
RUP (Rational Unified Process)
V-model

Proceso de Desarrollo
Iterativo e Incremental

Elo329: Diseo y Programacin

Recordar el proceso de desarrollo de


software completo

Sueo

Investigacin

Desarrollo

Lanzamiento Soporte
Tiempo

Parte a ser considerada en adelante

Elo329: Diseo y Programacin

Desarrollo Iterativo e Incremental

Esta idea es la base de varios mtodos de


desarrollo de software como RUP (Rational
Unified Proecess), Extreme Programming y otros
mtodos de desarrollo giles.
La idea bsica es desarrollar el sistema siguiendo
etapas incrementales caracterizadas por
generacin de sucesivas versiones que van
abarcando requerimientos hasta completar el
sistema.
Cada versin tiene sentido para el cliente.
Elo329: Diseo y Programacin

Principales metodologas en el tiempo


Definicin de
Requerimientos

Construccin/Pruebas

Anlisis & Diseo

Inicialmente se us
el Modelo
Tradicional de
Cascada
1980

Implementacin y
Test Unitarios

Tiempo

Integracin y
test del sistema
Operacin y
mantencin

Modelo Iterativo Incremental


1990

Iteracin 1

Iteracin 2

Iteracin 3

R
A&D

A&D
C

Tiempo

R
A&D

C
P

Elo329: Diseo y Programacin

Desarrollo Iterativo e Incremental

Iterativo: cada vez re-visitamos las etapas del


modelo en cascada, rehacemos, refinamos y
extendemos lo hecho.
Incremental: regularmente integramos los
avances para generar una versin con sentido
para el cliente.

Elo329: Diseo y Programacin

Desarrollo Iterativo e incremental: RUP


es uno de los: sus Caractersticas
Guiado y Manejado por Casos de Uso
Centrado en la Arquitectura
Iterativo e Incremental
Desarrollo Basado en Componentes
Utilizacin de UML
Proceso Integrado
Elo329: Diseo y Programacin

RUP Define Fases de Desarrollo ...


reas de trabajo
(Workflow)

Anlisis &
Diseo

Construccin

Pruebas

Distribucin

Esfuerzo Necesario por Actividad

Requerimientos

Concepcin

Elaboracin

Construccin

Transicin

A& D

A&D

A& D

A& D

Iteracin
Preliminar

Iteracin Iteracin
1
2

....

....

Iteracin
n

Iteracin
n+1

Tiempo

Fases del Ciclo de Vida

El ciclo de vida consiste en una serie de fases que


en su conjunto conducen al sistema final.
Cada fase est compuesta por un nmero de
iteraciones que generan versiones del sistema.
Las fases son 4:

Concepcin, Inicio o Estudio de oportunidad


Elaboracin
Construccin
Transicin

Elo329: Diseo y Programacin

10

...Fases del Ciclo de Desarrollo

Inicio o Estudio de oportunidad (inception)

Define el mbito y objetivos del proyecto


Se define la funcionalidad y capacidades del
producto

Elaboracin

Tanto la funcionalidad como el dominio del


problema se estudian en profundidad
Se define una arquitectura bsica
Se planifica el proyecto considerando recursos
disponibles
Elo329: Diseo y Programacin

11

...Fases del Ciclo de Desarrollo

Construccin

El producto se desarrolla a travs de iteraciones donde


cada iteracin involucra tareas de anlisis, diseo e
implementacin
Las fases de estudio y anlisis slo dieron una
arquitectura bsica que es aqu refinada de manera
incremental conforme se construye (se permiten cambios
en la estructura)
Gran parte del trabajo es programacin y pruebas
Se documenta tanto el sistema construido como el
manejo del mismo
Esta fase proporciona un producto construido junto con la
documentacin

Elo329: Diseo y Programacin

12

...Fases del Ciclo de Desarrollo

Transicin

Se libera el producto y se entrega al usuario para


un uso real
Se incluyen tareas de marketing, empaquetado
atractivo, instalacin, configuracin,
entrenamiento, soporte, mantenimiento, etc.
Los manuales de usuario se completan y refinan
con la informacin anterior
Estas tareas se realizan tambin en iteraciones

Elo329: Diseo y Programacin

13

Proceso Iterativo e Incremental

El ciclo de vida iterativo se basa en la evolucin


de prototipos ejecutables que se muestran a los
usuarios y clientes
En el ciclo de vida iterativo, en cada iteracin se
reproduce el ciclo de vida en cascada a menor
escala
Los objetivos de una iteracin se establecen en
funcin de la evaluacin de las iteraciones
precedentes
Elo329: Diseo y Programacin

14

... Proceso Iterativo e Incremental

Las actividades se encadenan en una minicascada con un alcance limitado por los
objetivos de la iteracin
Anlisis
Diseo
Codific.
n veces

Pruebas e
Integracin
Elo329: Diseo y Programacin

15

... Proceso Iterativo e Incremental

Cada iteracin comprende:

Planificar la iteracin (estudio de riesgos)


Anlisis de los Casos de Uso y escenarios
Diseo de opciones arquitectnicas
Codificacin y pruebas. La integracin del nuevo
cdigo con el hecho en iteraciones anteriores se
hace gradualmente durante la construccin
Evaluacin de la entrega de ejecutable (evaluacin
del prototipo en funcin de las pruebas y de los
criterios definidos)
Preparacin de la entrega (documentacin e
instalacin del prototipo)
Elo329: Diseo y Programacin

16

Importancia de los Hitos en RUP ...


Compromiso de
recursos para fase
elaboracin

Concepcin

Aceptacin
del cliente

Elaboracin

Construccin

Transicin

Tiempo
Hito
Objetivos,
visin

Hito
Arquitectura

Hito
Capacidad
Operacional

Elo329: Diseo y Programacin

Liberacin
Producto

17

... Elementos en RUP

Artefactos

Es el Resultado parcial o final que es producido y usado


durante el proyecto. Son las entradas y salidas de las
actividades

Un artefacto puede ser un documento, un modelo o un


elemento de modelo

Conjuntos de Artefactos
Business Modeling Set
Requirements Set

Deployment Set
Project Management Set

Analysis & Design Set


Implementation Set

Configuration & Change


Management Set

Test Set

Environment Set

Elo329: Diseo y Programacin

18

Caractersticas Esenciales de RUP

Proceso Iterativo e Incremental

Proceso Dirigido por los Casos de Uso

Proceso Centrado en la Arquitectura

Elo329: Diseo y Programacin Orientados a Objetos

19

Casos de uso: Idea general

Un caso de uso es una coleccin de escenarios de xito


y fallas relacionados que describen actores usando el
sistema para alcanzar algn objetivo.
Un escenario es una secuencia especfica de
acciones e interacciones entre actores y el sistema
bajo discusin.
Un actor es algo externo al sistema en discusin que
interacta con ste. Por ejemplo: Una persona, otro
sistema computacional, un sensor, etc.
Los casos de uso muestran el comportamiento
observable del sistema.
Elo329: Diseo y Programacin

20

Proceso Centrado en la Arquitectura


La arquitectura de un sistema es la organizacin o
estructura de sus partes ms relevantes
Un arquitectura ejecutable es una implementacin
parcial del sistema, construida para demostrar
algunas funciones y propiedades
RUP establece refinamientos sucesivos de una
arquitectura ejecutable, construida como un
prototipo evolutivo
Inception Elaboration

Construction

Transition

Architecture
Elo329:
Diseo y Programacin

21

Otra visin similar con ms


Actividades

Elo329: Diseo y Programacin

22

Otra visin similar con ms


Actividades
Disciplinas o reas de trabajo
Modelado del Negocio
Requisitos
Anlisis y Diseo

Primarios

Implementacin
Pruebas
Distribucin
Gestin de configuracin y cambios
Gestin del proyecto

De Apoyo

Entorno

Elo329: Diseo y Programacin

23

Proceso dirigido por los Casos de Uso


Capturar, definir y
validar los casos de
uso

Requisitos
Anlisis & Diseo
Implementacin
Pruebas

Casos de Uso
integran el
trabajo

Realizar los
casos de uso
Verificar que se
satisfacen los
casos de uso

Elo329: Diseo y Programacin

24

... Proceso dirigido por los Casos de Uso


Realizacin de Anlisis
trace

trace

Caso de Uso

Realizacin de Diseo

trace

trace

Pruebas
Unitarias
Pruebas Funcionales

Caso de Prueba
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]

Elo329: Diseo y Programacin

25

... Proceso dirigido por los Casos de


Uso

Elo329: Diseo y Programacin

26

Proceso Iterativo e Incremental


Grado de completitud de cada rea de trabajo

Enfoque
Cascada

Enfoque
Iterativo e
Incremental

Elo329: Diseo y Programacin

27

... Proceso Iterativo e Incremental


Grado de Finalizacin de Artefactos

Elo329: Diseo y Programacin

28

Esfuerzo respecto de las reas de


Trabajo (Workflows)
Concepcin Elaboracin

Construccin

Transicin

15%

Requisitos
Una iteracin en la
fase de elaboracin
Anlisis

10%

Diseo

15%
30%

Implementacin

15%

Pruebas
P re lim ina ry
Ite ra tion (s)

ite r.
#1

ite r.
#2

ite r.
#n

ite r.
# n+ 1

ite r.
#n+2

ite r.
#m

Elo329: Diseo y Programacin

ite r.
#m +1

29

...Esfuerzo respecto de las Fases


Concepcin Elaboracin

Construccin

Transicin

Requisitos
Una iteracin en la
fase de elaboracin
Anlisis

Diseo

Implementacin

Pruebas
P re lim ina ry
Ite ra tion (s)

Esfuerzo:
Duracin:

ite r.
#1

ite r.
#2

ite r.
#n

5%
20%
10% Elo329:
30%
Diseo

ite r.
# n+ 1

ite r.
#n+2

ite r.
#m

65%
50%
Programacin

ite r.
#m +1

10%
10%

30

Comparar con V-Model

Elo329: Diseo y Programacin

31

Dos lecciones importantes

El tiempo es independiente del contexto. Ahorrar


una semana la comienzo de un proyecto es tan
bueno como ahorrarla al final. Una semana es
una semana.

Es mucho ms fcil ahorrar tiempo al inicio del


proyecto (cuando los entregables son menos
claros).

Conclusin: Cmo se aplica esto al proyecto del


ramo?
Elo329: Diseo y Programacin

32

También podría gustarte