El desarrollo de software es el proceso que se lleva a cabo para producir un programa informático. El concepto alude a las labores de diseño, programación y documentación que deben realizarse para crear el producto.
Antes de continuar, debe
considerarse que un software es una aplicación que hace posible la ejecución de
determinadas tareas en un ordenador o computadora. La idea de desarrollar, en
tanto, refiere en este caso a elaborar, diseñar o poner en marcha.
Características del
desarrollo de software
El desarrollo de software
consiste en una serie de pasos que permiten diseñar, documentar, programar,
probar, ejecutar y mantener un programa. En dicho proceso pueden intervenir
distintos especialistas y se genera un flujo de trabajo.
Se denomina ciclo de vida
del desarrollo de software (SDLC) al modelo o la estructura que incluye la
sucesión de tareas a realizar. A nivel general, más allá de las
particularidades de cada caso, este ciclo incluye las siguientes fases o
etapas:
Planificación: Implica
trabajar en el análisis de requisitos del cliente o de quien demanda la
creación del software. En esta instancia se establecen cuáles serán las
funcionalidades del programa.
Implementación: Los
especialistas en ingeniería de software se encargan de la escritura del código
(programación), examinando que el proyecto avance en sintonía con las demandas
originales. Se deben emplear lenguajes de programación que resulten útiles para
alcanzar lo pretendido.
Prueba: Consiste en
buscar posibles fallos, haciendo una revisión de código para detectar errores y
concretar la depuración necesaria.
Documentación: Se
registran los pasos a modo de informe.
Despliegue: Con el
software ya escrito y probado, se lo debe implementar. Esto supone el
lanzamiento del producto, ya sea a nivel interno o al público.
Mantenimiento: El ciclo
de vida del desarrollo de software incluye el mantenimiento para solucionar
fallos, incorporar características y optimizar el rendimiento.
Metodologías y modelos
El desarrollo de software
puede concretarse optando por diferentes metodologías y modelos.
Las metodologías ágiles
suponen la gestión de proyectos de software a través de una división del
trabajo en fases, fomentando la mejora continua y la colaboración. En este
contexto, se arman equipos que actúan en función de un ciclo que contempla la
planificación, el diseño, la ejecución, el mantenimiento y la evaluación. El
desarrollo ágil de software puede usar marcos de trabajo (frameworks) como
Kanban, Scrum o la Programación Extrema (XP).
El método de integración
continua (CI) y entrega continua (CD), también mencionado como CI/CD, contempla
por su parte la automatización de la integración de las modificaciones del
código, con lo cual los programadores disponen de un repositorio central para
ejecutar las compilaciones y las pruebas, y la implementación automática de los
cambios en un entorno de prueba.
La noción de DevOps, por
otro lado, hace alusión a las herramientas y las prácticas que contribuyen a la
integración y la automatización del proceso que realizan los desarrolladores de
software. Fomenta, de este modo, la colaboración entre los equipos.
El modelo de cascada,
asimismo, apuesta por una cronología estricta: el comienzo de una etapa solo se
concreta cuando finalizó la fase precedente. Antes de esa transición se realiza
una revisión y solo se avanza cuando el proyecto está en condiciones de seguir
adelante.
Es interesante mencionar
a la arquitectura de software conocida como microservicios, que se basa en
distintos servicios descentralizados y de implementación independiente. Así,
los desarrolladores se organizan en pequeños equipos que se especializan en
distintas cuestiones.
Tipos de desarrollo de
software
Es posible diferenciar
entre distintos tipos de desarrollo de software. Se denomina desarrollo
frontend a aquel que se encarga de la estructuración de los datos que se
muestran en la interfaz gráfica, apuntando a la optimización de la experiencia
de usuario o user experience (UX).
El desarrollo backend, en
cambio, está orientado a componentes y prestaciones que no son visibles o
accesibles para el usuario. Se trata del trabajo que se realiza con bases de
datos, APIs (Interfaces de Programación de Aplicaciones) y otros recursos para
favorecer la comunicación y la integración entre programas y sistemas.
Otra posibilidad es
considerar el tipo de desarrollo de software según su finalidad o función. Se puede distinguir entre el software de
sistema (los sistemas operativos, los programas para administrar el hardware,
etc.), el software de aplicación (que permite al usuario ver fotografías,
escuchar música, realizar tareas de oficina o satisfacer otras necesidades), el
software de programación (que brinda herramientas y recursos a los
programadores) y otras clases.
A su vez, es posible
diferenciar entre el desarrollo de software móvil (para teléfonos), el
desarrollo de software en la nube o cloud computing (que se ejecuta desde
servidores remotos) y el desarrollo de software de inteligencia artificial
(IA), por mencionar más posibilidades.
Profesionales encargados
En el desarrollo de
software pueden intervenir distintos profesionales. Los programadores son
quienes se encargan de la escritura del código fuente de los programas,
procesando pedidos, fusionando bases de datos y exhibiendo gráficos, por
ejemplo.
Los ingenieros de
software se dedican a la aplicación de los preceptos de ingeniería para la
producción de los programas, usando lenguaje de modelado y otros recursos.
Los desarrolladores de
software, en tanto, asumen la dirección del ciclo de vida del desarrollo de
software. Pueden escribir código, hacer pruebas y encarar otras tareas.
Es interesante señalar
que estos tres expertos se complementan de distintas maneras. Muchas veces los
ingenieros y los desarrolladores de software les dan instrucciones a los programadores
para crear los programas con características específicas.
Ejemplos de desarrollo de
software
Supongamos que una
empresa de transporte desea contar con un software personalizado para la
gestión de sus envíos. Con dicho objetivo, contratan a una compañía informática
y le realizan el encargo. Los desarrolladores de software se reúnen con los
transportistas, quienes informan qué es lo que necesitan. Los profesionales
tecnológicos, por su parte, les explican qué se puede hacer. Una vez alcanzado
un acuerdo, se inicia el diseño y la programación del software. Luego se
continúa con las pruebas y la implementación y se sigue con el soporte y
mantenimiento.
Tomemos el caso de un
programador que desarrolla una app móvil para seguir la campaña de un equipo de
fútbol. Trabajando con una base de datos, registra información sobre los
jugadores, los resultados de los partidos, etc., programando distintas opciones
de búsqueda y de visualización de los contenidos. Los seguidores del club en
cuestión pueden descargar la aplicación y acceder a los datos desde su teléfono
gracias a este desarrollo de software.
0 comentarios:
Publicar un comentario