Archivo mensual: abril 2008

Ciclo de vida de los sistemas… modelo por prototipos

Antes de definir y detallar los conceptos más importantes que hacen referencia al diseño conceptual y detallado es importante resaltar que éstos hacen parte de un complejo proceso, que en últimas nos permitirá la implementación de un sistema de información en una compañía, por tanto hay que enmarcarlos dentro de ese proceso.

Dentro del marco teórico que se ha desarrollado en cuanto a diseño de sistemas de información se manejan dos enfoques principalmente: el enfoque de la elaboración de prototipos y el enfoque del ciclo de vida de los sistemas.

Enfoque de la elaboración de prototipos

Laudon define un prototipo como ” una versión operativa preliminar de un sistema de información para fines de demostración y evaluación”. Como su definición lo indica el prototipo es una versión preliminar, el objetivo es mejorarla con el paso del tiempo hasta que se acomode a las necesidades de los usuarios, por medio de un proceso iterativo que consiste en probar y afinar constantemente el prototipo hasta que cumpla su objetivo.

Clases de prototipos

Kendall propone cuatro clases de prototipos:

Prototipos de remiendo:

Sistema que cumple con sus funciones pero se encuentra remendado o parchado, puede operar pero generalmente es ineficiente.

Modelo a escala no funcional:

Son modelos que son construidos a escala, por lo general más pequeños, que permiten evaluar ciertos aspectos de diseño, pero que no son funcionales en la realidad.

Modelo a escala completa:

Se trata de un modelo “piloto”. Se trata de un modelo real que servirá como referencia a futuras versiones que de él se hagan. Un ejemplo es el de un sistema de información que una gran cadena de almacenes quiera establecer, éste seguramente será probado en un almacén para que desde allí pueda ser mejorado y luego implementado en otras tiendas.

Modelo con ciertas características esenciales:

Es un sistema funcional que incluye algunas características de las que tendrá el sistema final y que se completará a medida que pase el tiempo y las necesidades así lo requieran.

Etapas de la elaboración de prototipos

El proceso iterativo se puede resumir en cuatro pasos:

  • Identificar requerimientos básicos del usuario
  • Desarrollar prototipo inicial
  • Usar el prototipo
  • Revisión y mejora del prototipo

Cabe aclarar que en la primera etapa sol se obtienen las necesidades básicas de información, sin profundizar ni detallar. Luego se desarrolla un prototipo, se utiliza, se prueba y revisa, si este cumple con los requerimientos del cliente empieza a funcionar como prototipo operativo; si no es así, se mejora y se regresa a la etapa de utilización del prototipo.

Para determinados tipos de sistemas resulta eficaz la elaboración de prototipos, generalmente son muy útiles cuando existe mucha incertidumbre sobre los requerimientos o posibles soluciones de diseño, es el caso de los sistemas enfocados a la toma de decisiones no estructuradas. Además cuentan con una ventaja adicional que es la de involucrar de manera interactiva y frecuente a los usuarios finales del sistema. Su principal desventaja radica en que no son eficaces cuando se requiere un alto nivel de detalle en los requerimientos y metodología utilizada por la empresa.

Enfoque del ciclo de vida de los sistemas

La metodología clásica para el diseño de los sistemas de información es la del ciclo de vida de los sistemas, que divide todo el proceso de planeación, diseño e implementación en una serie de etapas que son recorridas de manera secuencial. No existe unanimidad entre los diversos autores acerca del número y el nombre de las etapas que conforman el ciclo de vida de los sistemas, pero en general todas las versiones tienen unos lineamientos similares.

Etapas del ciclo de vida de los sistemas

Definición del proyecto:

Durante esta etapa se identifican problemas, oportunidades y objetivos, así mismo se determinan los requerimientos de información, todo lo anterior de la manera más objetiva posible. También se analiza si es necesario implementar un nuevo sistema o modificar el existente, y especificar los objetivos y el alcance del proyecto todo plasmado en un plan de proyecto estructurado.

Análisis de sistemas:

Aquí se analizan los problemas en detalle y las necesidades del sistema, se utilizan algunas herramientas como los diagramas de flujo, las entrevistas, los análisis de documentos e informes, etc. además se hace un análisis inicial de la factibilidad de las posibles soluciones.

Diseño:

Se usa toda la información recopilada anteriormente y se elabora un diseño lógico del sistema de información. Luego se hacen las especificaciones formales, que implica diseñar procedimientos precisos de captura de datos, accesos efectivos al sistema, la interfaz con el usuario, una base de datos eficiente, etc.

