You are on page 1of 29

Otros Ciclos de Desarrollo

del Software
Efecto “bola de nieve”

ANÁLISIS
DISEÑO
IMPLEMENTACIÓN
PRUEBAS
MANTENIMIENTO
COSTO DE ELIMINACIÓN DE ERRORES
Prototipos
Prototipo
 Primera versión de un nuevo tipo de producto,
en el que se han incorporado sólo algunas
características del sistema final, o no se han
realizado completamente.
 Modelo o maqueta del sistema que se
construye para comprender mejor el problema
y sus posibles soluciones:
 evaluar mejor los requisitos
 probar opciones de diseño
Prototipos
 Características de los prototipos:
 Funcionalidad limitada
 Poca fiabilidad
 Características de operación pobres
 Prototipo  10% presupuesto del
proyecto
 normalmente pocos días de desarrollo
Uso de los prototipos
 Se presenta al cliente un prototipo para su
experimentación
 Ayuda al cliente a establecer claramente los
requisitos
 Ayuda a los desarrolladores a:
 Validar corrección de la especificación.
 Aprender sobre problemas que se presentarán
durante el diseño e implementación del sistema.
 Mejorar el producto.
 Examinar viabilidad y utilidad de la aplicación.
¿Cuándo son interesantes los
prototipos?
 Siempre, pero especialmente cuando...
 Área de aplicación no bien definida.
 El costo de rechazo por parte de los usuarios, por
no cumplir sus expectativas, es muy alto.
 Es necesario evaluar previamente el impacto del
sistema en los usuarios y en la organización.
 Se usan nuevos métodos, técnicas, tecnología.
Tipos de prototipos
 prototipo de interfaz de usuario: modelos de
pantallas.
 prototipo funcional (operacional):
implementa algunas funciones, y a medida que se
comprueba que son las apropiadas, se corrigen,
refinan, y se añaden otras.
Tipos de prototipos
 Rápido o desechable:
 Sirve al análisis y validación de los requisitos
 Después se redacta la especificación del sistema y se desecha el
prototipo
 La aplicación se desarrolla siguiendo un paradigma diferente
 Problema: cuando el prototipo no se desecha, y termina
convirtiéndose en el sistema final
 Evolutivos:
 Comienza con un sistema relativamente simple que implementa los
requisitos más importantes o mejor conocidos
 El prototipo se aumenta o cambia en cuanto se descubren nuevos
requisitos
 Finalmente, se convierte en el sistema requerido
 Actualmente se usa en el desarrollo de sitios Web y en aplicaciones
de comercio electrónico
Modelo en cascada con prototipado
desechable

PLANIFICACIÓN
ANÁLISIS Y
ESPECIFICACIÓN
DISEÑO
IMPLEMENTACIÓN
PROTOTIPADO
VALIDACIÓN
MANTENIMIENTO
Tras el análisis de
requisitos, se construye un
prototipo (rápido o
desechable), que ayudará a
refinar y validar la
especificación de
requisitos.
El desarrollo posterior
prosigue en cascada.
Tipos de prototipos
 Vertical
 desarrolla completamente alguna de las
funciones.
 Horizontal
 desarrolla parcialmente todas las funciones.

Herramientas para el prototipado
(Sommerville)
 Lenguajes dinámicos de alto nivel
 Lenguajes de cuarta generación (4GLs)
 Ensamblaje de componentes y aplicaciones
Ventajas del prototipado sobre el modelo en
cascada puro
 El prototipo ayuda a determinar los requisitos,
demostrar la viabilidad de una aplicación e investigar
sobre los aspectos que producen más incertidumbre.
 El prototipo es un documento vivo para especificar el
buen funcionamiento del sistema.
 El prototipo es un contrato con el cliente para el
desarrollo del producto.
 Aumenta la productividad del grupo y la calidad del
producto.
Modelo Incremental
Modelo incremental (Pressman 2002)
Análisis Diseño Código Prueba
Análisis Diseño Código Prueba
Análisis Diseño Código Prueba
Análisis Diseño Código Prueba
Incremento 1
Incremento 2
Incremento 3
Incremento 4
Entrega
Incremento 1
Entrega
Incremento 2
Entrega
Incremento 3
Entrega
Incremento 4
Tiempo
 Cada secuencia produce un “incremento” del sw.
 Con cada incremento, se entrega un producto totalmente
