Contenido Contenido 1 CICLO DE VIDA DEL SOFTWARE 2 Metodología de desarrollo 6 Gestión de proyectos 8 CICLO DE VIDA DEL SOFTWARE Software: Conjunto de los programas de computo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación. Gestión de proyectos: Disciplina de organizar y administrar los recursos de manera tal que se pueda culminar todo el trabajo requerido en el proyecto dentro del alcance, tiempo y coste definidos. Ciclo de vida del software: El termino ciclo de vida del software describe el desarrollo de software desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación. El ciclo de vida básico de un software consta de los siguientes requerimientos: • Definición de objetos: define el resultado del proyecto y su papel en la estrategia global. • Analisis de los requisitos y su viabilidad: Recopilar, examinar y formular los requisitos del cliente y examinar cualquier descripción que se pueda aplicar. • Diseño general: Requisitos generales de la arquitectura de la aplicación. • Diseño en detalle: Definición precisa de cada subconjunto de la aplicación. • Programación: Implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño. • Prueba de unidad: Prueba individual de cada subconjunto de la aplicación para garantizar que se implementara de acuerdo con las especificaciones. • Integración: Para garantizar los diferentes módulos se integren con la aplicación. • Prueba beta o validación: Para garantizar que el software cumple con las especificaciones originales. • Documentación: Sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros. • Implementación: Poner en producción. • Mantenimiento: Para todos los procedimientos correctivos y las actualizaciones secundarias del software (Mantenimiento continuo). Modelos de ciclo de vida Para facilitar una metodología común entre el cliente y la compañía de software, los modelos de ciclo de vida se han actualizado para reflejar las etapas de desarrollo involucradas, y la documentación requerida, de manera que cada etapa se valide antes de continuar con la siguiente etapa. Modelo en cascada El modelo de ciclo de vida en cascada comenzó a diseñarse en 1966 y termina alrededor de 1970. Se define 1 como una secuencia de fases en la etapa final de cada una de ellas se reúne la documentación para garantizar que cumple con las especificaciones y los requisitos antes de pasar a la siguiente fase. Modelo en cascada. Modelo V El modelo de ciclo de vida V proviene del principio que establece que los procedimientos utilizados para probar si la aplicación cumple las especificaciones ya deben haberse creado en la fase de diseño. 2 METODOLOGIAS DE DESARROLLO DE SOFTWARE Métodos rápidos Reduce el tiempo del ciclo de vida del software al desarrollo en primera instancia una versión prototipo y después integrar la funcionalidad de manera iterativa para satisfacer los requisitos del cliente y controlar todo el ciclo de desarrollo. RAD (Desarrollo rápido de aplicaciones) Consiste en un ciclo de desarrollo corto basado en 3 fases (diseño−requisitos−construcción) con un plazo de entrega ideal de 90 a 120 días como máximo. DSDM (Método de desarrollo de sistema dinámico) Se desarrollo para complementar lo que le faltaba al método RAD al proporcionar una estructura que tiene en cuenta el ciclo de desarrollo completo. UP (Proceso unificado) Es un proceso de desarrollo iterativo y creciente, significa que el proyecto se divide en fases más cortas y que se envía una nueva versión gradual al final de cada fase. RUP (Proceso unificado racional) Método de desarrollo interactivo promovido por la compañía Rational software de IBM, especifica principalmente la constitución del equipo y las escalas de tiempo. XP (Programación extrema) Conjunto de prácticas optimas para el desarrollo de aplicaciones en excelentes condiciones al colocar al cliente dentro del proceso de desarrollo manteniendo una cercana relación. GESTION DE PROYECTOS 3 • Introducción a ERP (Gestión integral de la empresa) • Implementación de la ERP • Introducción al concepto de EAI (Integración de aplicaciones empresariales) • Introducción a PLM (Administración del ciclo de vida del producto) • Implementación de PLM • Introducción a ILM Metodología de desarrollo Conjunto de pasos y procedimientos que debe seguirse para el desarrollo del software. Especificaciones: • Como se debe dividir un proyecto en etapas • Que tareas ahí que realizar en cada etapa • Que salidas se producen y cuando • Que restricciones se aplican • Que herramientas se utilizan • Como se gestiona y controla un proyecto Necesidades 1.− Mejorar aplicaciones 2.− Mejorar el proceso de desarrollo 3.− Proceso estándar en la organización Objetivos 1.− Definir requisitos en forma acertada 2.− Método sistemático de desarrollo 3.− Construir sistemas en tiempo y costo razonable 4.− Construir sistemas documentados y fáciles de mantener 5.− Ayudar identificación de cambios 6.− Proporcionar sistemas que satisfagan Diferencias conceptuales 1.− Metodología (Como) puedes seguir uno o varios modelos de ciclo de vida. (Que) 2.− Los métodos a veces se centran en una fase del ciclo de vida. Descomposición 1.− Tareas (Algo que hay que realizar) 4 2.− Procedimiento (Forma de ejecutar la tarea) 3.− Producto (Resultado) 4.− Técnicas (Formatos) 5.− Herramientas Software (Automatización) Proceso unificado de desarrollo Objetivo: Desarrollo más rápido y software de calidad (Sistemas más completos y mas grandes) Proceso unificado: Es necesario un proceso que integre todas las facetas de un desarrollo de software • Dar una guía para ordenar las actividades del equipo • Dirigir las tareas individuales y del equipo • Especificar los productos que hay que desarrollar • Ofrecer criterios para monitorizar y medir los productos y actividades. Gestión de proyectos Objetivo: Conocer las tareas principales de los gestores de proyectos de software. ¿Por qué planificar proyectos es esencial en todos los proyectos de software? La gestión de proyectos de software es una parte esencial de la ingeniería de software. Los gestores de software son responsables de las planificaciones y temporización del desarrollo de los proyectos, supervisan el trabajo para asegurar que se lleve a cabo conforme a los estándares requeridos y supervisan el progreso para comprobar que el desarrollo se ajusta al tiempo previsto y al presupuesto. Diferencias entre gestor de software e ingeniería de software • El producto es intangible: el software es un producto intangible no se puede ver ni tocar, no se puede ver el progreso y se basa en la documentación anterior necesaria para revisar el sub progreso. • No existen progresos del software estándar: en las disciplinas de ingeniería con larga historia el proceso se prueba y se verifica, los procesos de software varían notablemente de una organización a otra. • A menudo los proyectos grandes son únicos: los rápidos cambios tecnológicos en las computadoras y en las comunicaciones hacen parecer obsoleto la experiencia previa. Actividades de gestión: • Redacción de la propuesta • Planificación y calendarización del proyecto • Estimación de costes del proyecto • Supervisión y revisión del proyecto • Selección y evaluación del personal • Redacción y presentación de informes 5 4 6