UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: CICLO DE VIDA VISIÓN TRADICIONAL DEL CICLO DE VIDA DEL DESARROLLO DE SISTEMAS DE INFORMACIÓN ALGUNOS MODELOS DE DESARROLLO DE SISTEMAS DE INFORMACIÓN Material diseñado y elaborado por: Prof. Luis Eduardo Mendoza M. Material revisado por: Prof. María A. Pérez de Ovalles UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS INGENIERÍA DE SOFTWARE Y EL CICLO DE VIDA DEFINICIÓN: • La INGENIERÍA DE SOFTWARE es un área de la Ciencia de la Computación cuyo objetivo de estudio es la construcción de grandes y complejos sistemas de software de alta calidad. • El término “Ingeniería de Software” fue usado por primera vez en 1968 durante una conferencia celebrada en Garmisch (Alemania) para analizar la llamada CRISIS DEL SOFTWARE. NACIMIENTO: • Se concluyó que el problema de construir software es un TRABAJO DE INGENIERÍA. • Requiere: GERENCIA, ORGANIZACIÓN, HERRAMIENTAS, TEORÍAS, MÉTODOS y TÉCNICAS. • El descenso de los costos del hardware y el ascenso en los costos del software, generaron un énfasis en la construcción ECONÓMICA de este último, promoviendo su CALIDAD. • Más allá de la programación, el software es estudiado a través de todo su CICLO DE VIDA. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS PROCESO DE DESARROLLO DE SI O CICLO DE VIDA DE DESARROLLO DE SI En la Ingeniería del Software está presente la palabra ciclo, referida al proceso de desarrollo del software, ya que éste es denominado comúnmente “ciclo de vida”. En base a esto, algunas definiciones son: • “Secuencia de eventos en el desarrollo de un sistema de información (aplicación), lo cual requiere del esfuerzo mutuo, tanto de parte del usuario como del equipo técnico”. (Freedman, 1993) • “Una actividad grupal, conducida con recursos limitados, que conducen a un producto intangible (software)”. (Topper et al., 1994) • “Una actividad social, altamente creativa por naturaleza, que es conducida en un ambiente de recursos limitados y produce una serie de representaciones (o salidas) de un producto intangible, el software”. (Topper et al., 1994) Continúa ... SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS PROCESO DE DESARROLLO DE SI O CICLO DE VIDA DE DESARROLLO DE SI Continuación ... • “Un proceso lógico con el cual los analistas, ingenieros de software, programadores y usuarios finales, construyen Sistemas de Información y aplicaciones del computador para satisfacer necesidades y resolver problemas del negocio”. (Whitten y Bentley, 1998) • “El proceso de desarrollo (las actividades involucradas en el desarrollo y mantenimiento de software) es un proceso complejo y variable que no puede ser fácilmente descrito usando un solo modelo”. (Sommerville, 1998) El ciclo de vida de desarrollo de SI no es un modelo. Mientras un ciclo de vida de desarrollo de SI es una “secuencia de eventos en el desarrollo de un sistema de información (aplicación)” (Freedman, 1993), “... un modelo describe la estructura de cómo se desarrollará el proyecto”. (Raccoon, 1995) SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS FASES GENÉRICAS DEL CICLO DE VIDA DE DESARROLLO DE SI DEFINICIÓN DESARROLLO MANTENIMIENTO Ciclo de vida simplificado de desarrollo • La fase de DEFINICIÓN se centra en el qué. Normalmente, a esta fase se le denomina análisis. • La fase de DESARROLLO se centra en el cómo. Para muchos autores, los procesos que se hacen en esta fase de desarrollo, se dividen en las fases que comúnmente se denominan diseño e implementación. • La fase de MANTENIMIENTO se centra en el cambio. En esta fase se vuelven a aplicar los pasos de las fases de definición y desarrollo, pero ahora en el contexto del software ya existente. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS VISIÓN TRADICIONAL DEL CICLO DE VIDA DE DESARROLLO DE SI Especificación de los Requerimientos de los Usuarios Análisis Análisis ¿Qué? Análisis de los Requerimientos de los Usuarios Espacio del Problema Especificación de los Requerimientos del Software Diseño Diseño ¿Cómo? Diseño Lógico o General (Sistemas) Espacio de la Solución Diseño Físico o Detallado (Programa) Codificación / Implementación Prueba del Programa a Nivel de Unidad ImplemenImplementación tación Prueba del Programa a Nivel de Sistema Uso del Programa Mantenimiento del Software SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI MODELO DE CASCADA O CLÁSICO ESPECIFICACIÓN DE REQUERIMIENTOS ANÁLISIS DISEÑO CODIFICACIÓN PRUEBA MANTENIMIENTO SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI MODELO DE CONSTRUCCIÓN DE PROTOTIPOS Comienzo Parada Recolección y refinamiento de requerimientos Producto de ingeniería Diseño rápido Refinamiento del prototipo Construcción del prototipo Evaluación del prototipo por parte del cliente SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI MODELO EN ESPIRAL O EVOLUTIVO Recolección de requisitos y planificación del proyecto iniciales PLANIFICACIÓN ANÁLISIS DE RIESGO Análisis de riesgo basado en los requisitos iniciales Análisis de riesgo basado en la reacción del cliente Planificación basada en los comentarios del cliente Decisión de seguir o no Hacia el sistema final Prototipo inicial del software Evaluación del cliente EVALUACIÓN DEL CLIENTE INGENIERÍA Prototipo del siguiente nivel Sistema de ingeniería SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI MODELO DE LA FUENTE PARA EL DESARROLLO DE SI ORIENTADO A OBJETO 10 1 Análisis de Requerimientos 2 Especificación de los Requerimientos de los Usuarios 3 Especificación de los Requerimientos del Software 8 4 Diseño del Sistema 7 6 5 4 5 Diseño del Programa 6 Codificación 7 Prueba de Unidad 8 Prueba del Sistema 2 9 Uso del Programa 1 10 Mantenimiento 11 Desarrollo Adicional 11 9 3 SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI MODELO DEL CAOS Defi nición de problemas Status quo Desarrollo técnico Integración de soluciones Defi nición de problemas Status quo Stat us quo Desarroll o técnico Integración de soluciones Definición de problemas Status quo Defi nición de problemas Status quo Desarrollo técnico Integración de soluciones Desarrollo técnico Definición de problemas Status quo Status quo Desarrollo técnico Integración de soluciones Integración de soluciones Definición de problemas Status quo Desarrollo técnico Integración de soluciones LAS FASES DE UN LAZO DE RESOLUCIÓN DE PROBLEMAS SISTEMAS DE INFORMACIÓN II FASES DENTRO DE LAS FASES DE UN LAZO DE RESOLUCIÓN DE PROBLEMAS TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI RAD (Rapid Application Development) • “Aproximación al desarrollo de sistemas que incorpora una variedad de herramientas de diseño automatizadas (CASE). Desarrollada por el ‘gurú’ de la industria, James Martin, está centrada tanto en la administración humana y en la participación del usuario, como en la tecnología”. (Freedman, 1993) • “Metodología para el desarrollo de sistemas creada para disminuir radicalmente el tiempo necesario para diseñar e implementar Sistemas de Información. El RAD cuenta con una participación intensa del usuario, sesiones JAD, prototipaje, herramientas CSE integradas y generadores de código”. (Valacich et al., 2001) • El RAD requiere de cuatro (4) ingredientes esenciales: gerencia, gente, metodologías y herramientas. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI RAD (Rapid Application Development) Identificación y selección del proyecto Planificación de requerimientos Iniciación y planificación del proyecto Ciclo de Vida RAD de James Martin Diseño Análisis Desarrollo Diseño lógico Ciclo de Vida Tradicional de Desarrollo Cutover Diseño físico Implementación Mantenimiento SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI RAD (Rapid Application Development) • Muchas firmas han adoptado el RAD como uno de sus enfoques para el desarrollo de sistemas. Entre éstas, esta Cambridge Technology Partners (CTP), especificando un ciclo de vida para el RAD que consiste en cinco (5) pasos: 1) Enfoque 2) Taller de soluciones rápidas. 3) Diseño. 4) Desarrollo. 5) Rollout. Fases del Ciclo de Vida RAD de James Martin Planificación de requerimientos Enfoque Taller de soluciones rápidas Diseño Diseño Construcción Desarrollo Cutover Rollout FASES DEL CICLO DE VIDA RAD DEL CTP. (Valacich et al., 2001) SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI RAD (Rapid Application Development) VENTAJAS DESVENTAJAS Ahorro dramático de tiempo durante el desarrollo del sistema. Mayor velocidad y menores costos pueden repercutir en la calidad del sistema (p.e., debido a falta de atención en controles internos). Puede ahorrarse tiempo, dinero y esfuerzo humano. Peligrosa incoherencia entre el sistema desarrollado y el negocio, debido a la falta de información o a procesos del negocio sobreentendidos. Estrecha correspondencia entre los requerimientos del usuario y las especificaciones del sistema. Pueden producirse inconsistencias entre diseños internos y entre sistemas. Trabaja muy bien cuando la velocidad de desarrollo es importante (cambios rápidos de las condiciones del negocio), o cuando lo sistemas pueden capitalizarse en oportunidades estratégicas. Posibles violaciones de estándares de programación relacionadas con nomenclaturas inconsistentes e insuficiente documentación. Permite cambiar rápidamente el diseño de los sistemas cuando los usuarios lo demandan Dificultades con el reuso de módulos para futuros sistemas. Los sistemas son optimizados por los usuarios involucrados en el proceso del RAD. Carencia de un diseño escalable dentro del sistema. Se concentra en los elementos esenciales del sistema, Falta de atención de la futura administración del desde el punto de vista del usuario. sistema dentro de los sistemas existentes (p.e., falta de integración con el modelo de datos organizacional y facilidades de recuperación del sistema) El usuario se compromete y se hace propietario del sistema Altos costos de compromiso por parte del personal clave. VENTAJAS Y DESVENTAJAS DEL RAD. (Valacich et al., 2001) SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI MICROSOFT SOLUTION FRAMEWORK (MSF) • Basado en las técnicas desarrolladas por Microsoft Corporation, su brazo consultor y sus socios, MSF provee un enfoque sistemático que asegura alta calidad y entrega a tiempo (Felder, 1999). • Los bloques de construcción centrales para la guía de soluciones basadas en MSF son los seis modelos principales MSF: (Microsoft, 1999)(Felder, 1999) 1) Modelo de arquitectura de la empresa. 2) Modelo del equipo. 3) Modelo del proceso. 4) Modelo de gestión de riesgo. 5) Modelo del proceso de diseño. 6) Modelo de la aplicación. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI MICROSOFT SOLUTION FRAMEWORK (MSF) Versión VISUALIZACIÓN ESTABILIZACIÓN Alcance completado 1er uso Visión/alcance aprobado DESARROLLO PLANIFICACIÓN Plan de proy. aprobado MODELO DE PROCESO MSF. (Microsoft, 1999) • El MSF requiere de un equipo organizado, código estructurado y procesos sistemáticos, que minimizan el riesgo y maximizan la capacidad para tomar decisiones inteligentes. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI Metodología Evolutiva Incremental para el Desarrollo de Aplicaciones de Workflows (MEIDAW) • Las metodologías encontradas no eran lo suficientemente sistémicas para adaptarse a los desarrollos de Workflow deseados y, además, no pudieron aplicarse por completo debido a la restricción de que la metodología debe cumplir todo el proceso de desarrollo dentro la empresa. • Se utilizan elementos de la Metodología Evolutiva Incremental (MEI) como esquema de trabajo (enfocada al proceso), con el soporte de los estándares metodológicos de Workflow Management Coalition (WFMC), para buscar la calidad en el producto. • Como resultado, se incorporaron los estándares metodológicos de WFMC dentro de la metodología general aplicada para el desarrollo de cualquier sistema dentro de la organización; también se determinó que estos se adoptarán para los desarrollos futuros que se realicen en la empresa en el área de Workflows. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI Metodología Evolutiva Incremental para el Desarrollo de Aplicaciones de Workflows (MEIDAW) LA ORIENTACIÓN AL PROCESO: • Contiene, para el control de los proyectos, elementos de Metodologías del tipo Evolutiva Incremental (MEI); entre ellos están los incrementos planificatorios. • La metodología sigue el esquema general de las metodologías tradicionales de desarrollo: análisis, diseño, implementación, pruebas, documentación e implantación. Estas etapas se encuentran levemente solapadas, es decir, la parte final de una etapa se realiza en paralelo con el comienzo de la próxima, lo cual se ajusta bastante a la realidad. • Esta es una metodología muy sistémica lo cual permite una mayor adaptabilidad a los cambios y descubrimientos que ocurran sobre la marcha, permitiendo así mayores posibilida-des de lograr una alta efectividad. Además, permite reducir el tiempo de finalización si se aumentan los recursos, esto la hace adaptable, inclusive al tiempo [Callaos y Callaos, 1995]. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI Metodología Evolutiva Incremental para el Desarrollo de Aplicaciones de Workflows (MEIDAW) • Dentro de los incrementos existen dos procesos de suma importancia: Planificación y Ejecución. Además, contiene dos aspectos muy importantes para el control en los incrementos: Feedback y Feedforward. Incrementos o etapas de planificación Etapa 5 Etapa 4 Etapa 3 Planificación Etapa 2 Ejecución Etapa 1 t0 t1 t2 t3 t4 t5 Tiempo de ejecución ESQUEMA DE LA METODOLOGÍA, ORIENTACIÓN AL PROCESO • La planificación y las actividades de los incrementos planificatorios se registran a través de los informes de avance, que contienen: Estado actual del sistema, Actividades completadas y Actividades retrasadas. SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI Metodología Evolutiva Incremental para el Desarrollo de Aplicaciones de Workflows (MEIDAW) LA ORIENTACIÓN AL PRODUCTO: • En las etapas del proyecto, desde un enfoque al producto, los aspectos de mayor importancia son los productos finales dentro de cada una de las fases dentro de un esquema tradicional de desarrollo. Fases del proyecto Incremento(s) de implantación Incremento(s) de documentacion Incremento(s) de pruebas Periodo de actividad Incremento(s) de implementación Incremento(s) de diseño Incremento(s) de análisis t0 t1 t2 t3 t4 t5 t4 t5 Tiempo de ejecución ESQUEMA DE LA METODOLOGÍA, ORIENTACIÓN AL PRODUCTO SISTEMAS DE INFORMACIÓN II TEORÍA UNIVERSIDAD SIMÓN BOLÍVAR DEPARTAMENTO DE PROCESOS Y SISTEMAS ALGUNOS MODELOS DE DESARROLLO DE SI Metodología Evolutiva Incremental para el Desarrollo de Aplicaciones de Workflows (MEIDAW) Los productos de cada una de las macro-etapas anteriores son: • ANÁLISIS. Documento de Alcance y Requerimientos, y Glosario. • DISEÑO DETALLADO. Reglas del Negocio, Flujo de Trabajo, Roles, Estados y Transiciones de los Ítems de Trabajo, Escalaciones, Notificaciones, Interfaces y Reportes. • DESARROLLO DEL SISTEMA. Configuración de la Arquitectura de Desarrollo, Implementación de la Estructura de Datos, Desarrollo de Componentes y Servicios, Programación de Pantallas, Filtros y Enlaces Activos, y Programación de Notificaciones, Escalaciones y Reportes. • PRUEBAS. Pruebas Funcionales y Pruebas de Carga de Datos. • DOCUMENTACIÓN FORMAL DEL SISTEMA. Manual del Usuario y Manual del Administrador del Sistema. • IMPLANTACIÓN DEL SISTEMA. Configuración del Servidor de Producción y de Base de Datos, Migración del Sistema, Pruebas del Sistema en el Ambiente de Producción y el Entrenamiento de los Usuarios. SISTEMAS DE INFORMACIÓN II TEORÍA