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.