operacional ( del prototipado evolutivo)
Espiral
Modelo en espiral (Boehm 88)
Hacia el final
del sistema
Planificación Análisis de riesgo
Evaluación del cliente Ingeniería
Análisis de riesgo
basado en los
requisitos iniciales
Análisis de riesgo
basado en la reacción
del cliente
Recolección de
requisitos y
planificación del
proyecto iniciales
Planificación
basada en los
comentarios del
cliente
Evaluación del
cliente
Prototipo inicial del
software
Prototipos de
siguiente nivel
Más realista que el ciclo de vida clásico
Relativamente poco probado
Planificación
 Fijar los productos definidos a obtener:
requerimientos, especificación, manual de
usuario.
 Fijar las restricciones.
 Identificación de riesgos del proyecto y
estrategias alternativas para evitarlos.
Análisis de Riesgo
 Se estudian todos los riesgos potenciales y se
seleccionan una o varias alternativas
propuestas para reducir o eliminar los riesgos.
Ingeniería
 Tareas de la actividad propia y de prueba.
 Análisis de alternativas e identificación y resolución
de riesgos.
 Dependiendo del resultado de la evaluación de los
riesgos, se elige un modelo para el desarrollo, el que
puede ser cualquiera de los otros existentes, como
incremental, cascada, etc.
 Por ejemplo, si los riesgos en la interfaz de usuario
son dominantes, un modelo de desarrollo apropiado
podría ser la construcción de prototipos evolutivos
Evaluación del cliente
 Se revisa todo lo hecho, evaluándolo, y con
ello se decide si se continúa con las fases
siguientes y se planifica la próxima actividad.
Comparativa
 Ventajas
 Reduce riesgos del
proyecto
 Incorpora objetivos de
calidad
 Es posible tener en
cuenta mejoras y
nuevos requerimientos
sin romper con la
metodología, ya que
este ciclo de vida no es
rígido ni estático.
 Desventajas
 Mucho tiempo en
el desarrollo del
sistema
 Modelo costoso
 Requiere
experiencia en la
identificación de
riesgos
TECNICAS
Técnicas de 4ª generación (T4G)
Dos pasos:
1) Especificación de algunas características del
software de alto nivel.
2) La herramienta genera automáticamente el código en
L4G (4GL):
 generación de informes
 interacción y definición de pantallas
 ...
Técnicas de 4ª generación
Análisis de requisitos  implementación
En aplicaciones
pequeñas...
En aplicaciones
grandes...
Exige el mismo tiempo de análisis,
diseño y prueba
Ventajas:
reducción t. desarrollo
mayor productividad
Inconvenientes:
no son más fáciles de
usar
código ineficiente
mantenimiento difícil
Herramientas CASE
 Computer-Aided Software Engineering
 Conjunto de herramientas y métodos asociados que
proporcionan asistencia automatizada en el proceso
de desarrollo del software a lo largo de su ciclo de
vida.
 Gestión del proyecto
(planificación, estimación y control)
 Desarrollo del software
(análisis, diseño, implementación, validación)
 Mantenimiento del software.

Características básicas que debe
soportar (Yourdon 89)
 Soporte gráfico para varias técnicas (DFD, E/R,
modelos OO, etc.)
 Control de errores: Unicidad identificadores, reglas
metodología, etc.
 Verificación entre diferentes modelos:
 En una fase (p.e. entre DFD y E/R)
 En varias fases (DFD análisis y diseño; DFD diseño y
Diagrama de estructuras)
Otras características deseables
 Soporte multiusuario.
 Personalización.
 Control de documentos y versiones.
 Gestión de proyectos
 Estadísticas de productividad y métricas del software.
 Pruebas.
 Simulación y prototipado.
 Demostración corrección
especificaciones y/o software.
 Generación de código.
Según las fases del ciclo de vida
que abordan:
 CASE frontales (front-end) o Upper CASE: Herramientas de
apoyo a las primeras fases:
 Análisis, diseño.
 CASE dorsales (back-end) o Lower CASE: Herramientas de
apoyo a las últimas fases:
 Implementación (generación de código).
 Pruebas
 Mantenimiento.
 ICASE (Integrated-CASE)
 Contemplan todo el ciclo de desarrollo.