CICLO DE VIDA
DE LOS
SISTEMAS DE INFORMACIÓN
Modelos para el ciclo de vida de Desarrollo de Software
*Cascada
El modelo de ciclo de vida clásico, también denominado "Modelo en Cascada", se basa en
intentar hacer las cosas bien desde el principio, de una vez y para siempre. Se pasa, en orden,
de una etapa a la siguiente sólo tras finalizar con éxito las tareas de verificación y validación
propias de la etapa. Si resulta necesario, únicamente se da marcha atrás hasta la fase
inmediatamente anterior.
Este modelo tradicional de ciclo de vida exige una aproximación secuencial al proceso de
desarrollo del software.
Tal cual, el modelo de ciclo de vida en cascada no nos indica nada acerca de la relación
contractual existente entre el cliente y la organización encargada del desarrollo de software.
*Estructurado
El análisis estructurado, como otros métodos, permite construir modelos de sistemas a partir del análisis de sus procesos y/o actividades que se ejecutan asociados al sistema. Permite al equipo encargado del estudio del desarrollo o la organización conocer de forma lógica un sistema o proceso. El objetivo que persigue el análisis estructurado es organizar las tareas asociadas con la determinación de requerimientos para obtener la comprensión completa y exacta situación dada. Se enfoca en lo que el sistema o aplicación realizan sin importar la forma en que llevan a cabo su función (se abordan los aspectos lógicos y no los físicos). Emplea símbolos gráficos para describir el movimiento y procesamiento de datos.
*Espiral
El modelo en espiral de Barry Boehm hace especial hincapié en la prevención de
riesgos. Este modelo define cuatro actividades principales: planificación
(determinar los objetivos, alternativas y restricciones del proyecto), análisis de
riesgos (análisis de alternativas e identificación/resolución de riesgos), ingeniería
(desarrollo del producto) y evaluación (revisión por parte del cliente y valoración
de los resultados obtenidos de cara a la siguiente iteración). En cada iteración
alrededor de la espiral se construyen versiones cada vez más completas del
software.
*Prototipo
El desarrollo de prototipos reduce el riesgo de que nuestro proyecto fracase y facilita la
especificación de requerimientos de productos que desconocemos. Sin embargo, también
tiene sus inconvenientes: el cliente puede pensar que el prototipo es el sistema definitivo,
ignorando que un prototipo no es un sistema acabado aunque tenga el mismo aspecto externo.
Esto puede conducir a la consolidación de aspectos de baja calidad de un prototipo en el
El ciclo de vida de un sistema de información final que se entrega si el prototipo no se desecha a tiempo.
*Orientado a Objetos
La fase de análisis determina lo que debe hacer la implementación y la fase de diseño del sistema determina el plan de ataque. La fase de diseño de objetos determina las definiciones completas de las clases y asociaciones que se utilizarán en la implementación, así como las interfaces y algoritmos de los métodos utilizados para implementar las operaciones. La fase de diseño de objetos añadirá objetos internos para la implementación y optimizará las estructuras de datos y los algoritmos. El diseño de objetos es análogo a la fase preliminar de diseño del ciclo de vida de desarrollo de software tradicional.
Ciclos de vida según Bibliografía
FABREGAS: 1- Requerimientos
2- Análisis/Diseño
3- Construcción
4- Pruebas
5- Producción/Mantenimiento
SENN: 1- Investigación Preliminar
2- Determinación de Requerimientos.
3- Diseño del Sistema
4- Desarrollo del Software
5- Prueba del Sistema
6- Implantación y Evaluación
PRESSMAN: 1- Análisis
2- Diseño
3- Codificación
4- Prueba
5- Mantenimiento
EN GENERAL: 1- Análisis
2- Diseño
3- Implementación
4- Mantenimiento
Fases del Ciclo de Vida
FASE 1: ANÁLISIS
Lo primero que debemos hacer para construir un sistema de información es averiguar qué es
exactamente lo que tiene que hacer el sistema. La etapa de análisis en el ciclo de vida del
software corresponde al proceso mediante el cual se intenta descubrir qué es lo que realmente
se necesita y se llega a una comprensión adecuada de los requerimientos del sistema (las
características que el sistema debe poseer).
Un buen analista
debería tener una formación adecuada en:
- Técnicas de elicitación de requerimientos.
- Herramientas de modelado de sistemas.
- Metodologías de análisis de requerimientos.
FASE 2: DISEÑO
Mientras que los modelos utilizados en la etapa de análisis representan los requisitos del
usuario desde distintos puntos de vista (el qué), los modelos que se utilizan en la fase de
diseño representan las características del sistema que nos permitirán implementarlo de forma
efectiva (el cómo).
Un software bien diseñado debe exhibir determinadas características. Su diseño debería ser
modular en vez de monolítico. Sus módulos deberían ser cohesivos (encargarse de una tarea concreta y sólo de una) y estar débilmente acoplados entre sí (para facilitar el mantenimiento
del sistema). Cada módulo debería ofrecer a los demás unos interfaces bien definidos (al
estilo del diseño por contrato propuesto por Bertrand Meyer) y ocultar sus detalles de
implementación (siguiendo el principio de ocultación de información de Parnas). Por último,
debe ser posible relacionar las decisiones de diseño tomadas con los requerimientos del
sistema que las ocasionaron (algo que se suele denominar "trazabilidad de los
requerimientos").
En la fase de diseño se han de estudiar posibles alternativas de implementación para el
sistema de información que hemos de construir y se ha de decidir la estructura general que
tendrá el sistema (su diseño arquitectónico).
FASE 3: IMPLEMENTACIÓN
Una vez que sabemos qué funciones debe desempeñar nuestro sistema de información
(análisis) y hemos decidido cómo vamos a organizar sus distintos componentes (diseño), es el
momento de pasar a la etapa de implementación, pero nunca antes. Antes de escribir una sola
línea de código (o de crear una tabla en nuestra base de datos) es fundamental haber
comprendido bien el problema que se pretende resolver y haber aplicado principios básicos de
diseño que nos permitan construir un sistema de información de calidad.
Para la fase de implementación hemos de seleccionar las herramientas adecuadas, un entorno
de desarrollo que facilite nuestro trabajo y un lenguaje de programación apropiado para el tipo
de sistema que vayamos a construir. La elección de estas herramientas dependerá en gran
parte de las decisiones de diseño que hayamos tomado hasta el momento y del entorno en el
que nuestro sistema deberá funcionar. A la hora de programar, deberemos procurar que nuestro código no resulte indescifrable. Para
que nuestro código sea legible, hemos de evitar estructuras de control no estructuradas, elegir
cuidadosamente los identificadores de nuestras variables, seleccionar algoritmos y estructuras
de datos adecuadas para nuestro problema, mantener la lógica de nuestra aplicación lo más
sencilla posible, comentar adecuadamente el texto de nuestros programas y, por último,
facilitar la interpretación visual de nuestro código mediante el uso de sangrías y líneas en
blanco que separen distintos bloques de código.
FASE 4: MANTENIMIENTO
La etapa de mantenimiento consume típicamente del 40 al 80 por ciento de los recursos de
una empresa de desarrollo de software. De hecho, con un 60% de media, es probablemente la
etapa más importante del ciclo de vida del software. Dada la naturaleza del software, que ni se
rompe ni se desgasta con el uso, su mantenimiento incluye tres facetas diferentes:
- Eliminar los defectos que se detecten durante su vida útil (mantenimiento
correctivo), lo primero que a uno se le viene a la cabeza cuando piensa en el
mantenimiento de cualquier cosa.
- Adaptarlo a nuevas necesidades (mantenimiento adaptativo), cuando el sistema
ha de funcionar sobre una nueva versión del sistema operativo o en un entorno
hardware diferente, por ejemplo.
- Añadirle nueva funcionalidad (mantenimiento perfectivo), cuando se proponen
características deseables que supondrían una mejora del sistema ya existente.
Hola alma crystal me parece un blog muy completo en tu información sobre el ciclo de vida de los sistemas de información sigue así publicando contenidos interesantes.
ResponderEliminar