PROCESOS DE SOFTWARE HE AHÍ EL DILEMA
Transcripción
PROCESOS DE SOFTWARE HE AHÍ EL DILEMA
PROCESOS DE SOFTWARE HE AHÍ EL DILEMA JAIME GARCIA CEPEDA [email protected] SKIT Consulting 2718884 BOGOTÁ 1 PREAMBULO XXVII Salón de Informática Septiembre'2007 2 Algunos de nuestros Ingenieros XXVII Salón de Informática Septiembre'2007 3 Ing. PASARELA XXVII Salón de Informática Septiembre'2007 4 Ing. FÓRMULA 1 XXVII Salón de Informática Septiembre'2007 5 Ing. SOCIAL XXVII Salón de Informática Septiembre'2007 6 Ing. SOÑADOR XXVII Salón de Informática Septiembre'2007 7 Ing. ASTRÓNOMO XXVII Salón de Informática Septiembre'2007 8 Ing. HOGAREÑO XXVII Salón de Informática Septiembre'2007 9 Ing. PAPELERO XXVII Salón de Informática Septiembre'2007 10 Ing. TURISTA XXVII Salón de Informática Septiembre'2007 11 Ing. GASTRONÓMICO XXVII Salón de Informática Septiembre'2007 12 Ing. HORMIGA Ing. HORMIGA XXVII Salón de Informática Septiembre'2007 13 Ing. Fantasma XXVII Salón de Informática Septiembre'2007 Ing. FANTASMA 14 Ing. POLITICO Ing. Politiquero XXVII Salón de Informática Septiembre'2007 15 Ing. Emperador XXVII Salón de Informática Septiembre'2007 16 Ing. Avión XXVII Salón de Informática Septiembre'2007 17 Ing. Ultima Cocacola del Desierto XXVII Salón de Informática Septiembre'2007 18 Ing. Vaca Sagrada XXVII Salón de Informática Septiembre'2007 19 Ing. Planetario XXVII Salón de Informática Septiembre'2007 20 Ing. Biblia XXVII Salón de Informática Septiembre'2007 21 Ing. Jamón XXVII Salón de Informática Septiembre'2007 22 Y tú que Ing. Eres o quieres ser ? XXVII Salón de Informática Septiembre'2007 23 Cual es la expectativa de esta conferencia? XXVII Salón de Informática Septiembre'2007 24 Proceso de Desarrollo de Software Requisitos del usuario XXVII Salón de Informática Septiembre'2007 Proceso de Desarrollo de Software Sistema Software 25 Las cuatro “P” en el desarrollo de Software Proceso Plantilla Personas Participantes Proyecto Automatización Herramientas Resultado Producto XXVII Salón de Informática Septiembre'2007 26 ETAPAS DEL PROCESO XXVII Salón de Informática Septiembre'2007 27 La vida de un proceso consta de ciclos desde su nacimiento hasta su muerte Nacimiento Muerte Los ciclos concluyen con una versión XXVII Salón de Informática Septiembre'2007 28 Trabajadores participando en el proceso de Software Usuarios Arquitecto Sistema Diseñadores El Jefe de Proyecto XXVII Salón de Informática Septiembre'2007 Ingenieros de Prueba Analistas 29 Roles de la Fábrica XXVII Salón de Informática Septiembre'2007 30 Nuestra Realidad XXVII Salón de Informática Septiembre'2007 31 SINTOMAS Y CAUSAS ORIGEN DE PROBLEMAS DE DESARROLLO DE SOFTWARE Diferentes proyectos de desarrollo de software caen en diferentes estados, desafortunadamente, muchos de ellos fallan. Pero es posible identificar un numero de síntomas comunes que caracterizan estos tipos de proyectos: • • • • • • • • Entendimiento inexacto de las necesidades de los usuarios finales Inhabilidad de manejo de cambios de requerimientos Módulos que no encajan juntos Software que es difícil de mantener o extender Descubrimiento tardío de fallas serias del proyecto Calidad pobre del proyecto Rendimiento inaceptable del software Desacuerdo entre los miembros del equipo haciendo imposible la reconstrucción de quien cambio qué, cuando, donde y porqué • Un proceso de construcción y producción de poca confianza Tomado de Rational unified Process an introduction Philippe Kruchten XXVII Salón de Informática Septiembre'2007 32 SINTOMAS Y CAUSAS ORIGEN DE PROBLEMAS DE DESARROLLO DE SOFTWARE Desafortunadamente, tratar estos síntomas no trata la enfermedad. El descubrimiento de fallas serias en el proyecto es solo un síntoma de problemas mayores, XXVII Salón de Informática Septiembre'2007 33 SINTOMAS Y CAUSAS ORIGEN DE PROBLEMAS DE DESARROLLO DE SOFTWARE A pesar de que diferentes proyectos fallan en diferentes maneras, parece que la mayoría de ellos fallan por la combinación de las siguientes causas raíces: • • • • • • • • • Adición del mantenimiento Comunicación ambigua e imprecisa Complejidad insoportable Inconsistencias no detectadas en los requerimientos, diseños e implementaciones Pruebas insuficientes Valoración subjetiva de el estatus del proyecto Falla al atacar el riesgo Propagación de cambio incontrolable Automatización insuficiente XXVII Salón de Informática Septiembre'2007 34 SITUACION COLOMBIANA XXVII Salón de Informática Septiembre'2007 35 En casa de Herrero… Azadón de Palo XXVII Salón de Informática Septiembre'2007 36 ALGUNOS MODELOS DE PROCESOS DE SOFTWARE XXVII Salón de Informática Septiembre'2007 37 EL CICLO DE VIDA DE LA CASCADA XXVII Salón de Informática Septiembre'2007 38 EL MODELO ESPIRAL XXVII Salón de Informática Septiembre'2007 39 MICROSOFT SOLUTIONS FRAMEWORK XXVII Salón de Informática Septiembre'2007 40 XXVII Salón de Informática Septiembre'2007 41 MODELO DE PROCESO UNIFICADO XXVII Salón de Informática Septiembre'2007 42 SCRUM XXVII Salón de Informática Septiembre'2007 43 RUP XXVII Salón de Informática Septiembre'2007 44 EL PROCESO RACIONAL UNIFICADO Un proceso de desarrollo de software contempla: 1.Verificación continua de la calidad del software 2.Especificar cuales artefactos pueden ser desarrollados y cuando pueden ser desarrollados. 3.Dirigir las tareas de desarrolladores individuales y al equipo como un todo. 4.Ofrecer criterios para la monitoria y medida de los productos y actividades del proyecto. XXVII Salón de Informática Septiembre'2007 45 EL PROCESO RACIONAL UNIFICADO 5. Proveer una guía a la orden de las a actividades de el equipo. 6. Control de Cambios al software XXVII Salón de Informática Septiembre'2007 46 Los cinco Flujos de Trabajo XXVII Salón de Informática Septiembre'2007 47 El conjunto fundamental de modelos del Proceso Unificado Modelo de casos de Uso XXVII Salón de Informática Septiembre'2007 Modelo de Análisis Modelo de Diseños Modelo de Despliegue Modelo de Implementación Modelo de Prueba 48 Modelo del Proceso Unificado XXVII Salón de Informática Septiembre'2007 49 XXVII Salón de Informática Septiembre'2007 50 Mediante un proceso iterativo de especificación, diseño y Construcción XXVII Salón de Informática Septiembre'2007 51 UN PROCESO ITERATIVO E INCREMENTAL XXVII Salón de Informática Septiembre'2007 52 Análisis y Diseño Funcional Estas etapas se desarrollan para la determinación y diseño de los requerimientos funcionales y no funcionales XXVII Salón de Informática Septiembre'2007 53 Casos de Uso Un caso de uso es una descripción de las acciones de un sistema desde el punto de vista del usuario. Es una estructura que ayuda a los analistas a trabajar con los usuarios para determinar la forma en que se usará un sistema. La Metodología a seguir contempla las visiones de todos los actores que intervienen el proceso de conocimiento del sistema. XXVII Salón de Informática Septiembre'2007 54 Representación SISTEMA ASOCIACION ACTOR CASO DE USO XXVII Salón de Informática Septiembre'2007 55 Casos de Uso Identificador \ Nombre: 7. Capturar datos formulario de inscripción. Tipo: Necesario Requerimiento que lo Utiliza ó Especializa: Prioridad de Desarrollo: Ninguno (no llenar) Actores Iteración 1 Funcionario ¿Crítico? Indique SI / NO, es decir si es vital para el negocio Si Documentos Asociados: - Diagrama de Casos de Uso - Formulario de Inscripción de empresas Descripción: El funcionario debe transcribir los datos consignado en el formulario de inscripción de empresas al servicio y el formulario físico se enviara vía correo para su captura Entrada: Formulario de Inscripción. Se debe ingresar la información de la empresa. Salida: Creación Cliente, archivo en la base de datos y formulario del cliente Manejo de Situaciones Anormales Criterios de Aceptación No se debe llenar. Responsable XXVII Salón de Informática Septiembre'2007 56 Diagrama de Estados Una manera para caracterizar un cambio en un sistema es decir que los objetos que lo componen modificaron su ESTADO como respuesta a los sucesos y al tiempo. El diagrama de estados presenta los estados en los que puede encontrarse un objeto junto con las transiciones entre los estados, y muestra los puntos inicial y final de una secuencia de cambios de estado. XXVII Salón de Informática Septiembre'2007 57 Representación INICIO ESTADO ASOCIACION FIN XXVII Salón de Informática Septiembre'2007 58 Diagrama de Secuencia - Tiempo OBJETO ACTOR ASOCIACION NUMERO DE ACTIVIDAD LINEA DE TIEMPO XXVII Salón de Informática Septiembre'2007 59 Diagrama de Actividades - Tiempo ACTIVIDAD INICIO DECISIÓN FLUJO FIN XXVII Salón de Informática Septiembre'2007 60 Diagrama de Colaboración Espacio ASOCIACION ACTOR OBJETO NUMERO DE ACTIVIDAD XXVII Salón de Informática Septiembre'2007 61 Diagrama de Componentes Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones. Muestran las opciones de realización incluyendo código fuente, binario y ejecutable. Un diagrama de componentes muestra clasificadores de componentes, las clases definidas en ellos, y las relaciones entre ellas. XXVII Salón de Informática Septiembre'2007 62 Representación INTERFACE ASOCIACION COMPONENTE XXVII Salón de Informática Septiembre'2007 63 Diagrama de distribución ASOCIACION ASOCIACION NODO XXVII Salón de Informática Septiembre'2007 64 Modelo Datos XXVII Salón de Informática Septiembre'2007 65 Formas e Interfaces XXVII Salón de Informática Septiembre'2007 66 Consultas y Reportes XXVII Salón de Informática Septiembre'2007 67 Arquitectura XXVII Salón de Informática Septiembre'2007 68 Modelo de Soporte XXVII Salón de Informática Septiembre'2007 69 SCRUM XXVII Salón de Informática Septiembre'2007 70 ALGUNAS METODOLOGIAS AGILES REPRESENTATIVAS Programación Extrema XP (Extreme Programming), Open Source Crystal de Cockburn Desarrollo de Software Adaptable de Highsmith Scrum Desarrollo Guiado por Aspectos DSDM (Método de Desarrollo de Sistema Dinámico) XXVII Salón de Informática Septiembre'2007 71 SCRUM Desarrollo de software en etapas incrementales Entregas de software terminado Optimiza el instinto y la experiencia de los participantes Enfoca y potencia el trabajo en equipo Incorpora aprendizaje y adaptación Fácil de aprender Facilita la adopción incremental de funcionalidad Es una metodología de bajo costo y riesgo XXVII Salón de Informática Septiembre'2007 72 SCRUM XXVII Salón de Informática Septiembre'2007 73 XXVII Salón de Informática Septiembre'2007 74 XXVII Salón de Informática Septiembre'2007 75 XXVII Salón de Informática Septiembre'2007 76 XXVII Salón de Informática Septiembre'2007 77 XXVII Salón de Informática Septiembre'2007 78 PUNTOS CLAVES XXVII Salón de Informática Septiembre'2007 79 NO EXISTEN CONTRATOS ABIERTOS XXVII Salón de Informática Septiembre'2007 80 TODO PROYECTO DEBEN CUMPLIR UNA SERIE DE ACTIVIDADES FASE/ACTIVIDAD Preliminares Establecer el plan de trabajo preliminar Elaborar el Cronograma Dar a conocer el cronograma Establecer la organización documental Inicio Realizar la Presentación del proyecto Presentación de Metodología Realizar Capacitación Metodológica Elaborar Plan del Proyecto Establecer Plan de Calidad Implantar la organización y la infraestructura del proyecto Aprobar plan de proyecto y requerimientos Realizar Kick Off del proyecto XXVII Salón de Informática Septiembre'2007 81 WBS (WORK BREAKDOWN STRUCTURE) FASE/ACTIVIDAD XXVII Salón de Informática Septiembre'2007 Análisis Definir los requerimientos del negocio Levantamiento preliminar de la información Identificar actores del sistema Entrevistas con actores del sistema Identificar y diagramar casos de uso Documentar detalladamente los casos de uso Elaborar el modelo operativo actual Analizar el modelo operativo actual Confrontar mapeo de procesos vs casos de uso Determinar requerimientos funcionales Misionales Apoyo Gerenciales reportes y consultas Interfases Determinar requerimientos no funcionales Seguridad Auditoria Parametrización Control Validación y aprobación del proceso futuro Establecer los volúmenes de información Realizar Estimaciones para Desarrollo Actualizar Plan de Trabajo Establecer Línea Base 82 WBS (WORK BREAKDOWN STRUCTURE) FASE/ACTIVIDAD XXVII Salón de Informática Septiembre'2007 Diseño Diseñar Arquitectura de Software Conceptual Lógica Física Elaborar Diseño Funcional Elaborar diagrama de secuencia Elaborar diagrama de actividades Elaborar diagrama de estados Elaborar diagrama de componentes Elaborar diagrama de distribución Elaborar diagrama de colaboración Diseñar el modelo de persistencia Definir Base de Datos Elaborar diagrama de clases Elaborar Modelo Entidad – Relación Elaborar modelo físico de Base de Datos Diseño de interfases de entrada y de salida Diseño de Interfaz gráfica - Formas y consultas Diseño de reportes Diseño de interfases Validación y aprobación de documentos de diseño 83 WBS (WORK BREAKDOWN STRUCTURE) FASE/ACTIVIDAD XXVII Salón de Informática Septiembre'2007 Construcción y pruebas de Desarrollo Instalar ambiente de desarrollo Elaborar Casos de Pruebas Construcción Codificar formas Codificar procedimientos almacenados y triggers Codificar formatos de documentos y transacciones Codificar reportes y consultas Codificar Web Services Codificar procesos especiales Codificar interfaces Codificar procesos de migración Realizar Parametrización Técnica del Producto Realizar Pruebas de Desarrollo Realizar Revisión del Código Realizar pruebas Unitarias de Desarrollo Realizar pruebas Integrales de Desarrollo Certificación Pruebas de Desarrollo Efectuar pruebas de carga y desempeño Efectuar pruebas de concurrencia Generar versión de Software Documentación Elaborar Manual de Usuario Elaborar Manual de Sistema 84 WBS (WORK BREAKDOWN STRUCTURE) FASE/ACTIVIDAD Pruebas de Aceptación y Certificación Elaborar Plan de Pruebas de Aceptación Establecer Ambiente de Pruebas Realizar Capacitación Funcional Realizar Capacitación Técnica Realizar Parametrización de Pruebas Cargue de datos de pruebas Efectuar Pruebas de Aceptación (Unitarias, Integrales, de migración etc.) Efectuar pruebas de carga y desempeño Efectuar pruebas de concurrencia Realizar Ajustes Resultantes de Pruebas Realizar Certificación XXVII Salón de Informática Septiembre'2007 85 WBS (WORK BREAKDOWN STRUCTURE) FASE/ACTIVIDAD Puesta en Producción Establecer Ambiente de Producción Definir Plan y estrategia de Puesta en Producción Definir esquema de Salida en Producción (Roll-Out o Big-Ban) Instalar Módulos/Componentes de Software en Ambiente de Producción Definir acuerdos de operación Configurar Esquema de Seguridad Realizar Parametrización del Producto Efectuar la migración de datos Verificar la migración Capacitación de usuarios finales Seguimiento Producción Definir Esquema de Soporte y/o acuerdo de servicio Medir el desempeño Acompañamiento Cierre del Proyecto Ejecutar el aseguramiento de calidad XXVII Salón de Realizar Reunión de Cierre de Proyecto Informática Septiembre'2007 86 SITUACIONES TÍPICAS Excelente Documentación Software No Funciona Excelente Metodología XXVII Salón de Informática Septiembre'2007 87 SITUACIONES TÍPICAS Pésima Documentación Software Funciona Excelente Metodología XXVII Salón de Informática Septiembre'2007 88 SITUACIONES TÍPICAS Pésima Documentación Software Funciona Pésima Metodología XXVII Salón de Informática Septiembre'2007 89 SITUACIONES TÍPICAS Excelente Documentación Software Funciona Excelente Metodología XXVII Salón de Informática Septiembre'2007 90 EXPECTATIVAS DE LOS ACTORES Proveedor Cliente Rápido Documentado Totalmente Certificado Funcionando en Producción Personal Capacitado Precio Mínimo Especificaciones no son Completas Tiempos Mínimos Cliente Proveedor – Área Sistemas Usuario Usuario Directo Rápido Mínima Documentación Funcionando en Producción XXVII Salón de Informática Septiembre'2007 No escribe Completamente Especificación No tiene total claridad del Alcance No sabe cuantificar sus solicitudes No le satisface hacer pruebas 91 Cual es el Punto de Equilibrio Ágil XXVII Salón de Informática Septiembre'2007 Formalidad Total 92 “Dame un Punto de Apoyo Y moveré el Mundo” Ágil XXVII Salón de Informática Septiembre'2007 Formalidad Total 93 XXVII Salón de Informática Septiembre'2007 94 Formula Mágica XXVII Salón de Informática Septiembre'2007 95 INCERTIDUMBRE DEL PROYECTO XXVII Salón de Informática Septiembre'2007 Usuario Sistema Actual Proveedor Incertidumbre Metodologí Metodología No No No Alta RobustaFormal … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … Si Si Si Baja Ágil 96 SIN EMBARGO “Si usted trabaja para o con una entidad publica” ROBUSTA - FORMAL XXVII Salón de Informática Septiembre'2007 97 SI SU PROVEEDOR • No coge una • Interpreta las cosas equivocadamente • Es Conflictivo • La Calidad no es la mejor • Es costoso ROBUSTA - FORMAL XXVII Salón de Informática Septiembre'2007 98 SI USTED TRABAJA EN EL SECTOR PRIVADO: • Su cliente cambia de parecer • Su cliente utiliza frases como: - Y eso cuando lo dije? - Eso no es lo que contratamos - Es obvio que eso debería estar - Esto no es todo lo que estaba solicitado - Nos falto … ROBUSTA - FORMAL XXVII Salón de Informática Septiembre'2007 99 PROPUESTA XXVII Salón de Informática Septiembre'2007 100 LA PROPUESTA “FORMALES PERO AGILES EN EL PROCESO” XXVII Salón de Informática Septiembre'2007 101 XXVII Salón de Informática Septiembre'2007 102 XXVII Salón de Informática Septiembre'2007 103 FÁBRICA DE SOLUCIONES XXVII Salón de Informática Septiembre'2007 104 FASES DEL PROYECTO XXVII Salón de Informática Septiembre'2007 105 TRANSICION EN ELPROYECTO FORMAL Agil Etapas ágIl áGil Ágil formaL formAl forMal foRmal fOrmal Formal FORMAL XXVII Salón de Informática Septiembre'2007 +Tiempo 106 FOR MA AL RM O F is s i l á An L Dise ño Implementación Co ns tru cci ón ÁG IL ra Cierre MAL ec t u ÁGIL FOR it Arqu FORMAL Pruebas XXVII Salón de Informática Septiembre'2007 FORMAL ÁGIL 107 MUCHAS GRACIAS [email protected] XXVII Salón de Informática Septiembre'2007 108