jueves, 22 de octubre de 2009

Síntesis modelos del proceso del software


MODELOS DEL PROCESO DEL SOFTWARE

Es importante definir antes que nada, lo que es un proceso y mas específicamente un modelo de proceso de software, un proceso es un conjunto estructurado de actividades para especificar, diseñar, implementar y probar Sistemas de software. El modelo de proceso de software es una representación abstracta de un proceso. Este representa una descripción de un proceso desde una perspectiva particular.

Se selecciona un modelo de proceso según la naturaleza del proyecto, de la aplicación, los métodos, las herramientas a utilizar, los controles y las entregas que se requieren. Cada modelo ayuda al control y coordinación de un proyecto de software real.

MODELO EN CASCADA

El modelo en cascada original se desarrollo entre las décadas de los sesenta y setenta y se define como una secuencia de actividades, donde la estrategia principal es seguir el proceso del desarrollo de software hacia puntos de revisión bien definidos mediante entregas calendarizadas.

Este modelo ordena rigurosamente las etapas del ciclo de vida del software, de tal forma que el inicio de una etapa debe esperar a la finalización de la etapa inmediatamente anterior.

Algunas de las características más importantes de este modelo son:

Es el más utilizado
Todas las etapas deben desarrollarse para que el proyecto tenga éxito
Las fases continúan hasta que el objetivo es cumplido
Si se cambia el orden de las fases, el producto será de menor calidad

Las fases del modelo en cascada son:

Análisis de requisitos: En esta etapa se analizan los requerimientos de los usuarios finales para determinar los objetivos que deseamos alcanzar.
Diseño: En esta fase se realizan los algoritmos necesarios para que se cumplan los requerimientos del usuario así como también los análisis necesarios para saber que herramientas usar en la etapa de Programación.
Programación: Aquí se implementa el código fuente, haciendo uso de prototipos así como pruebas y ensayos para corregir errores.
Pruebas: Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos. Muchas veces se realizan pruebas con algunos de los futuros usuarios del sistema para verificar que el mismo sea fácil de entender y utilizar por ellos.
Implantación: El software obtenido se pone en producción. Se implantan los niveles software y hardware que componen el proyecto. La implantación es la fase con más duración y con más cambios en el ciclo de elaboración de un proyecto.
Mantenimiento: El software necesitará cambios después de la entrega. Los tipos de mantenimiento son:

Mantenimiento Preventivo y Perfectivo

Mantenimiento Correctivo

Mantenimiento Evolutivo

Ventajas del modelo en cascada

Ayuda a minimizar los gastos de la planificación porque permite realizarla sin problemas
Evita una fuente común de errores importantes
Se utiliza correctamente para ciclos en los que se tiene una definición estable del producto.

Desventajas del modelo en cascada

No existe un proyecto “enseñable” hasta el final del proyecto
Se tarda mucho tiempo en pasar por todo el ciclo
Dificultad para especificar claramente los requerimientos al comienzo del proyecto(no permite flexibilidad en los cambios)



Este es una ejemplificación grafica del modelo en cascada





MODELO EN ESPIRAL

Las actividades de este modelo se conforman en una espiral, en la que cada iteración representa a un conjunto de actividades.

Durante las primeras iteraciones la versión incremental podría ser un modelo en papel o un prototipo, durante las últimas iteraciones se producen versiones cada vez mas completas del sistema diseñado.

Se dice que el modelo en espiral mejora al modelo en cascada enfatizando la naturaleza iterativa del proceso de diseño.

Este modelo sigue algunos principios básicos como por ejemplo:

Definir el problema que se requiere resolver
Examinar las distintas alternativas de acción y elegir la mas conveniente
Conocer los niveles de riesgo

En cada iteración del modelo debemos tomar en cuenta:

Los objetivos: Que es lo que debe resolver nuestro producto
Alternativas: Son las distintas formas que tenemos para conseguir los objetivos de forma exitosa
Desarrollo y Verificación: Programar y probar el software

Para cada ciclo del modelo en espiral hay cuatro actividades:

· Determinar o fijar objetivos: Determinar que producto deseamos obtener, los requerimientos y la especificación.
· Análisis del riesgo: Se estudian todos los riesgos potenciales y se seleccionan una o varias alternativas propuestas para reducir o eliminar los riesgos.
· Desarrollar, verificar y validar (probar)
· Planificar: Revisamos todo lo hecho, evaluándolo, y con ello decidimos si continuamos con las fases siguientes y planificamos la próxima actividad.

