Desenvolvemento en uve

Coñécese como **desenvolvemento en uve** un enfoque metodolóxico da xestión de proxectos de software onde cada unha das fases se executa de maneira secuencial, sen saltos atrás nin modificacións, pero onde a testaxe e a revisión ten un peso moi importante. É un dos enfoques tradicionais, que nace co obxectivo de mellorar o modelo de desenvolvemento en fervenza.

## Concepto 
[350px|miniatura|Modelo en uve adaptado para o desenvolvemento do software, cun eixo horizontal de tempo ([Lingua alemá|alemán *Zeit*) e un eixo vertical de complexidade, do máis xenérico ao máis específico.]]
O modelo de desenvolvemento en uve ou modelo en uve, é unha metodoloxía de xestión de proxectos de software, onde:
* cada unha das fases segue unha orde secuencial
* non se comeza unha fase ata que está rematada a anterior
* non se volve atrás no proceso cara a fases anteriores.
* enfatízase a verificación para asegurar que a implementación se corresponde cos requirimentos
Denomínase de uve porque a representación gráfica máis habitual é un uve, onde cada unha das fases comeza a partir do produto elaborado na fase anterior, e continúa coa revisión (verificación) das fases nunha orde simétrica.

## Vantaxes e inconvenientes
O modelo en uve nace como mellora fronte ao desenvolvemento en fervenza, e comparte case todas as súas vantaxes e inconvenientes. Por exemplo, é bastante intuitivo e non dedica, polo menos na teoría, demasiado tempo ás fases de planificación e xestión, se ben o proceso de revisión, testaxe e validación é máis complexo e longo. Como o modelo en fervenza, permite unha orzamentación fixa, é dicir, pode facerse un cálculo previo dos recursos que vai levar o proxecto e transformar este cálculo nunha estimación económica.

Aínda que permite a revisión do traballo dunha forma máis sitemática có desenvolvemento en fervenza, tampouco é un método moi receptivo aos cambios: é relativamente pouco custosa a revisión da última fase, pero a revisión das primeiras fases (erros na análise ou nas especificacións) son moi difíciles de solventar. O modelo de dentes de serra tenta corrixir isto, precisamente.

## Fases típicas
As fases do desenvolvemento en uve dependen do tipo de proxecto e da composición do equipo: proxectos máis complexos ou con equipos maiores adoitan ter máis fases, detallan máis os pasos ou implican distintos departamentos ou roles, mentres que os proxectos máis simples e os equipos máis pequenos reducen e agrupan as fases. A xeito de orientación podemos presentar o seguinte modelo de fases. Loxicamente, distintos equipos denominarán estas fases con termos diferentes.

# **Requisitos**, a fase onde se reciben as necesidades do cliente
# **Especificación**, a fase onde se describe como debe funcionar o software, a partir dos requisitos do cliente.
# **Arquitectura**, a fase en que se define o funcionamento da arquitectura, das bases de datos etcétera.
# **Deseño detallado**, cando se describe o funcionamento proposto para o software, incluídas as súas interfaces.
# **Codificación**, cando se fai a programación informática escribindo o código. É a fase máis importante, e agrupa non só a propia escritura de código, senón tamén a implementación e integración. A partir desta fase empeza o proceso de testaxe, dividido á súa vez en fases simétricas.
# **Testaxe unitaria**, onde se revisa que o código cumpra as especificacións do deseño detallado
# **Testaxe de integración**, onde se comproba que o software encaixa na arquitectura disposta.
# **Testaxe de sistema**, onde se revisa que a peza de software realmente funcione no sistema
# **Testaxe de cliente**, onde se chequea que o produto de software coincida co que nos solicitara o cliente a través das súas necesidades.

## Notas