1. CICLO DE VIDA DEL SOFTWARE El ciclo de vida de un sistema de información es un enfoque por fases del análisis y diseño que sostiene que los sistemas son desarrollados de mejor manera mediante el uso de un ciclo especifico de actividades del analista y del usuario. Según James Senn, existen tres estrategias para el desarrollo de sistemas: el método clásico del ciclo de vida de desarrollo de sistemas, el método de desarrollo por análisis estructurado y el método de construcción de prototipos de sistemas, en su momento, claro está, no se habían desarrollado las metodología orientadas a objetos. Cada una de estas estrategias tiene un uso amplio en cada una de los diversos tipos de empresas que existen, y resultan efectivas si son aplicadas de manera adecuada. En resumen, es el conjunto de actividades llevadas a cabo para desarrollar y poner en marcha un Sistema de Información, existen múltiples metodologías y las fases son determinadas por la metodología escogida. 1.1 OBJETIVOS DE LAS METOLOGÍAS Definir actividades a llevarse a cabo en un Proyecto de S.I. Unificar criterios en la organización para el desarrollo de S.I. Proporcionar puntos de control y revisión 1.2 TIPOS DE METODOLOGÍAS DE SISTEMAS Estructurada: Se enfoca en una visión funcional del sistema, estableciendo técnicas que ayudan a la implementación de las fases que deben ser cumplidas en un oren establecido y cuya finalización coincide con la entrega de un producto final que sirve de alimento a la nueva fase. Muchos autores han escrito sobre esta metodología, encontrando en cada uno modificaciones a las fases, pero a grandes rasgos coinciden en los fundamentos de la metodología clásica, cuyas fases son: o Estudio de factibilidad o Análisis o Diseño o Programación o Implantación Prueba Conversión Adiestramiento Documentación Entrega al usuario o Mantenimiento o Auditoria Sus características generales son: o o o o o Se maneja como proyecto Gran volumen de datos y transacciones Abarca varias áreas organizativas de la empresa Tiempo de desarrollo largo Requiere que se cumplan todas las etapas, para poder cumplir las siguientes (progresión lineal y secuencial de una fase a la otra) Fig. 1 Metodología Estructurada Evolutiva – Incremental: También llamada Ciclo de Vida en Cascada, es una adaptación de la metodología estructurada que permite seguir secuencias ascendentes y descendentes en las etapas de desarrollo, permitiendo que estas se desarrollen en paralelo. Con esto reconoce que en los sistemas reales es necesaria la retroalimentación de las fases, ya que en muchos casos problemas encontrados en estadíos posteriores corresponden a omisiones de fases anteriores. Algunos problemas heredados de su antecesor son: o No refleja realmente el proceso de desarrollo del software o Se tarda mucho tiempo en pasar por todo el ciclo o Perpetua el fracaso de la industria del software en su comunicación con el usuario final o El mantenimiento se realiza en el código fuente o Las revisiones de proyectos de gran complejidad son muy difíciles o Impone una estructura de gestión de proyectos Software y Procesos Contables Página 2 Fig. 2 Metodología Evolutiva Incremental o de Cascada Prototipos: El modelo de prototipos que pertenece a los modelos de desarrollo evolutivo, se inicia con la definición de los objetivos globales para el software, luego se identifican los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado (en forma de un diseño rápido). El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final (por ejemplo, la configuración de la interfaz con el usuario y el formato de los despliegues de salida). El diseño rápido conduce a la construcción de un prototipo, el cual es evaluado por el cliente o el usuario para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La iteración ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo. Etapas para la creación del Sistema de Prototipos: o Definición de las especificaciones del sistema (pantallas, menú, reportes, base de datos) o Creación del sistema prototipo (interfaz, pantallas, reportes, base de datos, parte código fuente) o Refinación del sistema prototipo (se expande y refina el sistema de acuerdo a los requerimientos de los usuarios) o Desarrollo del sistema operativo (en base al prototipo final, se desarrolla el sistema operativo y se elimina el sistema prototipo) Características: Software y Procesos Contables Página 3 o o o o o o Desarrolla modelo en escala del sistema propuesto (sistema objetivo) Se prueba y refina hasta que usuarios los usuarios estén conformes Identifica necesidades de información Maneja principales procedimientos orientados a transacciones Produce informes críticos Permite consultas rudimentarias o Complementa especificaciones imprecisas y/o incompletas de los usuarios Fig. 3 Metodología de Prototipado Evolutivo Orientada a Objetos: Esta metodología se basa en el Análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería de software que modela un sistema como un grupo de objetos que interactúan entre sí. Este enfoque representa un dominio en términos de conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia funcional. En éste método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada como, por ejemplo, el lenguaje unificado de modelado (UML). ADOO aplica técnicas de modelado de objetos para analizar los requerimientos para un contexto - por ejemplo, un sistema de negocio, un conjunto de módulos de software - y para diseñar una solución para mejorar los procesos involucrados. No está restringido al diseño de programas de Software y Procesos Contables Página 4 computadora, sino que cubre sistemas enteros de distinto tipo. Las metodologías de análisis y diseño más modernas son casos de uso guiados a través de requerimientos, diseño, implementación, pruebas, y despliegue. El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado en análisis y diseño orientado a objetos. Las etapas de esta metodología coinciden en mucho con las estructuradas tradicionales, pero las herramientas usadas son diferentes. Estas etapas son: o o o o o o o o o Requerimientos Análisis de la estructura de objetos Análisis del comportamiento de objetos Diseño de la estructura de objetos Diseño del comportamiento de objetos Programación Prueba Puesta en producción Mantenimiento Fig. 4 Ejemplo de diagrama de clases 1.3 INGENIERIA DEL SOFTWARE ASISTIDA POR COMPUTADOR Ingeniería del Software Asistida por Computador (CASE) es el nombre que se le da al software que se utiliza para ayudar a las actividades del proceso del software como la ingeniería de requerimientos, el diseño, el desarrollo de programas y las pruebas. Por lo tanto, las herramientas CASE incluyen editores de diseño, diccionarios de datos, compiladores, depuradores, herramientas de construcción de sistemas, etcétera. Software y Procesos Contables Página 5 La tecnología CASE proporciona ayuda al proceso de software automatizando algunas de sus actividades, así como proporcionando información acerca del software en desarrollo. Algunos ejemplos de las actividades que se pueden automatizar utilizando CASE son: El desarrollo de modelos gráficos del sistema como parte de la especificación de requerimientos o del diseño de software. La comprensión del diseño utilizando un diccionario de datos que tiene información sobre las entidades y relaciones del diseño. La generación de interfaces de usuario a partir de la descripción gráfica de la interfaz que es elaborada de forma interactiva por el usuario. La depuración de programas por medio de la provisión de la información proporcionada por los programas en ejecución. La conversión automática de programas de una versión anterior de un lenguaje de programación, como COBOL, a una más reciente. MIEMBROS DE UN PROYECTO DE SISTEMAS Líder (Gerencia el proyecto) Analista (Recoge información inicial y define requerimientos) Diseñador S.I. (Diseña el S.I.) Diseñador B.D. (Diseña Base de Datos) Programador (Codifica/Prueba) Usuario Directo (expresa necesidades) Software y Procesos Contables Página 6