Herramientas ad hoc para cliente

Sistema de tratamiento de datos, con demostrada capacidad analítica, para satisfacer las necesidades del cliente de manera efectiva.


Período

2013-2023

Sector

Ingeniería Software

Servicio

Desarrollo de software Tratamiento y análisis de datos
PDF

CONTEXTO

La tecnología es omnipresente en nuestro mundo y los mayores avances han venido de la mano de la informática, constituida esencialmente por el hardware y el software que lo gobierna. Hoy en día, prácticamente cualquier proceso de trabajo implica el uso de aplicaciones de software y la productividad de estos depende en gran medida de un adecuado desarrollo de herramientas ad-hoc capaz de automatizar tareas y facilitar la ejecución de los proyectos del usuario.

Para ello, es clave el adecuado análisis de los requisitos y las necesidades, una correcta planificación y ejecución del desarrollo, así como una fiable implementación del flujo del programa y de la interfaz de usuario.

SOLUTE cuenta con un amplio recorrido y una gran capacidad técnica para abordar desarrollos de software de las más variadas tipologías, desde sistemas de automatización industrial hasta aplicaciones enfocadas al uso profesional en sectores concretos, pasando por apps móviles aptas para el uso en campo.

El desarrollo de software es la disciplina que estudia los componentes necesarios para la creación, gestión, mantenimiento y testeo de software informático, que puede entenderse como la programación lógica que todo sistema informático necesita para funcionar adecuadamente y permitir al usuario disfrutar de las funciones de una aplicación a través de una interfaz práctica e intuitiva.

Una de las vertientes del desarrollo de software es la automatización de procesos, aquella parte que reemplaza tareas iterativas y manuales por funciones fiables y optimizadas en tiempo. Estas funciones pueden comunicarse con distintos orígenes de datos, procesarlos y devolver los resultados en el formato requerido, de forma transparente al usuario.

Las herramientas desarrolladas pueden ser ejecutadas como un programa standalone o como biblioteca de funciones integrada en una toolchain existente. Según las especificaciones del usuario, las herramientas pueden alojarse tanto en una máquina local como en un servidor distribuido, accesible a través de una red de comunicaciones.

A menudo el mayor problema al que se enfrenta todo proyecto es la gran cantidad de datos poco manejables para extraer información y a tareas repetitivas de carga, análisis y cálculo de resultados. Sumado a ello, el uso de aplicaciones inadecuadas, poco eficientes o con una interfaz restrictiva, da lugar a cadenas de trabajo con procesos mal conectados y diferencia de formato de datos entre ellos.

Por ello, la parte más importante del desarrollo de herramientas ad-hoc es la preocupación por el detalle de las necesidades del cliente, la adaptación a la plataforma sobre la que se va a implantar el desarrollo y los conocimientos acerca de los datos a manejar.


RESULTADOS

Tras el correcto proceso de desarrollo se obtiene un procedimiento documentado de tratamiento de datos, un software asociado que lo automatiza y los informes de resultados que dan visiones general y detallada de la información relevante de ser extraída.

EXPERIENCIA

Desde 2013 SOLUTE ha realizado multitud de desarrollos, tanto para uso interno como para clientes de diversos campos, como el sector de la energía o la automoción: traducción y port de herramientas existentes a un diferente lenguaje de programación, adaptación de formato de información entre procesos y funciones de cálculo paralelizado entre otros.

En el sector eólico, SOLUTE ha desarrollado y explota comercialmente el software Furow para el desarrollo integral de proyectos, abarcando todas sus fases desde el tratamiento de datos de viento al cálculo de recurso eólico, pasando por micrositing, análisis financiero y automatización de informes.

En la actualidad, SOLUTE desarrolla Aphelion, una gama de productos orientada a proporcionar predicción meteorológica de alta resolución relevante para los sectores energético, agropecuario, industrial o náutico.

En la actualidad se suele emplear lo que se denomina metodología ágil: inicialmente se realiza un análisis previo de los requisitos de la aplicación para, acto seguido, planificar el proyecto estudiando la mejor plataforma y lenguajes de desarrollo, así como realizando una estimación de los recursos necesarios y los plazos de ejecución previstos.

METODOLOGÍA

El desarrollo de software en general requiere el conocimiento de una serie de conceptos procedentes de la teoría de la programación y del análisis de algoritmos, pero, debido a la gran variedad de necesidades del cliente, se debe tener la capacidad de colaboración continua y adaptación a sus requerimientos y formato de datos de entrada a lo largo del desarrollo.

Para la implementación de herramientas para el tratamiento y análisis de datos se necesitan una serie de competencias que cubren desde el aspecto técnico de la programación en lenguajes como Python, C++, Matlab o R, y el diagnóstico propio de la visión analítica y gestión de orígenes de datos binarios, texto XML y bases de datos SQL, hasta el aspecto de diseño y representación visual de resultados en Power BI, Tableau y MS Excel.

Como el desarrollo de software es muy multidisciplinar, las herramientas utilizadas cubren un espectro muy amplio: para la creación de código propiamente dicho se utilizan herramientas de codificación como Microsoft Visual Studio Code, PyCharm o entornos de desarrollo integrados IDE específicos para cada lenguaje, mientras que para el análisis de datos se explotan o se desarrollan distintas bibliotecas de funciones de cálculo matemático, representación gráfica e importado/exportado de datos.

Como en cualquier tipo de desarrollo de software con una mínima complejidad, también se hace imprescindible el uso de herramientas de control de versiones como Gitlab, y seguimiento de los estándares de codificación y estilo para los diferentes lenguajes. Así mismo se establece un método de integración y distribución continuas CI/CD para generar entregables con frecuencia a los clientes mediante la automatización de las etapas del desarrollo de las herramientas.

Existen diversas metodologías para el desarrollo de software que se eligen en función de si el proyecto a realizar debe cubrir una necesidad en un momento concreto o de si cuenta con unos largos ciclos de vida y explotación comercial. En la actualidad, se suele emplear lo que se denomina metodología ágil: inicialmente se realiza un análisis previo de los requisitos de la aplicación para, acto seguido, planificar el proyecto estudiando la mejor plataforma y lenguajes de desarrollo, así como realizando una estimación de los recursos necesarios y los plazos de ejecución previstos.

Después se inicia el proceso de codificación y pruebas de la aplicación para finalmente proceder a la implantación en la plataforma prevista. Tras la validación por parte del cliente, o la realización de las correcciones pertinentes, se da por finalizado el proyecto. A menudo, si el cliente lo demanda, se inicia una fase posterior de mantenimiento continuo donde se pueden realizar modificaciones en los cálculos y mejoras en la presentación de resultados.

Otros

Inteligencia Artificial (IA)

Disciplina basada en la construcción de artefactos computacionales que aprenden de la experiencia gracias al uso de datos y que se aplica en diversos problemas.

Virtualización

Generación de visitas virtuales

SOLUTE genera visitas virtuales enriquecidas con contenido técnico y comercial para optimizar procesos internos de oficina en distintos sectores