Vous êtes sur la page 1sur 18

Sidney Valer Quispe

 Definición
 El enfoque de desarrollo se refiere a la una metodología
de trabajo para estructurar, planificar y controlar el
proceso de desarrollo de software.

 Enfoques de desarrollo
 En el presente curso, revisaremos los siguientes
enfoques:

▪ Enfoque de desarrollo en cascada


▪ Enfoque de desarrollo Iterativo
▪ Enfoque de desarrollo espiral
 Considera las actividades fundamentales del proceso
de especificación, desarrollo, validación y evolución
presentándolos como fases separadas del proceso de
desarrollo del software.
Requerimentos

Diseño

Implementación

Integración
F. Mantenimiento
 Definición de requerimientos
 Se define en detalle, mediante las consultas con los usuarios, los servicios,
restricciones y metas del sistema. Estos sirven como una especificación del
sistema.

 Diseño del sistema y del software


 Se dividen los requerimientos en Hardware y Software.
 Se establece una arquitectura completa del sistema.
 Se identifican y describen las abstracciones fundamentales del sistema software
y sus relaciones.

 Implementación y prueba de unidades


 Se lleva a cabo el diseño del software como un conjunto o unidades de
programas.
 La prueba de unidades implica verificar que cada una cumpla su especificación.
 Integración y prueba del sistema
 Las unidades individuales de programas se integran y prueban como un
sistema completo para asegurar que se cumplan con los requerimientos del
software.
 Después de las pruebas, el sistema de software se entrega al cliente.

 Funcionamiento y mantenimiento
 El sistema se instala y se pone en funcionamiento práctico.
 El mantenimiento implica corregir errores no detectados en las etapas
anteriores, mejorar la implementación de unidades del sistema y resaltar los
servicios del sistema una vez que se descubren nuevos requerimientos.
 El resultado de cada fase es uno o más documentos
aprobados (“FIRMADOS”)
 Una fase no debe empezar hasta finalizar la fase previa
 En la práctica las fases se superponen y entregan
información a las otras
 Los problemas se superponen para su resolución, se pasan
por alto o se programan
 Al evolucionar el sistema, pueden aparecer nuevos
requerimientos, por lo que se pueden repetir partes del
proceso
 Este modelo solo se debe utilizar cuando los requerimientos
se comprendan bien y sea improbable que cambien durante
el desarrollo
 Ventajas del modelo en cascada
 Se tiene todo bien organizado y no se mezclan las fases.
 Es perfecto para proyectos que son rígidos, y además
donde se especifiquen muy bien los requerimientos y se
conozca muy bien la herramienta a utilizar

 Desventajas del modelo en cascada


 En la vida real, un proyecto rara vez sigue una secuencia
lineal, esto crea una mala implementación del modelo,
lo cual hace que lo lleve al fracaso.
 También conocido como enfoque
Iterativo/Incremental es aquel en que la
especificación, diseño e implementación del software
se dividen en una serie de incrementos, los cuales se
desarrollan por turnos.
 Es la respuesta a la debilidad del modelo en cascada
 Los clientes identifican los servicios que proporcionará el
sistema y cuales son más críticos
 Se desarrolla un sistema de programas de manera
incremental
 El aprendizaje viene de dos vertientes: el desarrollo del
sistema y su utilización
 Los pasos claves en el proceso son comenzar con una
implementación simple de los requerimientos del sistema, e
iterativamente mejorar la secuencia evolutiva de versiones
hasta que el sistema completo esté implementado.
 En cada iteración, se realizan cambios en el diseño y se
agregan nuevas funcionalidades y capacidades al sistema.
 Etapa inicial
 Se crea una versión inicial del sistema que debe ofrecer una
muestra de los aspectos claves del problema y proveer una
solución lo suficientemente simple para ser comprendida e
implementada fácilmente.
 Se crea una lista de control de proyecto para guiar el proceso de
iteración con el historial de todas las tareas que necesitan ser
realizadas. Incluye cosas como nuevas funcionalidades para ser
implementadas, y áreas de rediseño de la solución ya existente.
 Esta lista de control se revisa periódica y constantemente como
resultado de la fase de análisis.
 La meta de esta etapa es crear un producto con el que el usuario
pueda interactuar, y por ende retroalimentar el proceso
 Etapa de iteración
 Esta etapa involucra el rediseño e implementación de una tarea de la
lista de control de proyecto, y el análisis de la versión más reciente
del sistema.
 El código puede, en ciertos casos, representar la mayor fuente de
documentación del sistema.
 El análisis de una iteración se basa en la retroalimentación del
usuario y en el análisis de las funcionalidades disponibles del
programa.
 La lista de control del proyecto se modifica bajo la luz de los
resultados del análisis.
 La meta del diseño e implementación de cualquier iteración es ser
simple, directa y modular, para poder soportar el rediseño de la etapa
o como una tarea añadida a la lista de control de proyecto.
 Los clientes no tienen que esperar a que el sistema esté
completo para sacar provecho de él. El primer
incremento satisface las necesidades más críticas.
 Los clientes pueden usar los incrementos iniciales como
prototipos y obtener experiencia sobre los
requerimientos de los incrementos posteriores.
 Existe un bajo riesgo de un fallo total del proyecto.
 Se realizan más pruebas a los servicios más críticos, lo
que implica menos probabilidad de hallar fallas en las
partes más importantes del sistema.
 Debido a la interacción con los usuarios finales, utilizar este
modelo de desarrollo puede llevar a avances
extremadamente lentos.
 Por la misma razón no es una aplicación ideal para
desarrollos en los que de antemano se sabe que serán
grandes en el consumo de recursos y largos en el tiempo.
 Al requerir constantemente la ayuda de los usuario finales,
se agrega un costo extra a los clientes, pues mientras estos
usuarios evalúan el software dejan de ser directamente
productivos para la compañía.
 El desarrollo del sistema “gira” en espiral hacia afuera
comenzando con un esbozo inicial y terminando con el
desarrollo final del mismo.
 Definición de objetivos

 Se definen los objetivos específicos.


 Se identifican restricciones del proceso y el producto.
 Se traza un plan detallado de gestión.
 Se planean estrategias alternativas dependiendo de los
riesgos.

 Evaluación y reducción de riesgos

 Se analiza detalladamente cada uno de los riesgos del


proyecto identificados.
 Se definen los pasos para reducir dichos riesgos.
 Desarrollo y validación

 Después de la evaluación de riesgos, se define un modelo


para el desarrollo del sistema.

 Planificación

 El proyecto se revisa y se toma la decisión de si se debe


continuar con un ciclo posterior de la espiral.

 Si se decide continuar, se desarrollan los planes para la


siguiente fase del proyecto.
 El análisis del riesgo se hace de forma explícita y
clara.
 
Incorpora objetivos de calidad
 
Integra el desarrollo con el mantenimiento.
 Además 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.
 Genera mucho tiempo en el desarrollo del
sistema

 Modelo costoso

 Requiere experiencia en la identificación de


riesgos