Programación:

Este es un paso básicamente técnico, su objetivo es traducir las especificaciones de diseño en un código de programación. Aquí también se documento el software a utilizar para remediar futuros imprevistos.

Instalación:

En esta etapa se prueba el sistema, se analiza la forma en que se implementará en cada arte de la organización, se capacita el personal, así mismo se documenta el sistema y se le hacen las primeras evaluaciones.

Posimplantación:

Consiste en la evaluación constante del sistema después de entrar en funcionamiento, incluye actualización y puede llegar a ser necesaria una auditoría formal para ver si el sistema cumple con los objetivos.

La metodología del ciclo de vida es tradicionalmente la más utilizada para sistemas de información medianos o grandes, donde hay una alta estructuración de tareas y decisiones. Sin embargo tiene algunas limitaciones que radican en su alto costo, su inflexibilidad, el hecho de no involucrar a los usuarios de una manera interactiva y la poca aplicabilidad en la toma de decisiones no estructuradas, debido a que estas se basan en información que no puede ser detallada con antelación.

Existen analistas que afirman que los dos enfoques (ciclo de vida y prototipos) son complementarios, esta afirmación se argumenta diciendo que la determinación de los requerimientos de información puede satisfacerse con el desarrollo de prototipos cuando estos se incorporan a la metodología del ciclo de vida.naturaleza del diseño conceptual de un sistema de información gerencial.

 

__

Manual de Análisis de Bases de Datos: Metodología y ciclo de vida

1. 1.- METODOLOGÍA DE DESARROLLO DE SISTEMAS DE INFORMACIÓN

 

 

 

Por metodología se entiende “un conjunto integrado de técnicas y método que permite abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida de un proyecto de desarrollo de un sistema de información”

 

     

  • Sistema de Información: Es un conjunto de componentes (computadoras, periféricos, software y usuarios) que trabajan juntos para conseguir un objetivo, transformando elementos de entrada al sistema en otros elementos de salida (datos).  
  • Ciclo de Vida: Conjunto de fases implicadas en un proyecto de desarrollo de un sistema de información, desde su concepción inicial, pasando por su desarrollo, implantación, funcionamiento y mantenimiento, hasta que el sistema deja de utilizarse o se transforma en otro.  
  • Método: Concreción en etapas o pasos precisos, tanto el proceso de desarrollo en general (ciclo de vida) como cada una de las fases generales en las que se divide éste.  
  • Técnicas: Mecanismos, procedimientos y recursos de que se sirve la metodología.  

 

La utilización de técnicas de diagramas favorece la comunicación entre el personal de desarrollo y los usuarios para los que se realiza el sistema. La documentación esquemática que se establece facilita el mantenimiento del sistema, lo que hace que se consiga mayor calidad del mismo. Para que todas estas ventajas sean efectivas, es preciso introducir la metodología gradualmente, diseñando previamente:

 

     

  • Un plan de formación, que garantice el aprendizaje necesario; 

     

  • Un plan de normalización, fijando estándares relativos a nomenclatura, a las técnicas y a la documentación; 

     

  • Un plan de adaptación, mediante la aplicación de la metodología a un proyecto piloto. 

 

El que un sistema deba o no ser informatizado es algo que discutiremos a lo largo del curso. Como analistas de sistemas supondremos que todo sistema con el que nos encontremos deberá ser informatizado y, el usuario con quien actuaremos generalmente supondrá tal predisposición. La labor primaria como analista, será analizar o estudiar el sistema para determinar su esencia: su comportamiento requerido, independientemente de la tecnología utilizada para implantar el sistema.

 

La incapacidad de estimar el tiempo, coste y esfuerzo necesario para el desarrollo de un producto software y, la falta de calidad del software producido son la causa de la aparición de la Ingeniería del software como una disciplina científica.

 

     

  • Década 50-60: Programación Artesanal. Existe una fuerte dependencia del software sobre el hardware. Se caracteriza por el desarrollo artesanal de los productos software, ausencia total de planificación y escasa documentación de los mismos.  
  • Década 60-70: Lenguajes de Alto Nivel. Se produce un aumento en la complejidad de los sistemas, por lo que surge la necesidad de fiabilidad en los mismos, aunque hay una carencia de metodología para el desarrollo de aplicaciones. Reducción en el coste de procesamiento.  
  • Década 70-80: Ingeniería del software. Se intenta dar una solución a los problemas de etapas anteriores. Aparece la programación estructurada.  
  • Década 80-90: Paradigmas. Se produce un volcado de los resultados del álgebra y la lógica al campo práctico. Desarrollo de las herramientas CASE.  
  • Década 90: Inteligencia Artificial. Se caracteriza por la aparición de la Programación Orientada a Objetos.  

 

