A pesar del auge y la evolución de las tecnologías de la información (TIC) hay numerosos estudios que dicen que el uso de esta tecnología no es tan limpio como debería. Las TIC suponen el 2% de las emisiones de gases con efecto invernadero y de CO2 que sé despiden a la atmósfera de forma diaria.
Por ello es importante que los modelos de calidad de software impulsen categóricamente distintos atributos y características que garanticen la sostenibilidad sin sacrificar la calidad del producto software para ello es necesario que tanto los desarrolladores como los ingenieros de software prioricen la aplicabilidad de estas características.
Es cierto que la calidad del software depende de que tan acertado sea el producto final con los requisitos del cliente, sin embargo, la eficiencia es una medida que garantiza la calidad en gran medida debido a que esta se encarga de llevar a cabo las funcionalidades del software de una forma óptima o amena tanto para el usuario final como para el equipo de cómputo. En el modelo ISO/IEC 25010 se plantea la adecuación funcional y la eficiencia de desempeño cuyas características aplicadas al desarrollo e implementación del software sirven como eje articulador entre las tecnologías de información y la sostenibilidad, ello es posible principalmente gracias a la óptima utilización de recursos por parte del software lo cual se consigue en todas las etapas del ciclo de vida del mismo.
De acuerdo al estudio de la norma ISO/IEC 25010 se considera que una de las formas más óptimas para garantizar la sostenibilidad estipulada por la ISO es la optimización en la utilización de recursos (Requisitos no funcionales).
Básicamente es la optimización del código fuente del producto software con el objetivo de ahorrar significativamente la compilación, interpretación y procesamiento del mismo permitiendo además cumplir con los requisitos no funcionales de eficiencia y ligereza en el producto final.
Consiste en utilizar servicios de computación en la nube para alojar los servicios proporcionados o solicitados por el producto software, esto con el fin de gestionar recursos energéticos como medida principal de impacto ambiental y económico
La virtualización crea un entorno informático simulado, o virtual, en lugar de un entorno físico. A menudo, incluye versiones de hardware, sistemas operativos, dispositivos de almacenamiento, etc., generadas por un equipo.
Representa la capacidad del producto software para proporcionar funciones que satisfacen las necesidades explícitas e implícitas, cuando el producto se usa en las condiciones especificadas. Esta característica se divide en las siguientes subcaracterísticas:
Pertinencia funcional. Capacidad del producto software para proporcionar un conjunto apropiado de funciones para tareas y objetivos de usuario especificados.
Green IT & Adecuación Funcional
En relación con la capacidad de brindar las anteriores garantías al software mientras el desarrollo esté bajo el concepto del Green IT, se propone utilizar herramientas y técnicas que se enfoquen en el rendimiento de todos los ámbitos del software, del tal manera que no solo se busca que el software sea amigable con el medio ambiente, sino que también se busca que las herramientas utilizadas en el desarrollo sean igualmente amigables con este, como por ejemplo: el desarrollo en lenguajes de programación como NIM, que son altamente valorados, ya que su enorme eficiencia en el procesamiento, su rápida gestión en la memoria, sus características modernas con las cuales puede competir con lenguajes en tendencia y su capacidad de ejecución sin necesidad de una máquina virtual en los distintos sistemas operativos, tiene como consecuencia que su alto rendimiento ocupe en menos tiempo la máquina y finalmente se obtenga un menor consumo energético tanto en el desarrollo como en el software final.
Asimismo se proponen también el uso de las máquinas virtuales y la Cloud Compute que proporciona una infraestructura con menos equipos de hardware necesarios y a su vez un menor consumo energético, sin arriesgar la finalidad y las garantías del software desarrollado.
A esto también podemos añadir el uso de hardware con un consumo energético eficiente certificado, y dar una combinación de hardware y software que no solo logre reducir su consumo energético sin dejar de lado la calidad, sino que además logre reducir las emisiones de gas de efecto invernadero causadas por el alto consumo en las centrales eléctricas.
Esta característica representa el desempeño relativo a la cantidad de recursos utilizados bajo determinadas condiciones. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:
Green IT & Rendimiento
En relación con el Green IT se debe procurar utilizar pocos recursos y controlarlos. Se deben adoptar tecnologías limpias. Implementar como por ejemplo la virtualización tanto de servidores como de escritorios, código verde, almacenamiento en la nube y la optimización de los centros de datos. No se trata de limitar los recursos o la tecnología en la empresa, sino de usarla de un modo que proteja los recursos naturales.
Capacidad de dos o más sistemas o componentes para intercambiar información y/o llevar a cabo sus funciones requeridas cuando comparten el mismo entorno hardware o software. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:
En este caso un sistema distribuido podría ser la herramienta correcta, para el apoyo de Green IT, ya que con ello solo se utilizará lo necesario para una organización y todo estaría funcionando con buena compatibilidad y bajo acoplamiento.
Las nuevas tecnologías como Edge y la niebla de computación son una solución para reducir el consumo de energía. Estas tecnologías permiten la redistribución de cómputo cerca del uso, reduciendo así los costos de energía en la red. Además, que tienen centros de datos más pequeños, la energía utilizada en operaciones tales como la refrigeración y el mantenimiento se reduce en gran medida.
Datos relevantes
Uno de los grandes problemas en los sistemas distribuidos es la latencia. Esto se mejora con la implementación de tecnologías como redes 5G.
Capacidad del producto software para ser entendido, aprendido, usado y resultar atractivo para el usuario, cuando se usa bajo determinadas condiciones. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:
Green IT & Usabilidad
En la medida que un producto se dice que aplica usabilidad, su interfaz y la forma como se utiliza debe ser intuitivo y de manera sencilla con el objetivo de que el tiempo de uso sea menor y que cada actividad desarrollada sea más fácil y práctica para que el usuario deba consumir la menor cantidad de recursos computacionales aplicando las siguientes subcaracteristicas.
Green IT & Fiabilidad
En el Green IT es importante que la fiabilidad tenga como principal objetivo que el software se encuentre habilitado y disponible en ciertas condiciones, pero que en el momento que no se esté usando consuma la menor cantidad de recursos computacionales y energía posible.
La disponibilidad se pueden usar AWS Lambda es un servicio informático que permite ejecutar código sin aprovisionar ni administrar servidores. Esto quiero decir que solo se hace uso del servidor cuando se hace una petición si no se están haciendo peticiones se entra en un modo de hibernación el cual no genera tantos gastos energéticos.
Tolerancia a fallos son capacidades que ofrecen los sistemas distribuidos y los microservicios los cuales son buenas estrategias para el Green IT.
En esta medida es importante elegir bien las tecnologías a usar un ejemplo de ello puede ser el uso de los protocolos, como TCP y UDP. Donde TCP tiene soporte a fallos y UDP no, puesto que UDP lo usan para transmisión de flujos como video o audio en streaming.
Capacidad de protección de la información y los datos de manera que personas o sistemas no autorizados no puedan leerlos o modificarlos. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:
Green IT & Seguridad
Usar algoritmos que sean óptimos y saber que información cifrar y que no para que el servidor solo se use cuando sea necesario. Por ejemplo los atributos que van en el body de una petición HTTPS van cifrados, si se envían como parámetros en la URL, no lo estarían en el caso de un actualizar o eliminar los IDS, no se cifran entonces no irían en el body.
Green IT & Mantenibilidad
En el Green IT esta característica es esencial debido a que, al estar verificando constantemente todas las variantes del software tanto en su desarrollo como en la finalidad de este, brinda la capacidad de lograr alcanzar todas las políticas de calidad y los estándares del Green IT a la vez, previniendo que posibles fallos baje el rendimiento adecuado del software y termine consumiendo más recursos de los necesarios y como consecuencia tome más tiempo de procesamiento y un mayor consumo de energía en general. Por esta razón se debe utilizar tecnologías amigables con el medio ambiente (Ver al final de la página)
Green IT & Portabilidad
En relación con el Green IT el producto de software a pesar de cambiar de ambiente sea de hardware, software, operacionales o de uso, no solo debe preservar su rendimiento en tiempos de proceso de trabajo, sino también que debe preservar su rendimiento en proceso de contaminación de manera íntegra. Se debe procurar manejar buenas prácticas en todo lo que haga referencia a la capacidad de adaptarse a nuevos sistemas de hardware procurando siempre minimizar el consumo energético. Y tener en cuenta la capacidad que tiene el software para ser instalado o actualizado para poder gestionar de manera óptima los recursos y la memoria física.
La computación en red es un grupo de computadores conectadas físicamente (a través de una red o con internet) para llevar a cabo conjuntamente una serie de tareas dedicadas, como el análisis de datos de comercio electrónico y la solución de un problema complejo. Los Grids son una forma de "computadora súper virtual" que resuelve una aplicación particular.
La visualización utiliza el software para imitar las características del hardware y crear un sistema informático virtual. Esto permite a las organizaciones de TI ejecutar mas de un sistema virtual, y múltiples sistemas operativas y aplicaciones, en un solo servidor.
Nim es un lenguaje de programación de sistemas compilados y estéticamente tipificado. Sus principios son la eficiencia, expresividad y elegancia.
AWS Lambda le permite ejecutar código sin aprovisionar ni administrar servidores. Paga solo por el tiempo de computo que consume. Con Lambda, puede ejecutar código para casi cualquier tipo de aplicación o servicio Backend sin tener que realizar tareas de administración. Solo tiene que cargar el código y Lambda se encargara de todos lo necesario para ejecutar y escalar el código con alta disponibilidad. Puede configurar su código para que active automáticamente desde otros servicios de AWS o puede llamarlo directamente desde cualquier aplicación web o móvil.