====== Ciclo de vida de un proyecto de desarrollo ====== ===== Fases en el desarrollo de un proyecto =====
{{ cascada.png }} Fases del desarrollo de un proyecto de software
==== Análisis ==== En esta fase se llevan a cabo las siguientes tareas: * Planificación * Análisis de requisitos (tras reuniones con el cliente/usuarios) * Descripción de las funcionalidades del proyecto * En las metodologías más clásicas suele existir una etapa anterior donde se planifica el desarrollo de todo el proyecto ==== Diseño ==== En esta fase se llevan a cabo las siguientes tareas: * Diseño de la base de datos * Modelo Entidad-Relación * Diseño de la aplicación * DFD * UML * Diseño del interfaz gráfico (Prototipo) ==== Desarrollo ==== En esta fase se llevan a cabo las siguientes tareas: * Desarrollo de la aplicación utilizando el lenguaje de codificación que se haya decidido y en base a los diseños realizados en la fase anterior * Integración continua: Esta fase guarda relación con la fase de pruebas porque se prueba el código a medida que se desarrolla (y al fin y al cabo esas pruebas hay que implementarlas también, son código) ==== Pruebas ==== En esta fase se llevan a cabo las siguientes tareas: * Se realizan las pruebas sobre el código desarrollado en la fase anterior * Actualmente se emplean frameworks como JUnit para llevar a cabo esas pruebas * También se pueden hacer pruebas funcionales (de usuario) * **Selenium**: Herramienta para la automatización de pruebas sobre el navegador * Integración continua: Capacidad de probar el código a medida que se va desarrollando * Git + Junit + Jenkins + SonarQube Se podría decir que esta fase tiene lugar al mismo tiempo que la de desarrollo, siempre y cuando se esté trabajando con integración continua. ==== Implantación ==== En esta fase se llevan a cabo las siguientes tareas: * Puesta en marcha del proyecto (instalación) * Se preparan los mecanismos que permitirán la puesta en marcha del proyecto * Herramientas: * scripts * instaladores ---- ===== Metodologías de desarrollo ===== ==== Modelo en cascada ==== * Se realiza cada etapa por separado y de forma secuencial * Todo está planificado desde el principio * Poco margen de maniobra ante imprevistos (muy rígido) ==== Modelo iterativo ==== * Se van creando pequeñas partes del proyecto y se van ampliando a medida que avanza el proyecto * Normalmente los incrementos se realizan siguiendo una planificación inicial * Relativo margen de maniobra ante imprevistos ==== Prototipado ==== * Se realiza un prototipo del proyecto antes de comenzar a desarrollar por completo * Permite comprobar si el prototipo se ajusta a las necesidades del cliente/usuario ==== Metodologías ágiles ==== * El proyecto se desarrolla poco a poco, de forma iterativa * Se utiliza la retroalimentación como forma de controlar el desarrollo (lo que ocurra durante una iteración puede afectar a la siguiente) * Margen total de mejora frente a imprevistos ---- (c) 2020-2021 Santiago Faci