Para clasificar el software se parte de la definición de Pressman: “El software se compone de los siguientes elementos:

     

  • Instrucciones o programas que cuando se ejecutan tienen el comportamiento esperado;  
  • Estructuras de datos;  
  • Documentación o parte que explica el uso y manipulación del programa.”  

 

La Calidad del software se mide en base a los conceptos de:

     

  • Fiabilidad: Capaz de dar los mismos resultados bajo las mismas condiciones.  
  • Eficiencia: Utilización óptima de los recursos del sistema.  
  • Robustez o Tolerancia a Fallos: No poseer comportamiento catastrófico ante situaciones excepcionales.  
  • Corrección: Debe ajustarse a las especificaciones dadas por el usuario y sin errores de diseño y codificación.  
  • Adaptabilidad: Fácilmente modificables algunas de sus funciones sin afectar al resto.  
  • Portabilidad: Capacidad de poder integrarse en entornos distintos con un mínimo esfuerzo.  
  • Inteligible: Que tenga un diseño claro y fácil, bien documentado y estructurado.  
  • No erróneo: No debe haber diferencia entre valores reales y calculados.  

 

 

1. 2.- CICLO DE VIDA

 

 

Es el conjunto de fases por las que debe pasar un proyecto desde su concepción inicial, hasta que el sistema deja de utilizarse o se transforma en otro.

 

Existen diferentes modelos de ciclo de vida, que pueden aplicarse en función del tipo de sistema a desarrollar.

 

 

CICLO DE VIDA CLÁSICO O EN CASCADA

 

 

Este ciclo establece una serie de fases, al finalizar las cuales se obtiene una serie de productos (documentos, diagramas, programas) que permite evaluar lo realizado hasta ese momento y continuar con la fase siguiente o modificar algunos aspectos de las fases anteriores.

 

     

  • Planificación estratégica: Su existencia es opcional. Si existe, su objetivo es adecuar los objetivos estratégicos de la organización (usuario) y la información necesaria para soportar dichos objetivos. Se debe determinar si el sistema es factible de informatizar, incluyendo algunas especificaciones básicas acerca de coste y tiempo necesarios para construir el sistema, así como los beneficios que se obtengan del nuevo sistema.  

 

     

  • Fase de Análisis: el objetivo de esta fase es el estudio de las necesidades de información que debe satisfacer el sistema a desarrollar, elaborando una serie de especificaciones formales que describan la funcionalidad del mismo y que permitan abordar con garantías la siguiente fase. Se puede estructurar en dos subfases:   

     

    : se trata de establecer el alcance, los objetivos y requisitos del sistema, examinando las posibles alternativas que podrían solucionar las necesidades del usuario y recomendar una de ellas. Al final de esta subfase se obtiene un documento llamado “Documento de Requisitos del Sistema” 

     

     

    : conocida como Análisis Funcional. Una vez aceptado formalmente el documento anterior por ambas partes (equipo de desarrollo y usuario), se elabora un conjunto de especificaciones formales que describan la funcionalidad del sistema, estableciendo los subsistemas en que se descompondrá, definiendo los datos que utilizará y las interfaces de usuario. También se planificarán las pruebas que deberá superar el sistema, se estimará la relación coste/beneficio para comprobar si interesa su construcción y se establecerán los plazos de entrega del sistema. Todo ello se recoge en dos documentos, denominados “Documento de Especificación Funcional del Sistema” y “Documento de Pruebas del Sistema” 

  • Análisis de Requerimientos del Sistema
  • Especificación Funcional del Sistema

 

     

  • Fase de Diseño: conocida como Análisis Orgánico. El objetivo de esta fase es obtener un conjunto de especificaciones que contemplarán los aspectos físicos del sistema, considerando las características tecnológicas del entorno específico en el que se implantará, que constituirá el punto de partida para la construcción del sistema. Equivale a la creación de una jerarquía apropiada de módulos de programas y de interfaces entre ellos para implantar la especificación creada en la fase anterior. Además, se encarga de la transformación de modelos de datos de Entidad-Relación en un diseño de base de datos. Al final de esta fase se obtienen el “Documento de Diseño Técnico” y el anterior “Documento de Pruebas del Sistema” con las ampliaciones relativas a la definición del entorno de pruebas.  

 

     

  • Fase de Construcción: el propósito de esta fase es, a partir de las especificaciones de diseño, la obtención del sistema completamente construido y probado, listo para ser implantado en la organización del usuario. También durante esta fase se desarrollará el conjunto de procedimientos y se llevará a cabo la formación necesaria que permitirá, tanto al personal del área de usuario final, como al personal del área de explotación o proceso de datos (si existe), la utilización óptima del sistema. Al final de esta fase se obtiene el Software correspondiente y, los siguientes documentos: “Documentación Técnica de Programación”, “Manual de usuario”, “Manual de Explotación”, “Documento de Pruebas del Sistema” ampliado con los informes de las pruebas unitarias, de integración y globales.   

     

    : Comprobar la validación de cada uno de los módulos. 

     

     

    : unión de todos los módulos y prueba de la unión. 

  • Generación de Pruebas Unitarias
  • Generación de Pruebas de Integración

 

     

  • Fase de Implantación: el objetivo de esta fase es la puesta en servicio del sistema construido y conseguir su adaptación final por parte de los usuarios del mismo, para lo cual tratará de hacerse ver a éstos, mediante demostraciones formales (pruebas de aceptación) que el sistema cumple todos los objetivos y requisitos para los que fue desarrollado. En esta fase se incluye la ejecución y el mantenimiento del sistema, con lo que su duración se prolongará hasta que el sistema deje de utilizarse o sea sustituido por otro.   

     

    : Detección de errores de que el programa no se ajusta a las especificaciones. 

  • Generación de Pruebas de Aceptación

 

 

