DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE UNIVERSIDAD DEL CAUCA FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES PROGRAMA INGENIERIA DE SISTEMAS INGENIERIA DE SOFTWARE III POPAYAN – CAUCA 2011 Desarrollo de Software Definición general del proceso Proceso OPE.1 Desarrollo de Software Categoría Operación (OPE) Propósito El propósito de Desarrollo de Software es la realización sistemática de las actividades de planeación, diseño, codificación, pruebas, lanzamiento de productos de software nuevos cumpliendo con los requisitos especificados y con las normativas de seguridad de información. Descripción El proceso de Desarrollo de Software apoyado sobre la metodología del desarrollo ágil adaptando la programación Extrema (XP) la cual se compone de uno o más ciclos de desarrollo. Cada ciclo está compuesto de las siguientes fases: Planeación: Conjunto de actividades cuya finalidad es obtener la Documentación de la Especificación de las historias de usuario y Definir las responsabilidades del equipo de desarrollo para las pruebas de recepción del Sistema. Para conseguir un entendimiento común entre el cliente y el proyecto. Se compone por uno o más ciclos de desarrollo. Revisión del Plan de Desarrollo por los miembros del Equipo de Trabajo para lograr un entendimiento común del proyecto y el poder elaborar el plan de iteración, para obtener el compromiso de su realización. Cabe destacar las siguientes tareas: Especificación de Historias de usuario. Hacer el Plan de Iteraciones. Diseño: Esta fase involucra un conjunto de actividades en las cuales se analizan los requisitos especificados para producir una descripción de la estructura de los componentes de software, la cual servirá de base para la codificación. Como resultado se obtiene el Documento de Especificación del Sistema. Cabe destacar las siguientes tareas: Diseño simple cartas CRC. Plan Especificación del Sistema. Prototipo Interface Usuario. Codificación: Conjunto de actividades para producir Componente(s) de software que correspondan al Análisis y Diseño. Como resultado se obtienen el (los) Componente(s) de software codificados. Cabe destacar las siguientes tareas: Programación en parejas Integración Continua Componentes • Lanzamiento: Es cuando el cliente no tiene más historias para ser incluidas en el sistema. Esto requiere que se satisfagan las necesidades del cliente y el Documento de Especificación del Sistema. Se genera el Acta de entrega y no se realizan más cambios en la arquitectura. La muerte del proyecto también ocurre cuando el sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo con lo cual se genera el documento de inconvenientes del sistema. Cabe destacar las siguientes tareas: Acta de Entrega Objetivos El equipo de trabajo entiende las necesidades del cliente y este está de acuerdo con la solución proyectada por el equipo de trabajo pactado en el Documento de Especificación del Sistema. Llevar a cabo las actividades de las fases de un ciclo mediante el cumplimiento del plan de iteración. Garantizar que al final del análisis del sistema todas las historias de usuario estén trazadas o asociadas a una especificación funcional. Lograr que los productos de salida sean consistentes con los productos de entrada en cada ciclo definido en el plan de iteración mediante las actividades de prueba unitarias del sistema. Garantizar la culminación del proceso de desarrollo. Indicadores El cliente ha entendido, participado y aprobado la solución propuesta por el equipo de trabajo. Las actividades planificadas en cada fase de un ciclo de XP (Extreme programming) se realizan conforme a lo establecido en el Plan de iteración. Al final de las actividades de Análisis y de Diseño se comprueba que las historias de usuario han sido implementadas. En cada fase de un ciclo se efectúan todas las actividades de verificación, de igual manera se tienen en cuenta las correcciones correspondientes para el siguiente ciclo del plan de iteración. El proyecto termina con la generación del acta de entrega y el cliente está satisfecho con el producto entregado, de lo contrario se genera el documento de inconvenientes del sistema indicando el motivo por el cual se dio muerte al proyecto. Responsabilidad y autoridad Responsable: • Responsable de Desarrollo de Software Autoridad: • Responsable de Administración del Proyecto Específico ENTRADAS Nombre Plan de Desarrollo • Descripción del Producto • Entregables • Equipo de Trabajo • Calendario FUENTE Administración de un Proyecto Específico SALIDA Nombre Descripción Especificación de Historias de Usuario Se compone de una introducción y una descripción de requisitos. Introducción: Descripción general del software y su uso en el ámbito de negocio del cliente Destino Plantilla Soporte Forma de aprobación Descripción de requisitos: * Funcionales: Necesidades establecidas que debe satisfacer el software cuando es usado en condiciones específicas. Las funcionalidades deben ser adecuadas, exactas y seguras. * Interfaz con usuario: Definición de aquellas características de la interfaz de usuario que permiten que el software sea fácil de entender, aprender, que genere satisfacción y con el cual el usuario pueda desempeñar su tarea eficientemente. Incluyendo la descripción del prototipo de la interfaz. * Interfaces externas: Definición de las interfaces con otro software o con hardware. * Mantenimiento: Descripción de los elementos que facilitarán la comprensión y la realización de las modificaciones futuras del software. * Restricciones de diseño y construcción: Necesidades impuestas por el cliente. Plan Especificación del Sistema Configuración de Software Plan de Iteración * Legales y reglamentarios: Necesidades impuestas por leyes, reglamentos, entre otros. Este documento contiene la descripción textual y grafica de la estructura de los componentes de software. El cual consta de las siguientes partes: Arquitectónica: Contiene la estructura interna del sistema, es decir la descomposición del sistema en subsistemas. Así como la identificación de los componentes que integran los subsistemas y las relaciones de interacción entre ellos. Conjunto consistente de productos de software, que incluye: • Especificación de Historias de Usuario • Especificación Cartas CRC • Especificación del Sistema • Plan de iteración • Prototipo de la Interfaz de Usuario • Integración de Componentes SW Documento en el que se especifican las iteraciones necesarias para construir el producto software Administra ción de un Proyecto Específico No tiene Plantilla Prototipo de Interfaz de Usuario Primera aproximación a la interfaz de la herramienta que va a usar el usuario. Acta de Es cuando el cliente no entrega tiene más historias para ser incluidas en el sistema. Esto requiere que se satisfagan las necesidades del cliente y no se realicen más cambios en la arquitectura. Documento de Se genera cuando el inconveniente sistema no genera los s del sistema. beneficios esperados por el cliente o cuando no hay presupuesto para mantenerlo. Cartas CRC Mecanismo efectivo para pensar en el software en un contexto orientado a objetos. Identifican y organizan las clases orientadas al objeto que son relevantes para el incremento del software actual. Codificación Se recomienda que dos en Parejas personas trabajen juntas en una estación de trabajo de computadora para crear el código de una historia. Esto proporciona un mecanismo para la resolución de problemas en tiempo real y un aseguramiento de la calidad en las mismas condiciones. Integración Ayuda a evitar Continua problemas de compatibilidad e interface y proporciona un ambiente de “prueba de humo” que ayuda a descubrir los errores del principio. ROLES INVOLUCRADOS Y COMPETENCIAS Abreviatura RAPE Rol Responsable de Administración Proyecto Específico RD Responsable de Desarrollo de Software Analista AN la del DU Diseñador de la Interfaz de Usuario PR Programador ET Equipo de Trabajo Competencias Capacidad de liderazgo con experiencia en la toma de decisiones, planificación estratégica, manejo de personal y desarrollo de software Conocimiento y experiencia en el desarrollo de software. Conocimiento y experiencia en la obtención, especificación y análisis de los requisitos Conocimiento en diseño de interfaces de usuario y criterios ergonómicos Conocimiento y/o experiencia en la programación, integración y pruebas unitarias Conocimiento y experiencia de acuerdo a su rol ACTIVIDADES Se asocian a los objetivos y describen las tareas y roles responsable. Rol Descripción A1. Planeación Entradas Plan de Desarrollo RAPE A1.1. Definir y asignar roles a cada uno de los integrantes del RD equipo de trabajo. A1.2. Distribuir tareas a los miembros del equipo de trabajo según su rol, de acuerdo al Plan de Desarrollo actual. A1.3. Revisar con los miembros del equipo de trabajo el Plan de ET Desarrollo actual para lograr un entendimiento común y obtener su RAPE RD compromiso con el proyecto. A1.4. Documentar o modificar la Especificación de Historias de Usuario: • Identificar y consultar fuentes de información (clientes, usuarios, sistemas previos, documentos, etc.) para obtener nuevos requisitos. • Analizar los requisitos identificados para delimitar el alcance y su factibilidad, considerando las restricciones del ambiente del negocio del cliente o del proyecto. RAPE RD Salidas A1.5 Priorizar las historias de usuario y estimar recursos. A1.6 Calcular la cantidad de Iteraciones y planificar las iteraciones del producto a entregar A1.7 Considerar la velocidad del proyecto y prioridades del cliente A1.8 Selección y uso de tecnología y herramientas. Documento especificación Historias de Usuario Plan de Iteraciones Rol Descripción A2. Diseño Entradas Plan de Desarrollo Historias de Usuario Plan de iteraciones AN A2.1 Especificación de la arquitectura del sistema : DU A2.1.1 Elaborar las Cartas CRC. RD A2.1.2 Elaborar diagrama de clases. A2.1. 3 Elaborar diagrama de bases de datos (MER). A2.2. Elaborar el prototipo de la interfaz con el usuario. A2.3. Efectuar pruebas de usabilidad del prototipo de interfaz de usuario sin usuarios: • Aplicar criterios ergonómicos como: retroalimentación inmediata, acciones mínimas, control de usuario, flexibilidad, protección contra errores, consistencia, corrección de errores. • Corregir el prototipo incorporando resultados de la prueba A2.4. Efectuar pruebas de usabilidad del prototipo de interfaz de usuario con usuarios: • Selección de usuarios para la prueba • Diseño del cuestionario de perfil de usuario • Planteamiento de la hipótesis de usabilidad (script de prueba e instrumento) • Monitorear la prueba • Registrar la prueba • Hacer el cuestionario de usabilidad • Registrar los resultados de la prueba • Corregir el prototipo incorporando resultados de la prueba DU AN DU RD Salidas A2.5. Modificación del prototipo de interfaz de usuario y su incorporación al Plan de Especificación del Sistema A2.6. Elaborar el plan de Especificación del sistema: Integrar la especificación de la arquitectura del sistema Documento de especificación de cartas CRC Plan de Especificación del Sistema Rol Descripción A3. Codificación Entradas Plan de Desarrollo ET A3.1 Organización de Actividades del Equipo de Desarrollo. A3.2 Escoger compañero de trabajo para la programación en pareja y asignar Historias de Usuario a la pareja. A3.3 Desarrollo de productos simples, funcionales y estandarizados. A3.3.1 Elaborar las pruebas unitarias para los módulos que lo ameriten. A3.4 Prever reajuste en desarrollo de los productos PR A3.5 Crear el código de una historia de usuario siguiendo estándares de codificación. A3.6 Integración de la programación realizada en parejas al sistema. Historia de Usuario Funcional Salidas Rol Descripción A4. Lanzamiento Entradas Plan de Desarrollo Historia de Usuario Funcional RAPE A4.1Realizar las Pruebas de Aceptación del Sistema ET • Ejecutar las Historias de Usuario, en el entorno definido por el cliente siguiendo el Plan de Desarrollo del Sistema, documentando los resultados en el Plan de Iteración, reportando los defectos encontrados en el Sistema. Validar y Corregir los defectos encontrados. Verificar que las correcciones se realizaron y los defectos pueden ser cerrados. • Aceptar el sistema RAPE A4.2 Diligenciar el acta de entrega: Firmar por parte del cliente la satisfacción del software realizado Establecer que se cumplieron los alcances establecidos en el plan de desarrollo Indicar el cumplimiento de los objetivos establecidos y especificados en el Documento de Especificación del Sistema A4.3 En caso de Muerte del Proyecto Elaborar el documento de inconvenientes del sistema: Especificar detalladamente los problemas que conllevaron a la culminación inesperada del proyecto. Acta de Entrega Salidas Guías de ajuste Descripción de posibles modificaciones al proceso que no deben afectar los objetivos del mismo. Este proceso está desarrollándose. Fig. 1.0 Definición de proceso de Desarrollo de SW Planeación Diseño Lanzamiento Codificación