Metodologías del ciclo de vida de los sistemas.
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. Esta metodología consta de 6 fases:
Investigación Preliminar: La
solicitud para recibir ayuda de un sistema de información puede originarse por
varias razones: sin importar cuales sean estas, el proceso se inicia siempre
con la petición de una persona.
Determinación de los
requerimientos del sistema: El aspecto fundamental del análisis de sistemas es
comprender todas las facetas importantes de la parte de la empresa que se
encuentra bajo estudio. Los analistas, al trabajar con los empleados y
administradores, deben estudiar los procesos de una empresa para dar respuesta
a las siguientes preguntas clave:
¿Qué es lo que hace?
¿Cómo se hace?
¿Con que frecuencia se
presenta?
¿Qué tan grande es el volumen
de transacciones o decisiones?
¿Cuál es el grado de eficiencia
con el que se efectúan las tareas?
¿Existe algún problema? ¿Qué
tan serio es? ¿Cuál es la causa que lo origina?
Fases del 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.
Planificación
Antes de que se le de
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
decisiva mente 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).
¿Por qué resulta esencial la etapa de análisis? Simplemente, porque si no
sabemos con precisión qué es lo que se necesita, ningún proceso de desarrollo
nos permitirá obtenerlo. El problema es que, de primeras, puede que ni nuestro
cliente sepa de primeras qué es exactamente lo que necesita. Por tanto,
deberemos ayudarle a averiguarlo con ayuda de distintas técnicas (algunas de
las cuales aprenderemos a utilizar más adelante).
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
12 Diseño de Bases de Datos
© Fernando Berzal 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").
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).
La búsqueda de errores que se
realiza en la etapa de pruebas puede adaptar distintas formas, en función del
contexto y de la fase del proyecto en la que nos encontremos:
- Las pruebas de unidad sirven
para comprobar el correcto funcionamiento de un componente concreto de nuestro
sistema. Es este tipo de pruebas, el "probador" debe buscar
situaciones límite que expongan las limitaciones de la implementación del
componente, ya sea tratando éste como una caja negra
("pruebas de caja
negra") o fijándonos en su estructura interna ("pruebas de caja blanca").
Resulta recomendable que, conforme vamos añadiéndole nueva funcionalidad a
nuestras aplicaciones, vayamos creando nuevos tests con los medir nuestro
progreso y también repitamos los antiguos para comprobar que lo que antes
funcionaba sigue funcionando (test de regresión).
- Las pruebas de integración
son las que se realizan cuando vamos juntando los componentes que conforman
nuestro sistema y sirven para detectar errores en sus interfaces.
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.
20 Diseño de Bases de Datos
© Fernando Berzal
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. Una aplicación puede que sólo funcione con una versión concreta
de una biblioteca auxiliar. Un disco duro puede que sólo rinda al nivel deseado
si instalamos un controlador concreto. Componentes que por separado
funcionarían correctamente, combinados causan problemas, por lo que deberemos
utilizar sólo combinaciones conocidas que no presenten problemas de
compatibilidad.
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.
No hay comentarios.:
Publicar un comentario