Modelos tradicionales
Basado en prototipos
Codificación
desarrolla el código fuente
Diseño
Se divide en 4 atributos.
La estructura de los datos, la arquitectura del software, el detalle procedimental y la caracterización de la interfaz.
Análisis de los requisitos del software
Se analizan las necesidades de los usuarios
para determinar qué objetivos debe cubrir.
Ingeniería y Análisis del Sistema
establecer los requisitos de todos los elementos del sistema
Prueba
comprueba que funciona correctamente antes de ser puesto en explotación.
Mantenimiento
El software sufrirá cambios como:
adaptarse al entorno externo, o debido a que el cliente requiera ampliaciones funcionales o del rendimiento.
Modelos de proceso Modelos de proceso
Orientados a la reutilizacion
Proceso de desarrollo unificado
Proceso que puede adaptarse y extenderse en función de las necesidades de cada empresa.
Características del Proceso Unificado de Desarrollo
Iterativo e Incremental
reduce el riesgo a los costos de un solo incremento
Dirigido por casos de uso
Establecer el comportamiento deseado del sistema
Centrado en la Arquitectura.
arquitectura software incluye los aspectos estáticos y dinámicos más significativos del sistema.
Basado en componentes
Sistemas orientados a objetos
Eliminación de las fronteras entre fases.
Desarrollo basado en componentes re utilizables.
Desarrollo iterativo e incremental.
Se pueden combinar con modelos tradicionales.
Agrupamiento
Unidad organizativa básica Unidad organizativa básica.
Grupo de clases relacionadas o, recursivamente, clusters
relacionados.
Unidad natural para el desarrollo por parte de un único desarrollador.
Evita el efecto todo-nada propio del modelo en cascada
Fuente
Representa gráficamente el alto grado de iteración y
solapamiento que hace posible la tecnología de objetos.
Dos modelos de ciclo de vida
Para el sistema completo
Para cada clase o módulo
Procesos agiles
Los procesos ágiles constituyen un nuevo enfoque en el desarrollo
de software
Caracteristicas
Menor énfasis en el análisis, diseño y documentación.
Equipos pequeños.
Desarrollo incremental.
Programación en cajas de tiempo.
Supervivencia en un entorno caótico.
Algunos ejemplos
eXtreme Programming.
basado en el modelo incremental
Programación en parejas.
Integración continua.
Cliente in-situ
Estándares de codificación
Crystal
Proceso Software Adaptativo
Scrum
Modelos evolutivos
Modelo en espiral
modelo de proceso de software evolutivo
para cubrir las mejores características.
Proporciona el potencial para el desarrollo rápido de versiones incrementales del software.
Planificacion
se definen los objetivos, las alternativas y las restricciones, se analizan e identifican los riesgos.
Evaluación del cliente
El cliente evalúa el trabajo de ingeniería
Análisis de riesgo
El proyecto se revisa y se toma la decisión de si se debe continuar con un ciclo posterior de la espiral
Ingeniería
elige un modelo para el desarrollo del sistema.
Modelo incremental
Software en partes pequeñas, pero utilizables
Es útil cuando el personal no esta disponible para una implementación completa.
El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades del cliente y la entrega de funciones, y características adicionales.
Modelo de cascada
El software debe ser construido, rigurosamente, a través de una transformación sucesiva de documentos, siguiendo una estrategia lineal de desarrollo. Primero saber qué se quiere y después, cuando se conozca todo lo que se quiere, empezar a construirlo.
Ventajas
este método radica en su sencillez ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el software
Desventajas
Los proyectos reales raramente siguen el flujo secuencial que propone el modelo.