o Tormenta de ideas Es definida como una técnica de pensamiento creativo, con el fin de obtener ideas en cantidad acerca de ciertos problemas para brindar soluciones. Permitiendo así estimular el ingenio, originalidad y desarrollo del trabajo en equipo. o UML (Unified Modeling Language) Sus siglas significan lenguaje modelado unificado, Se trata de un lenguaje estándar que se ha adoptado a nivel internacional, basado en una serie de normas y estándares gráficos respecto a cómo se deben representar los esquemas relativos al software con el fin de definir cómo figurar o trazar algo. o Control de versiones Definido como sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo en que lo hemos trabajado, de modo que se permita recuperar versiones anteriores específicas más adelante. o Automatización de pruebas Es la práctica que permite controlar la ejecución de un producto software de manera automática, comparando los resultados obtenidos con los resultados esperados. o Integración continua Practica en la cual los desarrolladores van insertando los fragmentos de código que desarrollan poco a poco en lugar de hacerlo una vez concluido todo el proyecto; con el objetivo de garantizar que los errores se detecten en una etapa temprana en el desarrollo, con lo cual se facilita la corrección de los mismos. o Programación de a pares Es el enfoque de desarrollo software por el que las líneas del código de un componente son escritas por dos programadores situados en un mismo ordenador. Esto significa, que se realizan constantemente revisiones de código en tiempo real. 2. Por cada uno de los temas investigados comparte a tus compañeros en qué etapa del desarrollo del software crees que este influye y por qué. Primero se definen las fases del desarrollo de software: 1. Análisis de requisitos: Extraer los requerimientos de un producto de software. 2. Diseño y arquitectura: Se refiere a determinar cómo funcionará de forma general sin entrar en detalles. Consiste en incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc. 3. Programación: Reducción de un diseño a código de programación. 4. Pruebas: Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación. 5. Mantenimiento: Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Seguido se definen en qué etapa está cada una de estas: Tormenta de ideas: Análisis de requisitos. UML(Unified Modeling Language): Diseño y arquitectura. Control de versiones: Pruebas. Automatización de pruebas: Pruebas. Integración continua: Programación. Programación de a pares: Programación y mantenimiento. 3. Escribe que ventajas, desventajas, o cualquier información que consideres que sea de interés para el desarrollo del tema. Ventajas del control de versiones: comparar cambios a lo largo del tiempo, ver quién modificó por última vez algo que pueda estar causando problemas, ver quién introdujo un problema y cuándo. Ventajas de la automatización de pruebas: reducción de los costes de mantenimiento de pruebas. El mantenimiento y la flexibilidad son los dos objetivos principales a la hora de diseñar una suite de pruebas. Desventajas de la automatización de pruebas: no garantiza la calidad del software. Ventajas de programación de a pares: se minimiza el riesgo de que se produzcan errores. Mientras una persona escribe el código, la otra lo visualiza y se concentra tan solo en la búsqueda de errores. Desventajas de programación de a pares: la asignación de parejas en este método no puede realizarse aleatoriamente.