1.b.1 Fases del Desarrollo de una Aplicación.

Objetivo

Identificar las principales fases del ciclo de vida de una aplicación informática y reconocer las actividades que se realizan en cada una de ellas.

1. Contenidos

1.1 Desarrollo de software

Desarrollar software no significa únicamente escribir código. Para transformar una necesidad en una aplicación útil debemos comprender el problema, diseñar una solución, implementarla, comprobarla, ponerla en funcionamiento y mantenerla.

Al conjunto de etapas por las que pasa un producto software desde su concepción hasta su retirada o sustitución se le denomina ciclo de vida del software.

1.2 Análisis de requisitos

En la fase de análisis intentamos comprender qué problema hay que resolver y qué necesita el usuario o cliente.

Algunas preguntas habituales son:

  • ¿Quién utilizará el sistema?
  • ¿Qué funciones debe ofrecer?
  • ¿Qué datos manejará?
  • ¿Qué restricciones existen?
  • ¿Qué requisitos de seguridad, rendimiento o disponibilidad son necesarios?

Ejemplo: para El Emporio Arcano podemos identificar requisitos como consultar productos, modificar precios, registrar ventas o mantener actualizado el stock.

1.3 Diseño

En el diseño decidimos cómo se organizará la solución. Podemos diseñar:

  • la arquitectura de la aplicación;
  • la estructura de los datos;
  • las interfaces de usuario;
  • los componentes y sus responsabilidades;
  • la comunicación entre módulos.

Un resultado de diseño podría ser definir que cada producto tenga id, nombre, precio y stock, además de una pantalla para su consulta.

1.4 Implementación

Durante la implementación el diseño se convierte en código fuente. Se utilizan lenguajes, bibliotecas, frameworks, IDE, sistemas de control de versiones y otras herramientas.


if (producto.getStock() > 0) {
    registrarVenta(producto);
}
				

La implementación debe respetar los requisitos y decisiones de diseño, aunque durante esta fase pueden detectarse aspectos que obliguen a revisar etapas anteriores.

1.5 Pruebas

Las pruebas comprueban que el software se comporta como esperamos y cumple los requisitos. Pueden realizarse manualmente o mediante pruebas automatizadas.

Ejemplos:

  • comprobar que una búsqueda devuelve el producto correcto;
  • comprobar que una venta reduce el stock;
  • comprobar que no se permite vender cuando el stock es cero.

Que un programa compile no significa que sea correcto. Los errores de lógica o de comportamiento se detectan mediante revisión, depuración y pruebas.

1.6 Despliegue

El despliegue consiste en preparar y publicar una versión para que pueda utilizarse en el entorno previsto. En una aplicación web puede incluir:

  • instalar la aplicación en un servidor;
  • configurar la base de datos;
  • establecer variables y secretos;
  • configurar red, dominio y certificados;
  • verificar que la versión funciona en producción.

1.7 Mantenimiento

Una aplicación continúa evolucionando después de su puesta en funcionamiento. El mantenimiento puede incluir:

  • correctivo: resolver errores;
  • adaptativo: adaptar el software a cambios externos;
  • perfectivo o evolutivo: mejorar o ampliar funcionalidades;
  • preventivo: reducir riesgos y facilitar cambios futuros.

1.8 El ciclo no siempre es lineal

El siguiente esquema es útil para comprender las fases:


Análisis → Diseño → Implementación → Pruebas → Despliegue → Mantenimiento
				

Sin embargo, el desarrollo real suele incluir iteraciones. Una prueba puede revelar un problema de diseño; un cambio del cliente puede obligar a revisar requisitos; una incidencia en producción puede generar una nueva versión.

Esta idea será fundamental cuando estudiemos las metodologías ágiles.

2. Ejercicios

  1. Ordena las fases: despliegue, análisis, pruebas, mantenimiento, implementación y diseño.
  2. Indica la fase: “el cliente explica que necesita alertas de stock bajo”.
  3. Indica la fase: “se dibuja un boceto de la pantalla de productos”.
  4. Indica la fase: “se programa la función para registrar una venta”.
  5. Indica la fase: “se instala la aplicación en el servidor real”.
  6. Explica por qué no es correcto afirmar que desarrollar software es lo mismo que programar.
  7. Propón una actividad concreta de cada fase para añadir a El Emporio Arcano una función de aviso de stock inferior a tres unidades.

3. Bibliografía