Software development challenges in Big Data

En el mundo del Big Data las balanzas tienden a inclinarse muy rápidamente. En este momento trataremos una balanza que quizás ha llegado al punto exacto en el que ha de ser balanceada nuevamente.

Si tomásemos todo el esfuerzo y capital invertido en Big Data y lo separásemos en secciones, el 80% de ellas sería en materia de desarrollo de infraestructura y análisis de datos. El restante 20% serían el correspondiente al desarrollo de software centrado en Big Data.

¿Por qué es importante dedicarle esfuerzo al proceso de desarrollo de software Big Data?

A los retos del desarrollo de software “convencional” se le suman los retos de trabajar en las condiciones específicas de lo que llamamos Big Data. Principalmente las 4 V´s:

4-vs-of-big-data
  • Trabajar con grandes volúmenes de dato.
  • Procesar los datos al momento de llegar.
  • Analizando una gran variedad de datos y formatos.
  • Garantizando su autenticidad.

También es necesario hacer especial énfasis en los temas de gestión de la comunicación, seguridad e infraestructura empleadas.

Estos temas específicos de Big Data se hacen presentes y evidencian de forma transversal en cada una de las esferas del desarrollo de software.

  • Requerimientos
    documentar
  • Arquitectura
  • Arquitecturas de referencia
  • Modelos de diseño
  • Simulación
  • Codificación
  • Pruebas
  • Integración
  • etc

¿Cuáles son las tendencias actuales en el área del desarrollo de aplicaciones para Big Data?

  • El desarrollo del software está centrado en los datos.
  • Los sistemas desarrollados son desplegados en el contexto donde se usarán (sector financiero) donde incontables datos serán procesados para brindarle algo de valor a los inversionistas.

¿Qué se pretende alcanzar luego de invertir en la investigación y desarrollo del software Big Data?

Al hacer evolucionar las formas y procesos actuales en materia de desarrollo de aplicaciones Big Data se pretende lograr, que, como han probado los años de experiencia en desarrollo de software “convencional”, los requerimientos de usuario vengan, en gran medida, de la interacción con los inversores. De esta forma se evita que los sistemas resultantes pudieran no ofrecer la usabilidad deseada o que al usarlos podrían no resultar de valor para el mismo.

En pos de lograr una sinergia entre las partes implicadas en el desarrollo de la ingeniería de software Big Data se ha definido el siguiente contexto tentativo.

Screenshot 2016-11-02 11.39.05.png

¿Qué temas y oportunidades de Investigación se derivan de esta necesidad?

La necesidad de esfuerzo en este sentido hace evidente la existencia de algunos temas y oportunidades de Investigación que pueden ser divididos en las esferas de ingeniería de requisitos, arquitectura y, creación de herramientas para pruebas y mantenimiento.

Ingeniería de Requisitos

  • Características de Big Data:

Las características de los elementos Big Data deben ser representables en las notaciones d requerimientos de forma tal que el diseño de la solución pueda ser creado teniendo en cuenta esas especificaciones.

  • Procesos Multi-Pico

Generar un proceso de captura de requerimientos que permita capturar todos las necesidades a lo largo del proceso de desarrollo del software.

Esto requiere un acercamiento ágil entre el usuario final, analista de requerimientos, arquitectos, tecnólogos, equipo de pruebas y otros inversores que deban tomar decisiones sobre la vista final del producto. Cruzando las tradicionales barreras entre procesos y aprovechando las técnicas subyacentes y tecnlogías para un desarrollo más rápido, certero y de menor costo.

Arquitectura

El primer paso sería en cuanto a arquitecturas de referencia y patrones para aplicaciones de análisis Big Data y sobre cómo esas arquitecturas de referencia pueden ser reutilizadas y llevadas a arquitecturas y despliegues concretos.

Posteriormente, determinar cómo estas arquitecturas de referencia pueden ser mapeadas a tecnologías, frameworks y herramientas existentes impulsando despliegues óptimos.

Finalmente, otro campo a explorar es el de generar técnicas para evaluar el impacto de las decisiones de diseño de la arquitectura en los requerimientos funcionales y no funcionales.

Automatizar la realización de pruebas representativas:

Los Sistemas Big Data (BDS) son soluciones complejas que incluyen muchos componentes dinámicos. Simular el entorno para poder validar los cambios introducidos por pruebas o actividades de mantenimiento suele ser, al menos, desafiante.

Entonces, ¿cómo podríamos construir un sistema de pruebas que sea representativo y tenga en cuenta los recursos de hardware y software que asemejen una fracción de los sistemas BDS en producción?

  • Disminución de recursos disponibles
    • Asociado al Volumen de datos y la velocidad de procesamiento
  • Aumento/Disminución representativo de la cantidad de datos
    • Asociado a la Variedad de los datos
  • Captura y reproducción de la carga de trabajo
    • Asociado al Volumen de datos y la velocidad de procesamiento

Big Data está aquí para quedarse. Mientras tanto, el análisis realizado muestra que el desarrollo se ha enfrascado mayoritariamente en el desarrollo de infraestructuras y técnicas de análisis de datos y no en el proceso de confección del software. Mientras madura Big Data, más se hace necesario invertir en la investigación y mejora del proceso. En este trabajo los puntos más apremiantes en el área de investigación de los campos relativos a este tema han sido marcados, así como ha sido puesto en contexto su estado actual.

Para ver la infografía animada (prezi), click aquí.

Big Data, Software Architect, Software Development

Leave a Reply

Your email address will not be published. Required fields are marked *

SWA Learners Blog © 2018