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 INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES PROGRAMA INGENIERÍA DE SISTEMAS INGENIERÍA 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 Pruebas Conjunto de actividades para probar el software, basadas en el Plan de Pruebas de Sistema, con la finalidad de obtener el Software que satisfaga los requisitos especificados. Como resultado se obtiene el producto de Software probado y documentado Cabe destacar las siguientes tareas: Documento de Pruebas del Sistema 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 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 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. FUENTE Administración de un Proyecto Específico Destino Plantilla Soporte Forma de aprobación 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 * 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 Administra ción de un Proyecto Específico No tiene Plantilla Configuración de Software 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 Plan de Documento en el que se Iteración especifican las iteraciones necesarias para construir el producto software Prototipo de Primera aproximación a Interfaz de la interfaz de la Usuario 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 Codificación en Parejas Integración Continua Plan de Pruebas del Sistema Reporte de Pruebas del Sistema Plan de Pruebas de Seguridad objeto que son relevantes para el incremento del software actual. Se recomienda que dos 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. Ayuda a evitar problemas de compatibilidad e interface y proporciona un ambiente de “prueba de humo” que ayuda a descubrir los errores del principio. Documento en el cual se identifican las pruebas requeridas para el cumplimiento de los requisitos especificados para el producto software. Registro de participantes, fecha, duración y defectos encontrados en la integración y aceptación del software. Administra No tiene ción de un plantilla Proyecto Específico Vr2 Administra ción de un Proyecto Específico Registro de pruebas que se aplicarán para verificar la interacción entre los componentes. Documento que Administra No tiene contiene la descripción ción de un plantilla del plan de pruebas de proyecto Ver3 seguridad. Documentar los resultados esperados Reporte del Registro del tratamiento tratamiento que se realizará para realizado a las garantizar la seguridad Pruebas de del software. Seguridad Específico Administra No tiene ción de un plantilla Proyecto Específico Ninguna ROLES INVOLUCRADOS Y COMPETENCIAS Abreviatura RAPE RD AN DU PR ET RPU RS ES Rol Responsable de Administración Proyecto Específico Competencias la Capacidad de liderazgo con del experiencia en la toma de decisiones, planificación estratégica, manejo de personal y desarrollo de software Responsable de Desarrollo Conocimiento y experiencia en el de Software desarrollo de software. Analista Conocimiento y experiencia en la obtención, especificación y análisis de los requisitos Diseñador de la Interfaz de Conocimiento en diseño de interfaces Usuario de usuario y criterios ergonómicos Programador Conocimiento y/o experiencia en la programación, integración y pruebas unitarias Equipo de Trabajo Conocimiento y experiencia de acuerdo a su rol Responsable de Pruebas Conocimiento y experiencia en la planificación y realización de pruebas de integración y de sistema. Responsable de Seguridad Responsable de establecer los requisitos de seguridad de información estándar y el nivel alcanzado por el software desarrollado. Equipo de Responsable de instalar, probar e Seguridad identificar el nivel de seguridad alcanzado. ACTIVIDADES Se asocian a los objetivos y describen las tareas y roles responsable. Rol Descripción A1. Planeación Plan de Desarrollo Entradas 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 A1.5 Priorizar las historias de usuario y estimar recursos. RD 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. RPU A1.9 Elaborar o modificar Plan de Pruebas de Sistema. AN A1.10 Corregir los defectos encontrados en el Plan de Pruebas de Sistema con base en el Reporte de Pruebas del Sistema y obtener la aprobación de las correcciones. ES A1.11 Elaborar o modificar el Plan de Pruebas de Seguridad. RS A1.12 Corregir los defectos encontrados en el Plan de Pruebas de AN Seguridad con base en el Reporte de Pruebas de Seguridad y obtener la aprobación de las correcciones. Salidas 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 A2.5. Modificación del prototipo de interfaz de usuario y su incorporación al Plan de Especificación del Sistema AN A2.6. Elaborar el plan de Especificación del sistema: DU Integrar la especificación de la arquitectura del sistema RD RPU A2.7. Diseñar los casos de prueba Documento de especificación de cartas CRC Salidas Plan de Especificación del Sistema Rol Descripción A3. Codificación Plan de Desarrollo Entradas 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. Pruebas Plan de Desarrollo Entradas RD A4.1. Distribuir tareas a los miembros del equipo de trabajo según su rol, de acuerdo al Plan de Desarrollo actual RPU ES PR RPU RE Salidas A4.2. Diseñar los Casos de Prueba del Sistema, en base al Plan de Pruebas del Sistema y el Plan de Pruebas de Seguridad • Diseñar los casos de prueba del sistema A4.3. Realizar las Pruebas del Sistema: • Ejecutar los Casos de Prueba del Sistema siguiendo el Plan de pruebas del Sistema y documentar los resultados en el Reporte de Pruebas del Sistema. • Validar y corregir los defectos encontrados A4.4. Realizar las Pruebas del Seguridad: • Ejecutar los Casos de Prueba del Sistema siguiendo el Plan de Pruebas de Seguridad y documentar los resultados en el Reporte de Pruebas del Seguridad. • Reportar los defectos encontrados en el Sistema. • Validar y corregir los defectos encontrados Acta de Entrega Reporte de Pruebas del Sistema Reporte de Pruebas de Seguridad Rol Descripción A5. Lanzamiento Plan de Desarrollo Entradas 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