La metodología para el desarrollo de software es un modo
sistemático de realizar, gestionar y administrar un proyecto para llevarlo a
cabo con altas posibilidades de éxito.
Desde un punto de vista general puede considerarse que el
ciclo de vida de un software tiene tres etapas claramente diferenciadas, las
cuales se detallan a continuación:
• Planificación: idearemos un planeamiento detallado que guíe
la gestión del proyecto, temporal y económicamente.
• Implementación: acordaremos el conjunto de actividades que
componen la realización del producto.
• Puesta en producción: nuestro proyecto entra en la etapa de
definición, allí donde se lo presentamos al cliente o usuario final, sabiendo
que funciona correctamente y responde a los requerimientos solicitados en su
momento.
Clasificación de las
metodologías
Existen dos metodologías que tienen analogía en la práctica
con los paradigmas de programación. Metodología estructurada y metodología
orientada a objetos.
• Metodología estructurada: la orientación de esta
metodología se dirige hacia los procesos que intervienen en el sistema a
desarrollar, es decir, cada función a realizar por el sistema se descompone en
pequeños módulos individuales.
• Metodología orientada a objetos: a diferencia de la
metodología mencionada anteriormente, ésta no comprende los procesos como
funciones sino que arma módulos basados en componentes, es decir, cada
componente es independiente del otro. Esto nos permite que el código sea
reutilizable.
MODELOS DE CICLO DE
VIDA
Ciclo de vida lineal
Es el más sencillo de todos los modelos. Consiste en
descomponer la actividad global del proyecto en etapas separadas que son realizadas
de manera lineal, es decir, cada etapa se realiza una sola vez, a continuación
de la etapa anterior y antes de la etapa siguiente. Con un ciclo de vida lineal
es muy fácil dividir las tareas, y prever los tiempos (sumando linealmente los
de cada etapa).
Ciclo de vida en cascada
puro
Este modelo de ciclo de vida fue propuesto por Winston Royce
en el año 1970. Es un ciclo de vida que admite iteraciones, contrariamente a la
creencia de que es un ciclo de vida secuencial como el lineal. Después de cada
etapa se realiza una o varias revisiones para comprobar si se puede pasar a la siguiente.
Es un modelo rígido, poco flexible, y con muchas restricciones.
Ciclo de vida en V
Este ciclo fue diseñado por Alan Davis, y contiene las mismas
etapas que el ciclo de vida en cascada puro. A diferencia de aquél, a éste se
le agregaron dos subetapas de retroalimentación entre las etapas de análisis y
mantenimiento, y entre las de diseño y debugging.
Podemos utilizar este modelo de ciclo de vida en
aplicaciones, que si bien son simples (pequeñas transacciones sobre bases de
datos por ejemplo), necesitan una confiabilidad muy alta.
Ciclo de vida iterativo
También derivado del ciclo de vida en cascada puro, este
modelo busca reducir el riesgo que surge entre las necesidades del usuario y el
producto final por malos entendidos durante la etapa de solicitud de
requerimientos.
Es la iteración de varios ciclos de vida en cascada. Al final
de cada iteración se le entrega al cliente una versión mejorada o con mayores funcionalidades
del producto. El cliente es quien luego de cada iteración, evalúa el producto y
lo corrige o propone mejoras.
Ciclo de vida por
prototipos
El uso de programas prototipo no es exclusivo del ciclo de
vida iterativo. En la práctica los prototipos se utilizan para validar los
requerimientos de los usuarios en cualquier ciclo de vida.
Si no se conoce exactamente cómo desarrollar un determinado
producto o cuáles son las especificaciones de forma precisa, suele recurrirse a
definir especificaciones iniciales para hacer un prototipo, o sea, un producto
parcial y provisional. En este modelo, el objetivo es lograr un producto
intermedio, antes de realizar el producto final, para conocer mediante el
prototipo cómo responderán las funcionalidades previstas para el producto
final.
Antes de adoptar este modelo de ciclo debemos evaluar si el
esfuerzo por crear un prototipo vale realmente la pena adoptarlo.
Ciclo de vida evolutivo
Este modelo acepta que los requerimientos del usuario pueden
cambiar en cualquier momento.
La práctica nos demuestra que obtener todos los
requerimientos al comienzo del proyecto es extremadamente difícil, no sólo por
la dificultad del usuario de transmitir su idea, sino porque estos
requerimientos evolucionan durante el desarrollo y de esta manera, surgen
nuevos requerimientos a cumplir. El modelo de ciclo de vida evolutivo afronta
este problema mediante una iteración de ciclos
requerimientos–desarrollo–evaluación.
Ciclo de vida
incremental
Este modelo de ciclo de vida se basa en la filosofía de
construir incrementando las funcionalidades del programa.
Se realiza construyendo por módulos que cumplen las
diferentes funciones del sistema.
Esto permite ir aumentando gradualmente las capacidades del
software.
Este ciclo de vida facilita la tarea del desarrollo
permitiendo a cada miembro del equipo desarrollar un módulo particular en el
caso de que el proyecto sea realizado por un equipo de programadores.
Es una repetición del ciclo de vida en cascada, aplicándose este
ciclo en cada funcionalidad del programa a construir. Al final de cada ciclo le
entregamos una versión al cliente que contiene una nueva funcionalidad. Este
ciclo de vida nos permite realizar una entrega al cliente antes de terminar el
proyecto.
Ciclo de vida en
espiral
Este ciclo puede considerarse una variación del modelo con
prototipado, fue diseñado por Boehm en el año 1988. El modelo se basa en una
serie de ciclos repetitivos para ir ganando madurez en el producto final. Toma
los beneficios de los ciclos de vida incremental y por prototipos, pero se tiene
más en cuenta el concepto de riesgo que aparece debido a las incertidumbres e
ignorancias de los requerimientos proporcionados al principio del proyecto o
que surgirán durante el desarrollo. A medida que el ciclo se cumple (el avance del
espiral), se van obteniendo prototipos sucesivos que van ganando la
satisfacción del cliente o usuario.
A menudo, la fuente de incertidumbres es el propio cliente o
usuario, que en la mayoría de las oportunidades no sabe con perfección todas
las funcionalidades que debe tener el producto.
Este modelo tiene 4 etapas:
• Planificación: Relevamiento de requerimientos iniciales o
luego de una iteración.
• Análisis de riesgo: De acuerdo con el relevamiento de
requerimientos decidimos si continuamos con el desarrollo.
• Implementación: desarrollamos un prototipo basado en los
requerimientos.
• Evaluación: El cliente evalúa el prototipo, si da su
conformidad, termina el proyecto. En caso contrario, incluimos los nuevos
requerimientos solicitados por el cliente en la siguiente iteración.
Ciclo de vida orientado
a objetos
Esta técnica fue presentada en la década del 90, tal vez como
una de las mejores metodologías a seguir para la creación de productos
software.
Puede considerarse como un modelo pleno a seguir, como así
también una alternativa dentro de los modelos anteriores.
Al igual que la filosofía del paradigma de la programación
orientada a objetos, en esta metodología cada funcionalidad, o requerimiento
solicitado por el usuario, es considerado un objeto. Los objetos están
representados por un conjunto de propiedades, a los cuales denominamos
atributos, por otra parte, al comportamiento que tendrán estos objetos los
denominamos métodos.
Vemos que tanto la filosofía de esta metodología, los
términos utilizados en ella y sus fines, coinciden con la idea de obtener un
concepto de objeto sobre casos de la vida real.
HERRAMIENTAS CASE
Estas herramientas son un conjunto de programas y ayudas que
dan asistencia a los analistas, ingenieros de software y desarrolladores,
durante todos los pasos del Ciclo de Vida de desarrollo de un Software. Como es
sabido, los estados en el Ciclo de Vida de desarrollo de un Software son:
Investigación Preliminar, Análisis, Diseño, Implementación e Instalación.
Objetivo de las
herramientas CASE
El objetivo del CASE en una empresa es generar escenarios de
cómo solucionar las necesidades de tener información en tiempo real, es por ello
que el CASE es una metodología de trabajo que involucra diferentes disciplinas
de la informática, tales como:
·
Infraestructura.
·
Comunicaciones.
·
Hardware.
·
Software.
·
Desarrollo.
·
Personal
de IT
Para el análisis y diseño del proyecto, se requirió la ayuda
de la herramienta Enterprise Architect que nos permitirá el modelado de las
necesidades y requerimientos del negocio del proyecto, así como el modelado de
los diagramas preliminares necesarios para llevar a cabo la implementación y
puesta en marcha del software.
Tomado de:
No hay comentarios:
Publicar un comentario