You are on page 1of 28

2

Modelos
Para desarrollar un producto de software
se realizan diversas actividades que se
estructuran y relacionan de acuerdo a un
modelo y se desarrollan siguiendo un
mtodo.
Los modelos
encadenan las diversas
actividades
3
Modelos -Procesos
El modelo de desarrollo de software
indica como se relacionan las actividades

Los procesos de desarrollo de software
indican como se realizan las actividades
para producir y evolucionar un sistema
del software

4
Modelos de desarrollo
Define la estructura de un proceso de
desarrollo racional y controlable
No existe un modelo universal
Los modelos no son rgidos
Son una gua respecto al orden en que
deben adelantarse las actividades
Establece el ciclo de vida del software.

5
Modelos de desarrollo de software
La cascada
Separa y secuencia las fases
Evolutivo
Especificacin y desarrollo son intercalados
Basado en reuso
El sistema es producto de ensamblaje de
componentes
6
Cul modelo han usado?
Anlisis de
Requerimientos
Diseo del
Sistema
Diseo de
Programas
Construccin
de Programas
Validacin
de componentes
Validacin
del Sistema
Mantenimiento
Liberacin
Integracin
7
Modelo de la cascada
Encadenamiento
secuencial de las
actividades
Cada etapa produce
documentos que son la
entrada a la siguiente
Para desarrollar una etapa
debe concluirse la anterior
Popular en la dcada 70.
Anlisis de
requerimientos
Diseo
Implementacin
Validacin de
componentes
Integracin y
validacin del
sistema
Liberacin y
mantenimiento
8
Modelo de la cascada (cont.)
El modelo original no se adapta a ciertas
aplicaciones
Los costos al descubrir errores en etapas
avanzadas son muy altos
Es rgido
Se incorporan variantes al modelo.
9
Variante del modelo de la cascada
Anlisis de
requerimientos
Diseo
Implementacin
Validacin de
componentes
Integracin y
validacin del
sistema
Liberacin y
mantenimiento
Prototipaje
10
Modelo de la cascada: Ventajas-desventajas
El gran problema de este modelo es la
dificultad de realizar cambios despus que el
proceso ha avanzado
Particin inflexible del proyecto en etapas
Dificultad de responder a los cambios de los
requerimientos del cliente
Este modelo es apropiado cuando los
requerimientos estn bien definidos

11
Modelo en espiral
Provee una visin del proceso que soporta la
gestin de riesgos.
RIESGO: circunstancia
potencialmente adversa
que puede impactar al
proceso y al producto
GESTION DE RIESGOS:
disciplina que identifica,
trata y elimina los
potenciales riesgos
Se centra en identificar y eliminar los riesgos en
el desarrollo de software
Es cclico y en cada nivel se asegura mayor
robustez
12
I
Identifica
Objetivos,
alternativas,
restricciones
II
Evala alternativas,
identifica y resuelve
riesgos
IV
Revisin de
resultados y
Planificacin de la
siguiente fase
III
Desarrolla,
verifica
Requerimientos,
plan del ciclo de
vida
Anlisis
de riesgo
Prototipo 1
Prototipo 2
Prototipo 3
Prototipo
Anlisis
de riesgo
Anlisis
de riesgo
Anlisis
de riesgo
Diseo
detallado
Plan de
desarrollo
Integracin y
plan de test
Validacin
del diseo
Diseo
Requerimientos
Validacin
de req.
Cdigo
Test
Unitario
Integracin
y test
El Modelo espiral Progreso
Incepcin
liberacin
13
Desarrollo en espiral
El proceso se representa como una espiral en
lugar de una secuencia de actividades
Cada vuelta en la espiral representa una fase
en el proceso
Ninguna fase es fija, tal como la especificacin
o el diseo - las vueltas en la espiral son
elegidas dependiendo lo que se requiera
Se evalan los riesgos explcitamente y se
resuelven a lo largo del proceso
14
Modelo en espiral
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Proto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Concept of
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
design
Detailed
design
Code
Unit test
Integr ation
test
Acceptance
test
Service
Develop, verify
next-level product
Evaluate alternatives
identify, resolve risks
Determine objectives
alternatives and
constraints
Plan next phase
Integration
and test plan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
Ian Sommerville 2000 Software Engineering, 6th edition.
15
Modelo Evolutivo

