Concepto
La Metodología de ciclo de
vida para el desarrollo de sistemas es el conjunto de actividades que los
analistas, diseñadores y usuarios realizan para desarrollar e implantar un
sistema de información.
En la mayor parte de las
situaciones dentro de una empresa todas las actividades están muy relacionadas,
en general son inseparables, y quizás sea difícil determinar el orden de los
pasos que se siguen para efectuarlas. Las diversas partes del proyecto pueden encontrarse
al mismo tiempo en distintas fases del desarrollo; algunos componentes en la
fase de análisis mientas que otros en etapas avanzadas del diseño.
Ciclo de
Vida de los Sistemas
Cualquier sistema de
información va pasando por una serie de fases a lo largo de su vida. Su ciclo
de vida comprende una serie de etapas entre las que se encuentran las
siguientes:
- Planificación
- Análisis
- Diseño
- Implementación
- Pruebas
- Instalación o despliegue
- Uso y mantenimiento
Estas etapas son un reflejo del
proceso que se sigue a la hora de resolver cualquier tipo de problema. Ya en
1945, mucho antes de que existiese la Ingeniería del Software, el matemático
George Polya describió este proceso en su libro How to solve it (el primero que
describe la utilización de técnicas heurísticas en la resolución de problemas).
Básicamente, resolver un problema requiere:
- Comprender el problema (análisis).
- Plantear una posible solución, considerando soluciones alternativas (diseño).
- Llevar a cabo la solución planteada (implementación).
- Comprobar que el resultado obtenido es correcto (pruebas).
Las etapas adicionales de
planificación, instalación y mantenimiento que aparecen en el ciclo de vida de
un sistema de información son necesarias en el mundo real porque el desarrollo
de un sistema de información conlleva unos costes asociados (lo que se hace
necesaria la planificación) y se supone que, una vez construido el sistema de
información, éste debería poder utilizarse (si no, no tendría sentido haber
invertido en su desarrollo).
Planificación
Antes de que se le dé
oficialmente el pistoletazo de salida a un proyecto de desarrollo de un sistema
de información, es necesario realizar una serie de tareas previas que influirán
decisivamente en la finalización con éxito del proyecto. Estas tareas se
conocen popularmente como el fuzzy front-end del proyecto al no estar sujetas a
plazos. Las tareas iniciales que se realizarán esta fase inicial del proyecto
incluyen actividades tales como la determinación del ámbito del proyecto, la
realización de un estudio de viabilidad, el análisis de los riesgos asociados
al proyecto, una estimación del coste del proyecto, su planificación temporal y
la asignación de recursos a las distintas etapas del proyecto.
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).
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).
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.
Pruebas
Errar es humano y la etapa de
pruebas tiene como objetivo detectar los errores que se hayan podido cometer en
las etapas anteriores del proyecto (y, eventualmente, corregirlos). Lo suyo,
además, es hacerlo antes de que el usuario final del sistema los tenga que
sufrir. De hecho, una prueba es un éxito cuando se detecta un error (y no al
revés, como nos gustaría pensar).
Instalación / Despliegue
Una vez concluidas las etapas
de desarrollo de un sistema de información (análisis, diseño, implementación y
pruebas), llega el instante de que poner el sistema en funcionamiento, su
instalación o despliegue.
De cara a su instalación, hemos
de planificar el entorno en el que el sistema debe funcionar, tanto hardware
como software: equipos necesarios y su configuración física, redes de
interconexión entre los equipos y de acceso a sistemas externos, sistemas
operativos (actualizados para evitar problemas de seguridad), bibliotecas y
componentes suministrados por terceras partes, etcétera
Para asegurar el correcto
funcionamiento del sistema, resulta esencial que tengamos en cuenta las
dependencias que pueden existir entre los distintos componentes del sistema y
sus versiones. Si nuestro sistema reemplaza a un sistema anterior o se
despliega paulatinamente en distintas fases, también hemos de planificar
cuidadosamente la transición del sistema antiguo al nuevo de forma que sus
usuarios no sufran una disrupción en el funcionamiento del sistema.
Uso y 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.
No hay comentarios:
Publicar un comentario