¿Cómo afectaría la ciencia de datos y el aprendizaje automático al diseño de software?

Hay varios aspectos diferentes de la ingeniería de software que están influenciados por el aprendizaje automático y la ciencia de datos: qué y cómo construimos programas de software, así como por qué las técnicas basadas en datos son importantes para el diseño de software.

Primero, veremos más y más kits de herramientas y bibliotecas de ciencia de datos y aprendizaje automático, así como productos de software, a medida que aumente la popularidad (e importancia) de DS y ML.

En segundo lugar, he oído hablar de algunos trabajos de investigación que identifican y depuran automáticamente errores sintéticos y semánticos en el programa que no están alineados con los objetivos originales de las funciones. Dicha técnica se deriva en gran medida de las técnicas de aprendizaje automático y ciencia de datos (por ejemplo, análisis de datos estadísticos).

En tercer lugar, este concepto de la denominada ingeniería de software basada en datos ha existido por un tiempo. A diferencia de gobernar el flujo de trabajo del programa mediante un conjunto de reglas o lógica codificada, los datos en sí mismos definirían el flujo de trabajo del programa de software. Esto es mucho más poderoso y genérico que un montón de declaraciones if-else.

Además de lo anterior, debe haber muchas otras formas en que DS y ML influirán en la ingeniería / diseño de software. Como muchas personas han señalado, es difícil predecir el impacto en su totalidad, pero esto solo hace que las cosas sean más emocionantes.

Es difícil decir qué deparará el futuro. Sin embargo, dado que una de las grandes ventajas de la ciencia de datos y el aprendizaje automático es una predicción muy precisa dada la gran cantidad de datos, me aventuraría a decir que veremos más personalización que nunca en el futuro cercano. Por lo tanto, el software necesitará manejar más entradas y salidas de datos que nunca en tiempo real virtual. Esperaremos que nuestros dispositivos respondan casi instantáneamente a nuestras necesidades personales. Por lo tanto, se necesitarán programas informáticos eficientes para manejar las mayores cargas de datos. Pero creo que las mejoras más dramáticas estarán en los programas mismos y en las posibilidades que ofrecerá el análisis predictivo al consumidor cotidiano.

Por ejemplo, ya estoy empezando a ver emerger el Internet de las cosas y volverme “inteligente”. Vemos refrigeradores que conocen los alimentos que contienen, o cafeteras que se pueden programar según nuestras preferencias. Espero ver la integración de todos estos dispositivos para que se comuniquen y coordinen. Luego, posiblemente también se coordinarán fuera de la casa para ordenar las cosas que necesita, lo que también requeriría integración con los sistemas de pago y los proveedores externos (tal vez un dron incluso entregue). Pero la ciencia de datos y el aprendizaje automático serán la columna vertebral del software que anticipa nuestras necesidades.

Debido a la reciente popularidad de la ciencia de datos y el aprendizaje automático, habrá cada vez más software centrado en la ciencia de datos y el aprendizaje automático.

Deberá prestarse especial atención a la rapidez y eficacia con que un software puede tomar y procesar datos de entrada y proporcionar datos de salida. Se espera que las aplicaciones de software manejen una multitud de paquetes y API relacionados con ciencia de datos / aprendizaje automático. Se espera que las aplicaciones de software manejen la interfaz web. La seguridad de los datos deberá abordarse cada vez más.

En esta etapa, muchas cosas parecen ser fluidas (hasta donde yo entiendo). En unos pocos años, podrían volverse formales y sólidos.

More Interesting

¿Cuáles son algunos proyectos geniales que puedes construir con Java?

¿Cuál es la diferencia entre la máquina de torneado universal y las computadoras modernas?

¿Habrá otra arquitectura convencional después de x86 y ARM?

¿Cómo aprender sobre aprendizaje automático versus ciencia de datos versus inteligencia artificial versus redes neuronales versus procesamiento de lenguaje natural? ¿Cómo difieren y qué conjunto de habilidades necesito para dominarlos?

¿Es correcta la represalia?

¿Cuántas páginas (estándar de 8.5 "x11") se necesitarían para almacenar 100 TB de datos de texto sin formato?

¿Las computadoras que simulan el cerebro también simulan el subconsciente?

¿Qué puedo hacer para aumentar mis posibilidades de transferirme a otra universidad mejor después de mi primer año?

¿Cómo puede un robot / máquina alcanzar un estado de autoconciencia?

En Java, ¿cómo se almacena la palabra 'Computadora' y se hace una pirámide usando la función de cadena como (R ER TER UTER PUTER MPUTER OMPUTER computer) esta palabra impresa en una nueva línea en la alineación izquierda?

¿Cómo pueden las computadoras entender las variables?

¿Cómo podemos proteger nuestra computadora de virus y ransomwares?

¿Qué hace una computadora cuando se congela?

¿Qué podemos hacer para reconstruir la sucursal de CSE en NIT, Jamshedpur?

¿Cuáles son los pros y los contras en el arranque dual de mi computadora portátil Windows de alta gama con Ubuntu 14.04 en lo que respecta al rendimiento de mi computadora portátil con Windows?