Entornos de desarrollo

1º DAM/DAW - Curso 2024-2025

User Tools

Site Tools


apuntes:proyectos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:proyectos [2020/07/19 21:56] Santiago Faciapuntes:proyectos [2021/02/15 08:57] (current) Santiago Faci
Line 1: Line 1:
 ====== Ciclo de vida de un proyecto de desarrollo ====== ====== Ciclo de vida de un proyecto de desarrollo ======
 +
 +===== Fases en el desarrollo de un proyecto =====
 +
 +<figure>
 +{{ cascada.png }}
 +<caption>Fases del desarrollo de un proyecto de software</caption>
 +</figure>
 +
 +==== 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 - Santiago Faci+(c) 2020-2021 Santiago Faci
apuntes/proyectos.1595195793.txt.gz · Last modified: 2020/07/19 21:56 by Santiago Faci