Se construye el ncleo de la
aplicacin prototipo -
Se incrementa el prototipo
con el desarrollo de otras
partes
Cada parte se valida y su
feedback aclara los
requerimientos
Se basa en el desarrollo
incremental y en un
desarrollo de las partes por
etapas (iterativo).

Identificar
componentes
Construir
componentes
Validar
componentes
Liberar sistema
completo
Liberar
componente
Sistema
completo?
si
no
requerimientos
Prototipaje es una
herramienta en el
proceso de comprender
los requerimientos
Fuente: Ghezzi &al, Fundamentals of Software Engineering.
PrenticeHall, 1991
16
Identificar
componentes
Construir
componentes
Validar
componentes
Liberar sistema
completo
Liberar
componente
Sistema
completo?
si
no
Requerimientos
Modelo Evolutivo (cont.)
17
Desarrollo evolutivo
Desarrollo exploratorio
Explorar los requerimientos y evolucionar a un
sistema final desde un bosquejo de la descripcin
inicial. Puede comenzar sin comprenderse bien
los requerimientos. Comienza con las partes que
se comprenden mejor

Prototipaje desechable
Comprender los requerimientos del sistema, los
cuales no estn bien definidos.
18
Desarrollo evolutivo
Validation
Final
version
Development
Intermediate
versions
Specification
Initial
version
Outline
description
Concurr ent
activities
Ian Sommerville 2000 Software Engineering, 6th edition.
19
Modelo Basado en ensamblaje de
componentes
Se basa en la reutilizacin de componentes
Requiere de una librera de componentes
La reutilizacin puede ser de componentes de
especificacin, de programas, etc.
La reusabilidad permite reducir el tiempo y los
costos asociados a la construccin de
productos de software
Requiere de herramientas de asistencia para
las nuevas actividades que se generan.

20
Modelo basado en ensamblaje de
componentes
Desarrollo PARA Reusabilidad
Desarrollo CON Reusabilidad
Asistente de Reusabilidad
Recuperacin
Evaluacin
Adaptacin
Asistente de
Construccin de Componentes
Clasificacin
Calificacin
Reingeniera
Base de Componentes
Reusables
Administrador de la Base
Desarrolladores
21
Desarrollo orientado a reuso
Basado en reuso de forma sistemtica.
Un sistema est integrado a partir de
componentes
Etapas del proceso
Anlisis de componentes
Modificacin de requerimientos
Diseo del sistema con reuso
Desarrollo e integracin
A pesar de su importancia aun hay una
experiencia limitada
23
Modelos actuales
Proceso Unificado
25
Qu modelo?
Depende del tipo de aplicacin
Pueden combinarse diferentes modelos
Influye el contexto de desarrollo
no existe un modelo universal


...un mtodo de desarrollo
basado en funcionalidades,
soportado en arquitecturas,
iterativo e incremental
UML
26
Iteracin del proceso
Los requisitos del sistema SIEMPRE
evolucionan en el curso de un proyecto y se
requiere iteracin del proceso desde las
fases ms tempranas
La iteracin puede aplicarse en cualquiera
de los modelos
Dos modelos :
El desarrollo incremental
El desarrollo espiral
27
Proceso Iterativo
Ciclo iterativo
de desarrollo
Tiempo
Anlisis de
Requerimientos
Diseo
Implementacin
y prueba
Iteracin n-1
Anlisis de
Requerimientos
Diseo
Implementacin
y prueba
Iteracin n
Anlisis de
Requerimientos
Diseo
Implementacin
y prueba
Iteracin n+1
28
Desarrollo incremental
En lugar de entregar el sistema de una sola
vez, el desarrollo y la entrega est dividida en
incrementos, cada incremento responde a
una funcionalidad requerida
Se priorizan los requerimientos del usuario y
los de ms alta prioridad son incluido en los
primeros incrementos
Una vez que el desarrollo de un incremento
se empieza, los requerimientos quedan
congelados, aunque ms tarde los
incrementos pueden continuar evolucionando
29
Desarrollo incremental e iterativo

.
Desarrollo iterativo
Desarrollo incremental
.
.
.
.
.
30
Ventajas del desarrollo incremental

Incrementos tempranos -como un prototipo-
ayuda a obtener los requisitos para los
incrementos posteriores
Los servicios de sistema de prioridad ms
altos, tienden a recibir la mayor cantidad de
pruebas
31
Bibliografa
- Ghezzi &al, Fundamentals of Software
Engineering. PrenticeHall. Cap.7

- Sommerville . Ingeniera de software. Addison
Wesley 2002. Cap. 3

You might also like