Hoy en día, el uso de aplicaciones en dispositivos móviles se ha vuelto una actividad muy común para millones de personas alrededor del mundo. De acuerdo con Coolest Gadgets, durante 2024, se lanzaron aproximadamente 2 millones de aplicaciones, mientras que en la Google Play Store existían 3.4 millones aproximadamente. Con base en esta información, se puede vislumbrar la relevancia que las aplicaciones han cobrado en la vida de millones de personas en la actualidad. Luego, en esta ocasión, se explorarán, de manera general, los pasos necesarios para desarrollar una aplicación alineada al proceso de desarrollo de software.


Es importante señalar que tener conocimientos sólidos de los lenguajes de programación, modelos, patrones y paradigmas de programación garantiza un óptimo desarrollo de la aplicación.


El desarrollo de software puede llegar a ser tan complejo según los problemas que se pretendan resolver por lo que se requieren equipos de trabajo multidisciplinarios para dar solución a los problemas detectados. Los ingenieros de software pueden describir los diferentes modelos de proceso de desarrollo de software (Software Life Cycle). Dichos modelos abarcan actividades o etapas como la captura, el análisis de los requerimientos, la planeación y la administración del proyecto, el diseño, la implementación, las pruebas de funcionamiento, la publicación y el mantenimiento de la aplicación.

A continuación, solo se explicarán las primeras etapas del proceso. Donde se destaca la captura de requerimientos, diseño e implementación al utilizar el modelo de prototipo, cuyo objetivo es permitir al usuario tener un acercamiento al producto desde sus inicios. En este caso, la aplicación implica conocer la retroalimentación del cliente/usuario y a partir de ello realizar los ajustes necesarios al prototipo de forma iterativa. Además, se desarrollará una breve descripción de algunos aspectos clave que se tienen que considerar dentro de las etapas del SLC.



Previo a la implementación de la aplicación, se tiene que realizar el proceso de captura de requerimientos de software (Software Requirements Specification). Este proceso se compone de varias etapas donde una de ellas es la fase de elicitación o extracción de información. Dicha etapa abarca el entendimiento, la documentación y la administración de las diferentes fuentes de información obtenidas de las sesiones de preguntas y respuestas entre el equipo de desarrollo y el cliente/usuario.

En realidad, la elaboración del SRS es un poco más compleja, pues no solo se trata de capturar la documentación de definición de requerimientos (objetivos del cliente). Sino que además, se captura la documentación de especificación de requerimientos del software o aplicación (funcionalidad, comportamiento, limitaciones, etc.) que es la solución propuesta por el equipo de desarrollo para alcanzar los objetivos del cliente.


Diseño e Implementación

En la etapa de diseño, se define puntualmente toda la funcionalidad y la apariencia de la aplicación, es decir, cuando se plantea cómo la aplicación será construida. Para la ingeniería de software, la definición del diseño queda englobada en el Software Architecture Document y sus diferentes estilos arquitectónicos. A grandes rasgos, el diseño de la aplicación tiene dos enfoques: uno global sobre la aplicación donde se identifican los componentes generales y su interacción entre ellos. En este sentido, uno de los aspectos más importantes es definir cómo fluye la información entre estos componentes (la arquitectura del sistema).

Mientras que el segundo enfoque define todo el detalle de cada uno de estos componentes, es decir, se crean módulos menores con funciones específicas. En este sentido, se puede afirmar que para los desarrolladores es una de las etapas más creativas a lo largo de todo el proceso. Al respecto, se requieren conocimientos de paradigmas de la programación como OOP (object-oriented programming) y los diferentes estilos de EDP (Event Driven Programming). Por este motivo, se recomienda tener sólidos conocimientos de estos paradigmas —al menos a un nivel medio— para poder construir una aplicación tan simple como se necesite. O bien, en el caso de que se busque el diseño de grandes plataformas de streaming o motores de búsqueda, un nivel avanzado a experto.



Sin importar la complejidad de la aplicación, se requiere realizar bosquejos o drafts para comenzar a definir el aspecto de esta. Se puede usar una herramienta digital, por ejemplo, wireframe, o bien, a mano alzada, a este segundo se le conoce como low-fidelity prototype. En este caso, lo importante es dar forma a la interfaz que abarca todo aquello que puede visualizar el usuario.

