Está en la página 1de 30

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
método.

Los modelos
encadenan las diversas
actividades
1
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

2
Modelos de desarrollo

• Define la estructura de un proceso de


desarrollo racional y controlable
• No existe un modelo universal
• Los modelos no son rígidos
• Son una guía respecto al orden en que
deben adelantarse las actividades
• Establece el ciclo de vida del software.

3
Modelos de desarrollo de software

• La cascada
Separa y secuencia las fases
• Evolutivo

Especificación y desarrollo son intercalados


• Basado en reuso

El sistema es producto de ensamblaje de


componentes

5
¿Cuál modelo han usado?

Análisis de
Requerimientos
Mantenimiento Diseño del
Sistema

Liberación

Diseño de
Programas
Validación
del Sistema

Integración Construcción
de Programas

6
Validación
de componentes
Modelo de la cascada

Análisis de
• Encadenamiento requerimientos
secuencial de las
Diseño
actividades
• Cada etapa produce Implementación

documentos que son la Validación de


entrada a la siguiente componentes

• Para desarrollar una etapa Integración y


debe concluirse la anterior validación del
sistema
• Popular en la década 70.
Liberación y
mantenimiento
7
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 rígido
• Se incorporan variantes al modelo.

8
Variante del modelo de la cascada

Análisis de
requerimientos

Diseño

Implementación

Validación de
componentes

Integración y
validación del
Prototipaje sistema

Liberación y
mantenimiento
9
Ejemplo de un Modelo de Cascada

Modelo de desarrollo
de software Análisis de
requerimientos

Prototipaje
Método 1 Método n
Etapas vs actividades
Especificación

Implementación

Un ejemplo
10
Modelo de la Cascada

Requirements
definition

System and
software design

Implementation
and unit testing

Integr ation and


system testing

Operation and
maintenance

11
©Ian Sommerville 2000 Software Engineering, 6th edition.
Modelo de la cascada: Ventajas-desventajas

• El gran problema de este modelo es la


dificultad de realizar cambios después que el
proceso ha avanzado
• Partición inflexible del proyecto en etapas
• Dificultad de responder a los cambios de los
requerimientos del cliente
• Este modelo es apropiado cuando los
requerimientos están bien definidos

12
Modelo en espiral

• Se centra en identificar y eliminar los riesgos en


el desarrollo de software

• Provee una visión del proceso que soporta la


gestión de riesgos.

• Es cíclico y en cada nivel se asegura mayor


robustez

RIESGO: circunstancia GESTION DE RIESGOS:


potencialmente adversa disciplina que identifica,
que puede impactar al trata y elimina los
proceso y al producto potenciales riesgos 13
El Modelo espiral Progreso

I II

Identifica Análisis Evalúa alternativas,


de riesgo identifica y resuelve
Objetivos,
alternativas, riesgos
Análisis
restricciones de riesgo

Análisis Prototipo
de riesgo
Análisis
de riesgo Prototipo 3
Prototipo 2
Prototipo 1

Requerimientos, Simulac
ión, mod
plan del ciclo de Incepción elación
vida Requerimientos Diseño
Diseño detallado

Plan de Validación
desarrollo Código
de req.
Test
Unitario
IV Integración y Validación
plan de test del diseño
Revisión de Integración
resultados y y test III
liberación
Planificación de la Desarrolla, 14
siguiente fase verifica
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 especificación
o el diseño - las vueltas en la espiral son
elegidas dependiendo lo que se requiera
• Se evalúan los riesgos explícitamente y se
resuelven a lo largo del proceso

15
Modelo en espiral

Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analy sis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
16
©Ian Sommerville 2000 Software Engineering, 6th edition.
Modelo Evolutivo

• Se construye el núcleo de la
aplicación –prototipo - requerimientos

• 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 Prototipaje es una
etapas (iterativo). herramienta en el
proceso de comprender
Fuente: Ghezzi &al, “Fundamentals of Software Engineering”. los requerimientos 17
PrenticeHall, 1991
Modelo Evolutivo (cont.)

Requerimientos

18
Desarrollo evolutivo

• Desarrollo exploratorio
Explorar los requerimientos y evolucionar a un
sistema final desde un bosquejo de la descripción
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 están bien definidos.

19
Desarrollo evolutivo

Concurr ent
activities

Initial
Specification
version

Outline Intermediate
Development
description versions

Final
Validation
version

20
©Ian Sommerville 2000 Software Engineering, 6th edition.
Modelo Basado en ensamblaje de
componentes
• Se basa en la reutilización de componentes
• Requiere de una librería de componentes
• La reutilización puede ser de componentes de
especificación, de programas, etc.
• La reusabilidad permite reducir el tiempo y los
costos asociados a la construcción de
productos de software
• Requiere de herramientas de asistencia para
las nuevas actividades que se generan.
21
Modelo basado en ensamblaje de
componentes
Desarrollo CON Reusabilidad

Asistente de Reusabilidad
Recuperación Adaptación
Evaluación

Administrador de la Base
Asistente de
Base de Componentes Construcción de Componentes Desarrolladores
Reusables Clasificación Reingeniería
Calificación

Desarrollo PARA Reusabilidad 22


Desarrollo orientado a reuso

• Basado en reuso de forma sistemática.


• Un sistema está integrado a partir de
componentes
• Etapas del proceso
• Análisis de componentes

• Modificación de requerimientos

• Diseño del sistema con reuso

• Desarrollo e integración

• A pesar de su importancia aun hay una


experiencia limitada 23
Modelos actuales

Proceso Unificado

25
¿Qué modelo?

• Depende del tipo de aplicación


• Pueden combinarse diferentes modelos
• Influye el contexto de desarrollo
• no existe un modelo universal

...un método de desarrollo


basado en funcionalidades,
soportado en arquitecturas,
iterativo e incremental
UML
27
Iteración del proceso

• Los requisitos del sistema SIEMPRE


evolucionan en el curso de un proyecto y se
requiere iteración del proceso desde las fases
más tempranas
• La iteración puede aplicarse en cualquiera de
los modelos
• Dos modelos :
•             El desarrollo incremental
•             El desarrollo espiral

28
Proceso Iterativo

Ciclo iterativo
de desarrollo

Análisis de Análisis de Análisis de


Requerimientos Requerimientos Requerimientos

Diseño Diseño Diseño

Implementación Implementación Implementación


y prueba y prueba y prueba

Iteración n-1 Iteración n Iteración n+1 29

Tiempo
Desarrollo iterativo
• Pequeños pasos, feeback y refinamiento.
• Iterativo, incremental.
• Evolutivo, espiral, . . .
Iteration Iteration
...
1 2

Code, Test, Code, Test,


Analyze Design Analyze Design
Integrate Integrate
2 semanas

2 semanas
30
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 más alta prioridad son incluido en los
primeros incrementos
• Una vez que el desarrollo de un incremento
se empieza, los requerimientos quedan
congelados, aunque más tarde los
incrementos pueden continuar evolucionando 31
Desarrollo incremental e iterativo

Desarrollo incremental

Desarrollo iterativo

. . .
. . .

32
Ventajas del desarrollo incremental

• Incrementos tempranos -como un prototipo-


ayuda a obtener los requisitos para los
incrementos posteriores
• Los servicios de sistema de prioridad más
altos, tienden a recibir la mayor cantidad de
pruebas

33

También podría gustarte