INCONVENIENTES:

 

 

     

  1. Desarrollo manual. 

     

  2. Las herramientas utilizadas no están integradas ni relacionadas entre sí. 

     

  3. Los errores de análisis y diseño son muy caros de eliminar, ya que se encuentran muy tarde. 

     

  4. Se produce efecto bola de nieve: los errores se arrastran a las fases siguientes.. 

 

 

 

CICLO DE VIDA DE PROTOTIPOS

 

 

     

  • Prototipo: primera versión de un producto, construido con poca funcionalidad y poca fiabilidad. La diferencia entre prototipo y producto final es que el prototipo es eficiente y el producto final debe serlo y, que en el prototipo no están todos los detalles y, el producto final debe contenerlos.  

 

Clases de prototipos:

     

  • Vertical
  • Horizontal
  • : no recoge todas las funciones del sistema final. 

     

     

    : recoge todas las funciones, pero no las desarrolla por completo. 

 

Este ciclo casi siempre supone que el modelo será operante, es decir, una colección de programas que simularán alguna o todas las funciones que el usuario desea. Pero dado que se pretende que dichos programas sean solo de modelo, también se supone que al concluirse el modelado, los programas se descartarán y se reemplazarán con programas reales. Normalmente se utilizan las siguientes herramientas:

     

  • Un diccionario de datos integrado. 

     

  • Un generador de pantallas. 

     

  • Un generador de informes no guiado por procedimientos. 

     

  • Un lenguaje de programación de cuarta generación. 

     

  • Un lenguaje de consultas no guiado por procedimientos. 

     

  • Medios poderosos de administración de bases de datos. 

 

 

VENTAJAS:

 

 

     

  1. Se incrementa la productividad del equipo de desarrollo. Se incrementa la calidad del producto final, ya que el prototipo permite trabajar, ensayar,… 

     

  2. disminuyen los costes de mantenimiento del producto final. Los tiempos de desarrollo son inferiores. 

     

  3. El tamaño del sistema es menor. 

     

  4. La especificación actúa como interface entre cliente y equipo de desarrollo. 

     

  5. El propio prototipo sirve de contrato con el cliente y cualquier cambio en el prototipo debe estar consolidado por ambas partes. 

     

  6. El prototipo es un documento vivo de buen funcionamiento del producto final. 

     

  7. Ayuda para determinar requerimientos expresados en el prototipo. Experimenta sobre los aspectos del sistema que representan mayor complejidad. Demuestran la viabilidad del sistema. 

     

  8. El cliente reacciona mucho mejor ante el prototipo, sobre el que puede experimentar, que no sobre una especificación escrita. 

 

 

INCONVENIENTES:

 

 

     

  1. Fuerte inversión en un producto que se desechable: Los prototipos se descartan. 

     

  2. Tendencia a tratar de convertir el prototipo mismo en el sistema de producción. 

     

  3. Aumento del coste. 

     

  4. Se arrastran decisiones del diseño de prototipos al producto final. 

 

 

 