Respecto a la implementación de la aplicación, se tiene que elegir el lenguaje para escribir el código de la aplicación. La documentación de diseño puede llegar a sugerir qué lenguaje de programación utilizar, pero no es mandatorio. Es la etapa donde se crean algoritmos, estructuras de datos, control de flujo y otros elementos basados en el diseño previamente definido. Durante esta etapa, la creatividad y el pensar fuera de la caja son indispensables para el desarrollo de la aplicación. De igual forma, se tienen que elegir las herramientas para escribir el código y alcanzar este objetivo.


De acuerdo con Coolest Gadgets, durante 2024, se lanzaron aproximadamente 2 millones de aplicaciones, mientras que en la Google Play Store existían 3.4 millones aproximadamente.


Lenguajes de programación

Elegir un lenguaje de programación —que desde nuestra experiencia se recomienda JAVA o Python— según las ventajas y desventajas que dependen de la naturaleza de cada lenguaje y sobre el que se tenga un mejor dominio. Esto permite tener una idea clara de todos los recursos del lenguaje y hacer uso de los elementos que se requieren para desarrollar la aplicación. En este sentido, es importante señalar que todo lenguaje de programación cuenta con librerías preestablecidas que atienden a propósitos particulares.

Si se posee un entendimiento, al menos general de esas librerías y su contenido, se puede reducir el tiempo empleado en la escritura del código. De forma inequívoca, en algún punto del camino se tiene que recurrir y hacer uso de estos recursos, funciones o métodos predeterminados para alcanzar oportunamente el resultado que se busca. Muchas veces un error de código se puede corregir con instrucciones tan simples como un for o una sentencia if/else.



Herramientas de trabajo

Sobre esta cuestión, se puede elegir entre múltiples herramientas de trabajo, por lo que para quienes prefieren interfaces gráficas, existen IDEs que cuentan con los elementos necesarios para desarrollar la aplicación. Al respecto, se puede optar por la codificación, creando el código fuente que dará vida a la aplicación al elegir algún GUI framework en particular. En este sentido, se sugiere ampliamente consultar la documentación de la herramienta elegida para el desarrollo de la aplicación.

Asimismo, es importante señalar que los manuales llegan a ser de cientos o miles de páginas, lo que resulta abrumador para el desarrollador. Sin embargo, al tener una idea general de dichos documentos, se pueden identificar los capítulos o secciones que se necesitan conocer para desarrollar la aplicación. Adicionalmente, dentro de esta documentación se encuentran ejemplos de código para tener una idea de cómo implementar un layout o la animación de un widget.



Conclusiones

En esta ocasión, buscamos capturar el big picture de las primeras etapas del desarrollo de una aplicación. Desde el enfoque de la ingeniería de software, el punto de partida consiste en entender los distintos requerimientos del cliente/usuario y el sistema (la aplicación). Una vez conociendo esta información, se debe plantear el modelo de proceso a seguir. Esto queda a consideración del equipo de desarrollo basado en su experiencia y la complejidad de la aplicación.

En cuanto a las técnicas y herramientas empleadas dentro de cada etapa del proceso, hoy en día existen múltiples opciones. Sin embargo, es importante señalar que tener conocimientos sólidos de los lenguajes de programación, modelos, patrones y paradigmas de programación garantiza un óptimo desarrollo de la aplicación. Finalmente, se recomienda no olvidar que el proceso de desarrollo de software invita a reutilizar los componentes desarrollados y no pretender inventar el hilo negro.


Karla Graciela Olvera Mateos

Desarrolladora de aplicaciones con formación en Ingeniería en Comunicaciones y Electrónica y experiencia sólida en telecomunicaciones, telefonía IP, Contact Centers y soluciones de colaboración en la nube. Me especializo en el desarrollo de aplicaciones con Python, incluyendo interfaces gráficas de usuario (GUI) y procesos de automatización en entornos de Networking y Cloud. Desde 2022 he enfocado mi trayectoria en la programación para responder a las crecientes necesidades de automatización y servicios en la nube. Cuento con formación en Fundamentos de Python I y II por Cisco Networking Academy y certificaciones del Instituto Python, además de preparación para la certificación Certified Professional Python Programmer Level 1.

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Copyright 2023
Social Share Buttons and Icons powered by Ultimatelysocial
LinkedIn
LinkedIn
Share
Instagram
YouTube
YouTube