Ventajas del modelo en espiral

Reduce riesgos del proyecto
Integra el desarrollo con el mantenimiento
Utiliza las fases de modelos tradicionales. Se centra en la eliminación de errores y alternativas poco atractivas.

Desventajas del modelo en espiral

Consume muchos recursos
Genera mucho tiempo en el desarrollo del sistema
Costoso
Requiere experiencia en la identificación de riesgos






MODELO INCREMENTAL

El modelo incremental es un desarrollo inicial de la arquitectura completa del sistema, seguido de incrementos y versiones parciales del mismo. Cada incremento tiene su propio ciclo de vida. Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema. Conforme se completa cada etapa, se verifica e integra la versión con las demás versiones ya completadas del sistema.

En una visión genérica, el proceso se divide en cuatro partes: Análisis, Diseño, Código, Prueba. En este método se mantiene al cliente en constante contacto con los resultados obtenidos en cada incremento. Es el mismo cliente el que incluyo o desecha elementos al final de cada incremento con la finalidad de que el software se adapte mejor a sus necesidades reales.

Algunas características de este modelo son:

El primer incremento es a menudo un producto esencial
A partir de la evaluación se planea el siguiente incremento y así sucesivamente
Es iterativo por naturaleza
Es útil cuando el personal no es suficiente
La administración de proyectos es más fácil de lograr en incrementos más pequeños
En lugar de entregar el sistema en una sola entrega, el desarrollo y la entrega están facturados bajo incrementos, con cada incremento se entrega parte de la funcionalidad requerida.

Ventajas del modelo incremental

Algunas de las ventajas de este modelo son:
El usuario se involucra mas
Se evitan proyectos largos y se entrega “Algo de valor” a los usuarios con cierta frecuencia
Se puede financiar el proyecto por partes
Es apropiado para proyectos grandes, de larga duración
No se necesita tanto personal al principio como para una implementación completa
Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande.

Desventajas del modelo incremental

Estas son algunas de las desventajas de este modelo:

Hay costos ocultos en su implementación, ya que se incorporan varias actividades a realizar por el equipo, y hay que saber medir ese impacto para no fracasar en el intento.

Representación grafica del modelo incremental:





MODELO RUP

El proceso unificado racional es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar mas utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

Consiste en un conjunto de actividades necesarias para transformar los requerimientos del usuario en el sistema de software. Esta especializado para diversos tipos de software de sistemas, diversas áreas de aplicación, diferentes tipos de organizaciones y diferentes tamaños de proyectos.

El modelo RUP es una guía de cómo usar UML de la forma más efectiva.

El ciclo de vida RUP es una implementación del Desarrollo en espiral. Fue creado ensamblando los elementos en secuencias semi-ordenadas. El ciclo de vida organiza las tareas en fases e iteraciones.

RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en las distintas actividades.

El ciclo de vida del modelo RUP son:

Inicio: Define el alcance y objetivos del proyecto
Elaboración: Plan de proyecto, especificación de características y arquitectura base.
Construcción: Construir y operar el producto
Transición: garantizar que se tiene un producto preparado para su entrega a la comunidad de usuarios.

Algunas de las principales características de este modelo son:

Tiene una forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)
Es iterativo
Esta guiado por los casos de uso
Incluye artefactos (que son los productos tangibles del proceso)
Incluye roles (es el papel que desempeña una persona en un determinado momento)
Dirigido por casos de uso

Las fases del modelo RUP son:

Establecer oportunidad y alcance
Identificar las entidades externas o actores con los que se trata
Identificar los casos de uso

Ventajas del modelo RUP

Estas son algunas de las ventajas del modelo RUP:

Mitigacion temprana de posibles riesgos altos
Progreso visible en las etapas tempranas
El conocimiento adquirido en una iteración puede aplicarse de iteración a iteración
Los usuarios están involucrados continuamente

Desventajas del modelo RUP

Estas son algunas de las desventajas del modelo RUP:

Por el grado de complejidad puede no resultar muy adecuado.
El RUP es generalmente mal aplicado en el estilo cascada.
Requiere conocimientos del proceso y de UML.


1 comentario:

  1. un resumen genial!!!!!, ni te imaginas cuanto me sirve!!!. MUCHAS GRACIAS!!!!!!

    ResponderEliminar