The QPath Blog


QQualityb

QPath resuelve la mayoría de los problemas de calidad de las plataformas de computación cuántica

Autor

La computación cuántica está acaparando mucho interés, ya que existen innumerables aplicaciones de vanguardia en múltiples áreas (economía, química, medicina y salud, logística, energía, inteligencia artificial, seguridad, etc.). La consecución de estas aplicaciones requiere el uso de un tipo de ordenadores y algoritmos completamente diferentes, que tienen el potencial de resolver tareas que hoy ni siquiera nos atrevemos a soñar. Ya existen varios lenguajes de programación cuántica, kits de desarrollo de software y plataformas [1] para codificar estos nuevos algoritmos. Pero todo el software cuántico existente e incluso el previsto no es suficiente.

De hecho, es necesaria una nueva “ingeniería de software cuántico [2]“. El software cuántico tendrá que desarrollarse de forma adecuada. Podemos conseguir algo tan trascendental como los métodos y herramientas que han mejorado considerablemente los sistemas software en las últimas décadas: la programación estructurada, la programación orientada a objetos o la ingeniería de software continua/DevOps [3].

Sin embargo, para producir “software cuántico de calidad”, realizando las importantes inversiones necesarias en conocimientos y plataformas, debemos conocer bien el impacto en la calidad de los principales kits y herramientas de desarrollo de software cuántico. Sodhi & Kapur [4] han publicado recientemente en la conferencia ICSA 2021 (18th IEEE International Conference on Software Architecture) [5], un análisis sobre esta cuestión.  Experimentaron con las principales plataformas de programación cuántica, examinando cómo afectan a las características de calidad del software más relevantes: Disponibilidad, Interoperabilidad, Mantenibilidad, Manejabilidad, Rendimiento, Fiabilidad, Escalabilidad, Seguridad, Testabilidad (Facilidad de Prueba) y Usabilidad. Algunas de las características que más afectan, en su estudio, a los atributos de calidad, son:

1)   Menor nivel de las abstracciones de programación, que aumenta la complejidad del código impactando en la mantenibilidad, testabilidad, fiabilidad y disponibilidad.

2) Heterogeneidad de las plataformas, que deteriora la cohesión del software, afectando a la mantenibilidad, la fiabilidad, la robustez, la reutilización, y la capacidad de gestión y comprobación del sistema.

3) Desarrollo y despliegue remotos del software, que hacen que la programación, las pruebas y la depuración de los programas cuánticos sean más lentas, lo que afecta a la capacidad de mantenimiento y de prueba.

4)   Dependencia de los algoritmos cuánticos conocidos, lo que afecta a la capacidad de realizar mejoras y al mantenimiento correctivo, así como a la testabilidad e interoperabilidad (con el software clásico).

5)   Limitada portabilidad del software, lo que provoca la falta de estandarización en varias áreas, afectando a la disponibilidad, interoperabilidad, mantenibilidad y escalabilidad.

6)   Ausencia de un sistema operativo cuántico nativo, lo que disminuye el rendimiento, la gestionabilidad, fiabilidad, escalabilidad y seguridad.

7)   Modelo de programación fundamentalmente diferente, que puede aumentar la complejidad del código y afectar a la mantenibilidad, la interoperabilidad, la seguridad y la capacidad de comprobación.

QPath se ha desarrollado teniendo en cuenta los principios del “Manifiesto de Talavera [6]“, que insta a producir software cuántico aplicando los conocimientos y las lecciones aprendidas en el campo de la ingeniería del software. Por lo tanto, QuantumPath® resuelve la mayoría de los problemas de calidad de las plataformas de computación cuántica mencionados anteriormente [7]:

1)   Menor nivel de las abstracciones de programación, QPath® es agnóstico respecto a los lenguajes y tecnologías de programación cuántica, apoyando a los diseñadores visuales de circuitos basados en puertas y al Annealer Compositor [8].

