Desarrollo del software¶
La era en la que vivimos es, sin lugar a dudas, transformadora. Desde la forma en que nos comunicamos hasta cómo compramos o nos entretenemos, la tecnología ha dejado su marca en cada rincón de nuestra vida cotidiana.La informática no solo ha transformado nuestra forma de interactuar, sino que ha reconfigurado industrias enteras, creado nuevas profesiones y dado lugar a debates globales sobre temas como la privacidad o la seguridad de los datos.
A continuación veremos como la industria del software no solo produce programas, sino que también define cómo las personas interactúan con la tecnología. Un desarrollo responsable y un consumo consciente son claves para que el software sea útil, accesible y sostenible.
La industria del desarrollo del software¶
La industria del desarrollo del software se refiere al conjunto de empresas, profesionales y procesos que crean, distribuyen y mantienen programas informáticos para distintos fines: aplicaciones móviles, videojuegos, sistemas operativos, páginas web, aplicaciones empresariales, inteligencia artificial, etc.
Producción de software¶
El desarrollo de una aplicación informática no es un proceso improvisado, sino una actividad planificada, estructurada y metódica que implica una serie de fases bien definidas conocidas como ciclo de vida del software. Cada una de estas etapas cumple un propósito concreto dentro del ciclo de vida del software y permite avanzar desde la idea inicial hasta el producto final que utilizan los usuarios.
graph LR
A[🔍 Análisis de requisitos] --> B[📊 Diseño del sistema]
B --> C[💻 Codificación ]
C --> D[🐞 Pruebas y verificación ]
D --> E[✅ Despliegue en producción ]
E --> F[🔧 Mantenimiento]
-
🔍 Análisis de requisitos
Toda aplicación nace de una necesidad, ya sea de una empresa, una institución o un usuario final.
En esta primera fase se lleva a cabo un estudio detallado de esa necesidad para determinar qué problema se va a resolver y qué funcionalidades deberá tener el sistema.El analista de software recopila información mediante entrevistas, cuestionarios o reuniones con el cliente. Posteriormente, redacta un documento de requisitos que recoge:
- Requisitos funcionales: qué debe hacer el sistema.
- Requisitos no funcionales: rendimiento, seguridad, usabilidad.
- Restricciones técnicas: hardware, software o entorno.
El resultado de esta fase es un conjunto de especificaciones claras que servirán como punto de referencia durante todo el desarrollo.
Ejemplo Casa
Antes de construir una casa, el arquitecto se reúne con el propietario y le pregunta:
- ¿Cuántas habitaciones necesitas?
- ¿Quieres garaje?
- ¿Cuántas plantas tendrá la casa?
- ¿Cuál es el presupuesto máximo?
Si estas decisiones no se toman al principio, la casa podría no ajustarse a lo que el cliente quiere. Lo mismo ocurre con el software: si no se entienden bien las necesidades, el programa final no será el adecuado.
-
📊 Diseño del sistema
Una vez definidos los requisitos, se pasa a la fase de diseño, en la que se planifica cómo se construirá la aplicación.
Aquí se definen la arquitectura del software, la estructura de datos, los flujos de información y la interfaz de usuario.El diseño puede dividirse en dos niveles:
- Diseño de alto nivel: define los módulos del sistema, sus relaciones y la arquitectura general (por ejemplo, cliente-servidor o MVC).
- Diseño de bajo nivel: especifica las estructuras de datos, los algoritmos y la lógica interna de cada módulo.
Durante esta fase se suelen utilizar diagramas UML, esquemas de base de datos y prototipos de interfaz (mockups).
El objetivo es ofrecer una representación visual y comprensible del sistema antes de empezar a programar.Ejemplo: construcción de una casa
En esta fase se elaboran los planos de la casa. El arquitecto decide dónde estará cada habitación, cómo se conectan los espacios, dónde irán las escaleras y cómo será la fachada.
Todavía no se construye nada, pero todo queda perfectamente definido antes de empezar la obra. En software ocurre lo mismo: se decide cómo será el programa antes de escribir código.
-
💻 Implementación o codificación
La fase de implementación consiste en transformar los diseños en código fuente mediante un lenguaje de programación.
Es el momento en que los desarrolladores convierten los diagramas y estructuras en un conjunto de instrucciones que el ordenador puede ejecutar.En esta etapa se eligen las tecnologías y herramientas más adecuadas (lenguaje, frameworks, bases de datos, IDE, control de versiones, etc.), y el equipo de desarrollo trabaja colaborativamente siguiendo buenas prácticas de programación:
- Claridad y legibilidad del código.
- Uso de comentarios y convenciones de nombres.
- Modularización y reutilización de componentes.
- Control de versiones con Git.
Ejemplo: construcción de una casa
En esta fase comienzan las obras. Los albañiles, electricistas y fontaneros construyen la casa siguiendo los planos.
Programar consiste en transformar ese boceto en una implementación mediante código. Es equivalente a construir la casa ladrillo a ladrillo.
-
🐞 Pruebas y verificación
Una vez que el sistema está implementado, comienza la fase de verificación y validación.
El objetivo es comprobar que la aplicación funciona correctamente y cumple con los requisitos definidos en la primera fase.Se realizan distintos tipos de pruebas:
- Pruebas unitarias: verifican el funcionamiento individual de cada módulo o función.
- Pruebas de integración: comprueban que los módulos interactúan correctamente entre sí.
- Pruebas de sistema: evalúan el comportamiento global del software.
- Pruebas de aceptación: permiten al cliente o usuario final validar el producto.
Importante
Las pruebas no solo detectan errores; también aseguran que el producto cumple los estándares de calidad definidos.
Ejemplo: construcción de una casa
Antes de entregar la casa, se comprueba que:
- El agua sale por los grifos
- La electricidad funciona
- Las puertas y ventanas abren bien
De la misma forma, un programa debe probarse antes de entregarse para asegurarse de que funciona correctamente todas sus funciones.
-
✅ Despliegue o implementación en producción
Cuando las pruebas se completan con éxito, la aplicación se despliega en el entorno donde será utilizada por los usuarios.
Este proceso puede implicar la instalación del software en servidores, la configuración de bases de datos o la publicación en tiendas de aplicaciones.En proyectos modernos, esta fase suele gestionarse mediante procesos de integración y entrega continua (CI/CD), que automatizan el despliegue y reducen errores humanos.
También se elaboran manuales de instalación, guías de usuario y documentación técnica.Ejemplo: construcción de una casa
En esta fase se entregan las llaves al propietario. La casa ya está terminada y puede empezar a vivir en ella.
Del mismo modo, el software se pone en funcionamiento para que los usuarios lo utilicen. Por ejemplo, se deja disponible en internet o android store.
-
🔧 Mantenimiento y mejora continua
El ciclo de vida del software no termina cuando la aplicación se entrega.
Durante su uso real aparecen nuevos requisitos, errores inesperados o necesidades de actualización tecnológica.
Por ello, esta fase se centra en mantener y evolucionar el sistema, corrigiendo fallos, optimizando el rendimiento o añadiendo nuevas funcionalidades.Existen tres tipos principales de mantenimiento:
- Correctivo: reparación de errores detectados tras la entrega.
- Perfectivo: mejora del rendimiento o la eficiencia.
- Adaptativo: actualización a nuevos entornos o tecnologías.
Recuerda
El mantenimiento asegura la sostenibilidad del software a lo largo del tiempo y permite que la aplicación siga siendo útil y competitiva.
Ejemplo: construcción de una casa
Con el tiempo, una casa necesita reparaciones:
- Arreglar una gotera
- Pintar las paredes
- Cambiar una instalación antigua
El software también necesita mantenimiento para seguir funcionando correctamente con las actualizaciones y mejoras técnicas que surgen con el paso del tiempo.
Actividades¶
📝 AA4.1 Ciclo de vida del software I¶
(C.ESP1 / CE1.3 / IC1-3p)
Una empresa tecnológica va a crear una aplicación móvil de gestión de tareas personales. Antes de comenzar a programar, el equipo se reúne para definir qué funciones debe tener la app, cómo se verá la interfaz, qué lenguaje utilizarán y cómo se probará antes de publicarla.
-
Indica a qué fase del desarrollo del software pertenece cada una de las siguientes acciones:
- Definir las funcionalidades y requisitos de la aplicación.
- Crear diagramas UML para representar la arquitectura.
- Escribir el código fuente de la aplicación.
- Ejecutar pruebas de funcionamiento.
- Subir la aplicación a la tienda de Android o iOS.
- Actualizar la app corrigiendo errores detectados por los usuarios.
-
Explica brevemente qué objetivo tiene cada una de esas fases dentro del proceso de desarrollo.
📝 AA4.2 Ciclo de vida del software II¶
(C.ESP1 / CE1.3 / IC1-3p)
Imagina que formas parte del equipo que desarrolla una aplicación web para gestionar reservas en un gimnasio. Debes planificar el proceso completo de desarrollo, teniendo en cuenta todas las fases que has estudiado.
-
Describe brevemente qué tareas realizarías en cada una de las siguientes fases:
- Análisis de requisitos
- Diseño del sistema
- Implementación
- Pruebas
- Despliegue
- Mantenimiento
-
Reflexiona: ¿qué fase crees que es más crítica para el éxito del proyecto y por qué?