Taller sobre metodologías de desarrollo de software. GA1220501093-AA1-EV01 PRESENTADO POR: EDWIN SANJUAN BARANOA/ATLANTICO Metodologías para el desarrollo de Software Las metodologías para el desarrollo de Software consisten en un conjunto de técnicas, capacidades y métodos que buscan, a su vez, con la organización y planeación disciplinar en el buen uso de esas técnicas para poder lograr un sistema y diseño del desarrollo del Software eficaz y productivo. Básicamente una metodología dentro del área de desarrollo permite analizar y diseñar una solución como prevención durante la ejecución de proyectos con ese Software, teniendo en cuanta los diferentes tipos de las metodologías puesto que cada una se aplica dentro de los problemas y necesidades de cada proyecto en concreto. 1. Modelos tradicionales - Método de cascada o Waterfall: Este método implantado durante la década de 1970, deriva de la ingeniería de sistemas de la época bajo un funcionamiento vertical y lineal dunde sus funciones se agrupan de manera secuencial, permitiendo que no sea posible pasar a otra de sus fases sin verificar la funcionalidad de las anteriores presentándose como un método seguro de su diseño y permite ahorrar tiempo. En primer lugar, se encuentra el análisis de requisitos, donde se documentan los objetivos de lo que el software será. El diseño del sistema, que se encarga de construir la estructura del sistema con el que se ejercerá el programa y estableciendo cada función a las partes del proyecto. En cambio, durante la verificación se busca que todo el funcionamiento esté perfectamente cómo se estableció desde la primera fase a partir de procesos de prueba e identificación de riesgos o fallas en su función. Por último está el funcionamiento y mantenimiento del proyecto ya como un Producto final, en el que de ahora en adelante se tendrá un control sobre su óptimo funcionamiento y la modificación, si es necesaria, de algunos requerimientos. En los requerimientos, adhesiones de nuevas funciones y el análisis de posibles riesgos en el producto. - Desarrollo rápido de aplicaciones RAD: se centra en el desarrollo de aplicaciones mediante la realización de iteraciones frecuentes y la realimentación constante, permitiendo desarrollarlo en menor tiempo, cumpliendo con los requerimientos de los clientes y permitiendo la reutilización de códigos para realizar cambios pertinentes. En sus fases primeramente está la definición y finalización de los requerimientos del proyecto cunado ambas partes discuten sobre los objetivos usos y necesidades para el programa. Mientras que en la fase de construcción de prototipos los cuales son construidos, verificados y aprobados por la validación del cliente llegando a una tercera fase de transformación a modelos totalmente funcionales. Dejando que durante la cuarta fase se enfoca en la realización de pruebas exhaustivas para garantizar que todos los elementos construidos funcionan bien individualmente y también de forma colectiva. Por último, en esta fase se realizan todas las actividades de lanzamiento del producto lo que involucra el cargue inicial de datos y entrenamiento a los usuarios. - Scrum: Estos fomentan el trabajo y el concejo colectivo durante el desarrollo del programa con el objetivo de conseguir los objetivos concretos de forma rápida. Basado en tres pilares de construcción, la transparencia, haciendo referencia al seguimiento del proceso mediante documentos o reuniones explicativas. La Inspección que permite que cualquiera pueda estar enterado de las actividades realizadas por otros y en general conocer el estado actual de los procesos y la adaptación de las actividades de mejoras que permitan modificar todo tipo de proceso para conseguir los más altos estándares de calidad. Modelos agiles Estos hacen énfasis en la comunicación del desarrollador con el cliente para establecer las normas y requerimientos necesarios en el producto final, por lo tanto, estos modelos no son de documentación sino en la importancia de la estructura y diseño funcional del resultado. - Extreme Programming XP: Este modelo se basa en la relación comunicativa entre el cliente y el desarrollado que busca el éxito del software dejando que durante el tiempo de desarrollo este tenga cambios