2)   Heterogeneidad de las plataformas, QPath® proporciona las herramientas necesarias para que el equipo de desarrollo se centre en el desarrollo de la solución sin tener que preocuparse por las especificidades de las plataformas cuánticas y sus requisitos necesarios [9].

3)   Desarrollo y despliegue remotos del software, QPath® ofrece un conjunto completo de herramientas para el diseño, la construcción, las pruebas y la ejecución de activos cuánticos tanto desde el contexto de las soluciones agnósticas como de las específicas de las plataformas.

4)   Dependencia de los algoritmos cuánticos conocidos, QPath® soporta la creación de nuevos algoritmos cuánticos a través de su desarrollo, prueba e implementación, hasta su despliegue y así como la reutilización de los algoritmos cuánticos existentes. Además, ofrece la capacidad de extensibilidad en los módulos principales y críticos de la plataforma. De manera que es posible acoplar a la plataforma nuevos conectores soportados por tecnologías de socios y terceros, que amplían el valor añadido del producto.

5)   Limitada portabilidad del software, QPath® permite crear activos de aplicación cuánticos y establecer los requisitos del entorno, dejando que los detalles subyacentes al sistema (desde el modelo hasta los resultados, el ciclo de vida es totalmente automático). QPath® sigue el principio de “escribir una vez, ejecutar en todas partes”.

6)   Ausencia de un sistema operativo cuántico nativo, el backend empresarial de QPath® contempla -por diseño- la seguridad, la alta disponibilidad, el equilibrio de carga y el procesamiento asíncrono del cliente.

7)   Modelo de programación fundamentalmente diferente, QPath® es una plataforma diseñada para soportar la integración de software híbrido clásico/cuántico y, por tanto, contiene las herramientas necesarias para facilitar la integración del software clásico con la computación cuántica [10]. Además, QPath® facilita a los equipos de desarrollo clásicos la gestión del ciclo de vida de los proyectos de software híbrido.

Por todas estas razones (y por algunas más [11]), QuantumPath® es una excelente plataforma para el desarrollo de software cuántico práctico de calidad, que se integra de forma transparente con los principales ordenadores cuánticos resolviendo la mayoría de los problemas de calidad de las plataformas de computación cuántica.

 

[1] Peterssen, G. & Hevia, José Luis (2021). Introduction to quantum software development with QPath. https://www.quantumpath.es/index.php/2021/01/13/introduction-to-quantum-software-development-with-qpath/

[2] Piattini, M., Serrano, M., Pérez-Castillo, R., Peterssen, G. & Hevia, J.L. (2021). Towards a Quantum Software Engineering. IT Professional, vol. 23, no. 1, pp. 62-66, 1 Jan.-Feb. 2021, doi: 10.1109/MITP.2020.3019522.

[3] Piattini, M., Peterssen, G., and Pérez-Castillo, R. (2020b). Quantum Computing: A New Software Engineering Golden Age. ACM SIGSOFT Software Engineering Newsletter 45 (3), June 2020, 12-14.

 [4] Sodhi, B. & Kapur, R. (2021). Quantum Computing Platforms: Assessing Impact on Quality Attributes and SDLC Activities (Accepted in ICSA 2021) January 2021 DOI: 10.13140/RG.2.2.20190.66886/1.

 [6] The Talavera Manifesto for Quantum Software Engineering and Programming. http://ceur-ws.org/Vol-2561/paper0.pdf. 2020

 [9] Peterssen, G. (2021). QPath, an accelerator of commercial quantum software development, https://www.quantumpath.es/index.php/2020/11/26/qpath_accelerator/

 [10] Peterssen, G. (2021). QPath, a (very) useful platform for the emerging quantum software business. https://www.quantumpath.es/index.php/2020/12/02/qpath_useful_platform/

 [11] Piattini, M. (2020).  QPath helps secure investment and accelerates the adoption of quantum applications. https://www.quantumpath.es/index.php/2020/11/16/qpath_help_investment/