CICLO DE VIDA DE PROGRAMACIÓN AUTOMÁTICA

 

 

El punto de partida es la utilización de un lenguaje formal de especificación, en el que las especificaciones son directamente ejecutables, o lo que es lo mismo, la especificación es el prototipo. El programa se obtiene de forma automática a partir de la especificación.

 

 

INCONVENIENTES:

 

 

     

  1. No se dispone de la tecnología necesaria para aplicarla en su totalidad.

 

La frase de hoy

¿De que me sirven las palabras, si mi corazón es analfabeta?

– Desconocido –

la frase de hoy

Se escribe para NO olvidar

 

– Celine –

El dia ” D ” !!!

Finalmente me han dado fecha para mi exámen recepcional… estaré presentando el 14 de mayo la defensa de mi tesis… espero todo salga bien, porque a veces los nervios de hablar en publico me traicionan…

La última cita…

Recuerda la vez aquella:
mi labio encendido al tuyo.
la noche apacible y bella,
en cada nube una estrella,
y en cada flor un cocuyo.
Llena de rubor, de miedo,
junto de mí te veía,
y hablabas quedo, tan quedo,
que sólo yo saber puedo
lo que tu alma me decía.
Quiero olvidar, pero en vano,
ese instante soberano
de nuestra antigua pasión;
libro que dejó tu mano escrito en mi corazón.
¡Una flor y un sol de estío!
Al calor del desvarío
abriste tu alma esa noche,
para guardar en su broche
todo el sentimiento mío.
¡Cómo olvidar que, rendida
al más amargo quebranto,
trémula, triste, afligida,
con la faz descolorida,
llenos los ojos de llanto;
Como el que al dolor resiste
como el que oculta un pesar,
alzaste el rostro, me viste,
y escuché un adiós tan triste,
que no lo puedo olvidar!
Era la revelación
de una triste decepción,
de una ausencia que sería
la sombra que apagaría
los sueños del corazón.
¡Ah! ¡separarnos los dos,
cuando uno del otro en pos,
hallaba ventura y calma!…
¡Qué triste sonó en el alma!
aquella palabra: ¡Adiós!
¡Ver aislada una existencia
que se había en otra fundido;
arrebatarle su esencia;
darla una sombra la ausencia;
darle un sepulcro el olvido!
Era cual libro ignorado
nuestro sino desgraciado.
Amar, y después… sufrir,
ser un alma en el pasado,
y dos en el porvenir.
Con tu adiós dejaste mudo
al corazón que allí pudo
oírlo, sufriendo ya;
era el último saludo
del que nunca volverá.
¿Qué hice al oírte? Confieso
que tan amargo dolor
aún queda en el alma impreso.
¡Qué triste es juntar a un beso
un adiós desgarrador!
Me deslumbraba tu encanto;
al mirarnos, nuestro ser
era un astro, un fuego santo.
¡Qué triste es mirarse tanto,
para no volverse a ver!
Nada huye del pensamiento:
¡qué horrible fue aquel momento
que nos vino a separar!
Cada frase era un lamento,
cada suspiro un pesar.
Y ví cómo te alejabas,
y cómo, ingrata, dejabas
un alma donde hubo dos…
Si era verdad que me amabas,
¿por qué me dijiste adiós?

Juan de Dios Peza

Espero curarme de ti…

 

Espero curarme de ti en unos días. Debo dejar de fumarte, de beberte, de pensarte. Es posible siguiendo las prescripciones de la moral en turno. Me receto tiempo, abstinencia, soledad.

 ¿Te parece bien que te quiera nada más una semana? No es mucho, ni es poco, es bastante. En una semana se puede reunir todas las palabras de amor que se han pronunciado sobre la tierra y se les puede prender fuego. Te voy a calentar con esa hoguera del amor quemado. Y también el silencio. Porque las mejores palabras del amor están entre dos gentes que no se dicen nada.

Hay que quemar también ese otro lenguaje lateral y subversivo del que ama. (Tú sabes cómo te digo que te quiero cuando digo: «qué calor hace», «dame agua», «¿sabes manejar?», «se hizo de noche»… Entre las gentes, a un lado de tus gentes y las mías, te he dicho «ya es tarde», y tú sabías que decía «te quiero»).

Una semana más para reunir todo el amor del tiempo. Para dártelo. Para que hagas con él lo que quieras: guardarlo, acariciarlo, tirarlo a la basura. No sirve, es cierto. Sólo quiero una semana para entender las cosas. Porque esto es muy parecido a estar saliendo de un manicomio para entrar a un panteón.

Jaime Sabines