Catálogo de directrices de sostenibilidad para soportar el desarrollo y operación de software sostenible desde la ingeniería de requisitos

Catalog of sustainability guidelines to support sustainable software development and operation from requirements engineering

Rogelio Fernando Hernández Alarcón
Universidad de Murcia, España
Begoña Moros Valle
Universidad de Murcia, España
Joaquín Nicolás Ros
Universidad de Murcia, España

Revista de Investigación en Tecnologías de la Información

SEICIT

ISSN-e: 2387-0893

Periodicidad: Bianual

vol. 12, núm. 27, Esp., 2024

editorial@riti.es

Recepción: mayo 30, 2024

Aprobación: julio 23, 2024



DOI: https://doi.org/10.36825/RITI.12.27.005

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial 4.0 Internacional.

Resumen: La sostenibilidad constituye uno de los grandes retos de la sociedad actual, en particular la sostenibilidad de las TIC y más concretamente del software. Los ingenieros de requisitos necesitan directrices para abordar con éxito la sostenibilidad en los proyectos de software. Con este objetivo se diseña CRETS4DevOps, un método concebido para gestionar los requisitos en entornos DevOps y que promueve la sostenibilidad, especialmente en su dimensión técnica. CRETS4DevOps incorpora un catálogo de requisitos de sostenibilidad, que ayuda en la reutilización del conocimiento experto para abordar la gestión de atributos de calidad del software que redundan en la sostenibilidad: modularidad, escalabilidad, flexibilidad, reusabilidad, mantenibilidad, fiabilidad, seguridad, interoperabilidad y eficiencia. Este catálogo puede asistir tanto en el desarrollo y operación del software como en una auditoría de sostenibilidad. Actualmente se está desarrollando una herramienta de soporte a CRETS4DevOps, como plug in para Microsoft Azure DevOps.

Palabras clave: Sostenibilidad, Sostenibilidad Técnica, Catálogo de Requisitos, Reutilización de Requisitos, CRETS4DevOps.

Abstract: Sustainability constitutes one of the major challenges of today's society, in particular the sustainability of ICTs and more specifically of software. Requirements engineers need guidelines to successfully address sustainability in software projects. With this goal in mind, the CRETS4DevOps method has been designed to manage requirements in DevOps environments while promoting sustainability, especially technical sustainability. CRETS4DevOps encompasses a catalog of sustainability requirements, which helps in the reuse of expert knowledge in order to address the management of software quality attributes that result in sustainability, namely: modularity, scalability, flexibility, reusability, maintainability, reliability, security, interoperability and efficiency. This catalog is intended to assist practitioners both in software development and operation as well as in a sustainability audit. A tool to support CRETS4DevOps is currently being developed as a plug in for Microsoft Azure DevOps.

Keywords: Sustainability, Technical Sustainability, Requirements Catalog, Requirements Reuse, CRETS4DevOps.

1. Introducción

La sostenibilidad se ha convertido en un concepto central para abordar desafíos globales como los relacionados con el cambio climático, incluyendo la eficiencia energética, el uso de materiales y desechos y la reducción de emisiones de CO2 [1, 2]. La sostenibilidad se define tradicionalmente como la capacidad de perdurar sin comprometer las generaciones futuras, y en muchas ocasiones se ha equiparado solamente con temas medioambientales, pero actualmente existe un consenso en que requiere la consideración simultánea de los recursos medioambientales, del bienestar social e individual, de la prosperidad económica y de la viabilidad a largo plazo de la infraestructura técnica [3]. Debido a la dependencia de la sociedad actual de la tecnología y, en particular de los sistemas intensivos en software, numerosos estudios revelan que el sector TIC (Tecnologías de la Información y las Comunicaciones) tiene un impacto nada desdeñable en el medio ambiente [4]. Por tanto, los ingenieros de software deberían tener en cuenta los requisitos de sostenibilidad desde las primeras etapas del ciclo de vida para mitigar los efectos del desarrollo y operación del software [5]. No obstante, los ingenieros de software encuentran dificultades a la hora de abordar la sostenibilidad en sus proyectos principalmente por dos motivos: (1) ausencia de estándares oficiales que la incluyan; y (2) carencia de guías que les ayuden [4]. El uso de catálogos de requisitos de sostenibilidad [6] podría ser una estrategia que contribuya a disponer de estas guías. El catálogo de requisitos recopila la experiencia de los expertos en sostenibilidad y hace explícitos los aspectos de sostenibilidad que los ingenieros tienen que tener en cuenta. El punto de partida es la definición de requisitos de sostenibilidad que sirvan para especificar el comportamiento del sistema (por ejemplo, requisitos que reduzcan el consumo de energía de un sistema), así como para influir en el comportamiento de los usuarios [7].

Para que el uso del catálogo de requisitos sea efectivo debe integrarse en un proceso de desarrollo de software. En la propuesta presentada por Hernández et al. [8] se describe CRETS4DevOps (Continuous Requirements Engineering and Technical Sustainability for DevOps), un método diseñado para gestionar los requisitos que promueven la dimensión técnica de la sostenibilidad en entornos DevOps. El propósito de esta nueva contribución es presentar el catálogo de requisitos de sostenibilidad utilizado en CRETS4DevOps, explicando su estructura y contenido. Con este catálogo se pretende proporcionar un artefacto útil que permita a los ingenieros de requisitos no solo comprender de forma sencilla los conceptos fundamentales de la sostenibilidad, sino también llevarlos a la práctica de manera efectiva. Al adoptar y seguir estos requisitos, las organizaciones software pueden contribuir de manera significativa a la sostenibilidad, asegurando su viabilidad y éxito a largo plazo en un entorno global cada vez más consciente de la importancia de la sostenibilidad.

2. Estado del arte

2.1. Requisitos de sostenibilidad en la dimensión técnica

Existe una comprensión limitada de cómo los profesionales del software perciben la sostenibilidad y de cómo el diseño sostenible puede integrarse en el proceso de ingeniería de software, tanto en el desarrollo como en la operación del software. El diseño y la auditoría basados en la sostenibilidad como una cualidad del software siguen siendo pocos conocidos, lo que dificulta la adopción en la industria de prácticas de diseño sostenible en la ingeniería de software [5].

El análisis de requisitos debe considerarse un paso clave en cualquier proyecto de software. A través de este análisis, el ingeniero de requisitos podrá identificar, cuantificar y priorizar los requisitos de sostenibilidad, asegurando que estos se integren de manera efectiva en el diseño y desarrollo del sistema [5, 9, 10, 11]. Hernández et al. [12] han señalado que los enfoques actuales de IR en el contexto de DevOps no abordan explícitamente la sostenibilidad. Esto se debe, en parte, a un entendimiento limitado del concepto y de la importancia de la sostenibilidad dentro de la comunidad dedicada a la IR [13], a pesar de que existen propuestas en este campo que proponen guías para su integración [14, 15].

La sostenibilidad se debe implementar desde una perspectiva integral y no sólo en el sentido del software, la tecnología verde y los requisitos funcionales para mejorar la sostenibilidad medioambiental. Esto significa considerar la sostenibilidad desde múltiples perspectivas, asegurando que los sistemas no solo sean eficientes y amables con el medio ambiente, sino también duraderos y capaces de evolucionar de acuerdo con las necesidades futuras [16]. Para diseñar requisitos de sostenibilidad técnica se deben incluir requisitos de no obsolescencia, así como las características de calidad tradicionales de mantenibilidad, soportabilidad, fiabilidad y portabilidad, que conducen a la longevidad de un sistema. De acuerdo con Karita et al. [5] los requisitos de calidad del software soportan el desarrollo de software sostenible y se corresponden con requisitos de la dimensión técnica. No obstante, no existe un consenso sobre si la sostenibilidad debe considerarse un atributo de calidad del producto software o no: de hecho, actualmente no forma parte de estándares de calidad como el ISO 25010, aunque algunos autores como Calero et al. [17] han propuesto una ampliación del estándar para incluirla. Además, la eficiencia, especialmente la eficiencia energética y la suficiencia del hardware, también deben formar parte de los requisitos de sostenibilidad técnica [18]. Otros aspectos importantes a tener en cuenta en la dimensión técnica son la continuidad, durabilidad, seguridad, usabilidad, escalabilidad, buenas prácticas, evolución del sistema, optimización y uso de código abierto.

2.2. CRETS4DevOps

CRETS4DevOps [8] es un método para la gestión de requisitos continua enfocado a promover la dimensión técnica de la sostenibilidad en entornos DevOps. Los elementos que constituyen CRETS4DevOps se pueden integrar en diferentes métodos de desarrollo ágil, como por ejemplo Scrum. CRETS4DevOps propone combinar las prácticas de IR (las tradicionales y las ágiles) para paliar: (1) el problema de requisitos no explícitos en las especificaciones, al confiar en la comunicación directa entre los interesados (stakeholders), en lugar de apoyarse en la documentación [19]; y (2) las limitaciones de las historias de usuario para la especificación de requisitos [20]. CRETS4DevOps promueve la retroalimentación e integración continua de requisitos, otorgando a los interesados la capacidad de analizar y evaluar el progreso del proyecto en las diferentes etapas de su desarrollo alineado a los requisitos.

Siguiendo la analogía de la filosofía de DevOps, poniendo de relieve el enfoque de continuidad, las actividades de CRETS4DevOps se representan en un bucle infinito de elicitación, análisis, especificación, validación, integración continua de requisitos, comunicación continua, retroalimentación continua de requisitos y gestión continua de requisitos. Un aspecto importante en esta propuesta es la reutilización de requisitos, en concreto de los requisitos de sostenibilidad de la dimensión técnica. El soporte a la reutilización se propone mediante el uso de catálogos de requisitos reutilizables de sostenibilidad. Dado que los requisitos se suelen documentar en lenguaje natural en la industria [21], nuestra propuesta antepone esta aproximación en lugar de otras basadas en un lenguaje de dominio, ontologías o modelos iStar. El uso de catálogos de requisitos reutilizables de sostenibilidad permite cubrir la ausencia de expertos en sostenibilidad en los equipos de desarrollo [9]. La integración continua de requisitos a lo largo del proceso, asistida por el ingeniero de requisitos, permite mantener en todo momento la visión global del sistema [8]. Para que la aplicación de CRETS4DevOps sea efectiva requiere soporte automatizado. Por ello, se está desarrollando un plug in en la aplicación Azure DevOps (Figura 1), que permita la gestión y explotación del catálogo de requisitos de sostenibilidad.

3. Materiales y métodos

La metodología que se ha seguido en esta investigación ha consistido en sucesivas revisiones de la literatura sobre Green IT, cada vez más específicas, de la siguiente manera: (1) La primera revisión de la literatura tuvo como objetivo identificar y conocer las áreas en las que se pueden aplicar los conceptos de sostenibilidad a las TIC, siguiendo las dimensiones del Manifiesto de Kalskrona [22], y se decidió focalizar la investigación en torno a la sostenibilidad técnica, que está íntimamente relacionada con los contextos DevOps de desarrollo y operación del software en los que se centra el método CRETS4DevOps; (2) En una segunda etapa se decidió utilizar los atributos de calidad del software para estructurar en categorías el catálogo de sostenibilidad técnica, en línea con Moreira et al. [6]; (3) En una tercera fase se realizó una revisión más profunda de la literatura para identificar las principales fuentes para cada categoría de la estructura del catálogo.

El punto de entrada para la primera revisión de literatura fue el trabajo Introduction to Green in Software Engineering de Calero y Piattini [23]. Otros trabajos utilizados como punto de entrada fueron los estudios de caso sobre Green IT desarrollados por Penzenstadler y Venters [24] y por Capra et al. [25].

Los requisitos se desarrollaron utilizando el modelo de referencia de requisitos de la metodología CREST4DEVOPS. La herramienta utilizada para elaborar el documento de requisitos ha sido Microsoft Word 365, mientras que Mendeley fue la herramienta utilizada para gestionar la información bibliográfica. El catálogo se especificó utilizando Azure DevOps en tanto se desarrolla un plugin para CRESTS4DEVOPS.

4. Resultados

Como resultado se propone un catálogo de requisitos de sostenibilidad que busca contribuir al desarrollo de software sostenible proporcionando guías a los equipos de desarrollo en la dimensión técnica de la sostenibilidad. Las pautas y buenas prácticas recogidas en el catálogo pueden servir de guía para la sostenibilidad en el desarrollo y operación del software y para la auditoría de sostenibilidad, ayudando a que el producto o servicio software perdure de manera sostenible en el tiempo. Nótese que no es obligatorio aplicar todos los requisitos definidos en el catálogo: la selección de requisitos dependerá del proyecto a desarrollar.

El catálogo de requisitos de sostenibilidad está estructurado en categorías que se corresponden con los atributos de calidad del producto software, de la siguiente forma:

  1. 1. Modularidad: se refiere a la capacidad de un sistema a ser diseñado por módulos que sean independientes entre sí, lo que a menudo proporciona flexibilidad y posibilidad de utilizarlo de diversas maneras en el proyecto en desarrollo con un impacto mínimo en otros componentes [6, 26].
  2. 2. Escalabilidad: implica la capacidad de gestionar un mayor volumen de datos o usuarios a medida que el proyecto en desarrollo crece y se expande [27].
  3. 3. Flexibilidad: se refiere a la capacidad de adaptarse a cambios en los requisitos del negocio o del usuario sin necesidad de reescribir el código del proyecto en desarrollo [26, 28].
  4. 4. Reusabilidad: el sistema debe ser diseñado por componentes para ser utilizados en otros proyectos [26, 27].
  5. 5. Mantenibilidad: se refiere a cómo mantener el proyecto en el tiempo y actualizarlo a medida que surjan nuevos requisitos [6, 29].
  6. 6. Fiabilidad: se relaciona con la capacidad del sistema para funcionar sin errores durante un periodo de tiempo, y a la recuperación rápida en caso de fallos [6, 27, 30].
  7. 7. Seguridad: este atributo de calidad es de crucial importancia, ya que garantiza que el producto final no solo ofrezca seguridad, sino que también resguarde de manera proactiva la información personal y los datos sensibles del usuario contra cualquier amenaza potencial. La seguridad sostiene que deben integrar medidas de seguridad robustas para proteger la integridad, confidencialidad y disponibilidad de la información [6, 29].
  8. 8. Interoperabilidad: garantiza que el sistema desarrollado debe ser capaz de trabajar con otros sistemas y tecnologías [6, 26].
  9. 9. Eficiencia: se centra en el usuario es la capacidad de realizar tareas en un tiempo razonable y con un consumo de recursos aceptable [26, 30].

Todas las categorías del catálogo tienen una estructura escalonada, donde existen requisitos hijo que se refinan a partir de requisitos padre. En algunos casos es necesario un atributo Justificación para eliminar cualquier incertidumbre que pueda surgir durante la lectura del requisito. Independientemente del formato que tenga la categoría, todo requisito tiene un atributo Discusión, en el cual se justifica su relación (contradictoria o no) con otros requisitos o con aspectos que puedan estar relacionados con la sostenibilidad, usabilidad, accesibilidad, etc. En la Figura 1 se muestra el catálogo de requisitos de sostenibilidad en la aplicación Azure DevOps, a través del plug in en desarrollo. El contenido del catálogo se detalla a continuación, una categoría por cada atributo de calidad.

Soporte automatizado mediante un plug in para Microsoft Azure.
Figura 1.
Soporte automatizado mediante un plug in para Microsoft Azure.

4.1. Modularidad

Los requisitos contenidos en esta categoría describen un diseño modular del servicio o infraestructura que permite la ampliación o reducción del sistema de manera eficiente, adaptándose a las necesidades cambiantes sin requerir una reestructuración completa. La modularidad permite la reutilización de componentes en diferentes sistemas o proyectos, optimizando los recursos, lo cual es fundamental para la sostenibilidad al minimizar la necesidad de producir nuevos componentes y perdurar en el tiempo. Permite actualizaciones específicas en lugar de reemplazar sistemas completos, se pueden reducir significativamente los costos a lo largo del ciclo de vida del producto, dando cabida a sistemas flexibles, eficientes y fáciles de mantener, prolongando su vida útil y reduciendo el impacto ambiental.

4.1.1. Requisitos de modularidad

4.2. Escalabilidad

La escalabilidad es el grado en que el software puede adaptarse al crecimiento horizontal, es decir la capacidad de distribuir o expandir a más servidores o nodos para balancear la carga de los procesos dentro de un sistema, mientras que el crecimiento vertical implica mejorar la capacidad de un solo servidor o sistema para manejar más carga de trabajo, lo cual se logra mediante la adición de recursos como CPU, memoria y almacenamiento a un servidor existente [27].

4.2.1. Requisitos de escalabilidad

4.3. Flexibilidad

La flexibilidad se puede utilizar en contextos de la especificación inicial de requisitos, permitiendo ajustes y refinamientos conforme al avance del proyecto. Esto es especialmente útil en entornos ágiles, donde los requisitos pueden evolucionar rápidamente en respuesta a la retroalimentación de los interesados.

4.3.1. Requisitos de flexibilidad

4.4. Reusabilidad

La reusabilidad es el grado en el que el software puede reutilizarse en otras aplicaciones sin necesidad de modificar su escritura, permitiendo una mayor eficiencia en el desarrollo de nuevos proyectos, lo que permite reducir costos, minimizar errores y acelerar el tiempo en el desarrollo.

4.4.1. Requisitos de reusabilidad

4.5. Mantenibilidad

Es importante garantizar el mantenimiento de un sistema a lo largo de su ciclo de vida, permitiendo que se realicen actualizaciones, correcciones de errores y mejoras de manera eficientes. Un sistema mantenible es fácil de comprender y modificar, lo que reduce el tiempo de mantenimiento. Esto permite prolongar la vida útil de un sistema, además de mejorar su rendimiento y confiabilidad.

4.5.1. Requisitos de mantenibilidad.

4.6. Fiabilidad

Conjunto de atributos que influyen en la capacidad del software para mantener su nivel de rendimiento en las condiciones establecidas durante un periodo de tiempo determinado. Esto incluye la capacidad del software para funcionar correctamente y de forma consistente sin fallos, garantizando que puede manejar las cargas de trabajo.

4.6.1. Requisitos de fiabilidad

4.7. Seguridad

Es un requisito fundamental, ya que garantiza que los sistemas y datos estén protegidos contra accesos no autorizados, vulnerabilidades y amenazas externas e internas. Se debe garantizar la confidencialidad, integridad y disponibilidad de la información junto con los recursos tecnológicos.

4.7.1. Requisitos de seguridad

4.8. Interoperabilidad

La interoperabilidad garantiza que el sistema en desarrollo sea capaz de trabajar con otros sistemas y tecnologías de manera eficiente, sin problemas, facilitando la integración. A su vez permite al sistema evolucionar y adaptarse a medida que los requisitos del negocio y las tecnologías cambian.

4.8.1. Requisitos de interoperabilidad

4.9. Eficiencia

Se centra en la capacidad de realizar tareas en un tiempo razonable y con un consumo de recursos aceptable, garantizando una experiencia de usuario eficiente y satisfactoria. Esto implica que el software debe estar optimizado para responder rápidamente a las interacciones del usuario, minimizando los tiempos de espera y evitando el uso excesivo de recursos del sistema.

4.9.1. Requisitos de eficiencia

5. Conclusiones

CRETS4DevOps es un método en curso diseñado para gestionar requisitos de sostenibilidad en la dimensión técnica, combinando prácticas tradicionales y ágiles de IR en el marco de la IR continua. Este enfoque se apoya en la reutilización de requisitos para fomentar la sostenibilidad técnica, con lo cual surge la necesidad de un catálogo reutilizable de requisitos para la sostenibilidad técnica, que puede ayudar en la integración de la sostenibilidad en proyectos de software aún en ausencia de un experto en sostenibilidad. El catálogo permite potenciar la innovación y la capacidad de otorgar una ventaja en el desarrollo de aplicaciones que promuevan la sostenibilidad, al contar con una estructura clara de requisitos que promueve la toma de decisiones consensuadas. Actualmente se sigue con los trabajos para finalizar el desarrollo de la aplicación en Azure DevOps que soporte el catálogo de requisitos de sostenibilidad. CRETS4DevOps se pretende validar en un caso real en la industria o, en su defecto, mediante una encuesta a expertos en DevOps.

6. Agradecimientos

Esta investigación forma parte del proyecto OASSIS-UMU (PID2021-122554OB-C32) y de la Red de Excelencia en Calidad y Sostenibilidad del Software (RED2022-134656-T), ambos financiados por el Ministerio de Ciencia, Innovación y Universidades y la Agencia Estatal de Investigación de España (/10.13039/501100011033/) y por el Fondo Europeo de Desarrollo Regional (FEDER), A way to make Europe.

7. Referencias

[1] Penzenstadler, B. (2013). Towards a definition of sustainability in and for software engineering. ACM Symposium on Applied Computing, Coimbra, Portugal. https://doi.org/10.1145/2480362.2480585

[2] Silveira, C., Santos, V., Reis, L., Mamede, H. (2022). CRESustain: Approach to Include Sustainability and Creativity in Requirements Engineering. Journal of Engineering Research and Sciences, 1 (8), 27–34. https://doi.org/10.55708/js0108004

[3] Becker, C., Betz, S., Chitchyan, R., Duboc, L. (2016). Requirements: The key to sustainability. IEEE Software, 33 (1), 56–65. https://doi.org/10.1109/MS.2015.158

[4] Noman, H., Mahoto, N., Bhatti, S., Rajab, A., Shaikh, A. (2024). Towards sustainable software systems: A software sustainability analysis framework. Information and Software Technology, 169, 107411. https://doi.org/10.1016/J.INFSOF.2024.107411

[5] Karita, L., Mourão, B. C., Machado, I. (2022). Towards a common understanding of sustainable software development. XXXVI Brazilian Symposium on Software Engineering (SBES), Virtual Event Brazil. https://doi.org/10.1145/3555228.3555236

[6] Moreira, A., Araújo, J., Gralha, C., Goulão, M., Brito, I. S., Albuquerque, D. (2023). A social and technical sustainability requirements catalogue. Data & Knowledge Engineering, 143, 1-16. https://doi.org/10.1016/j.datak.2022.102107

[7] Venters, C. C., Seyff, N., Becker, C., Betz, S., Chitchyan, R., Duboc, L., Mcintyre, D., Penzenstadler, B. (2017). Characterising sustainability requirements: A new species red herring or just an odd fish? IEEE/ACM 39th International Conference on Software Engineering in Society Track (ICSE-SEIS). Buenos Aires, Argentina. https://doi.org/10.1109/ICSE-SEIS.2017.2

[8] Hernández Alarcón, R. F., Moros Valle, B., Nicolás Ros, J. (2024). Método de gestión de requisitos para promover la sostenibilidad en DevOps: CRETS4DevOps. XXVII Ibero-American Conference on Software Engineering (CIbSE). Curitiba, Brasil.

[9] Mahaux, M., Heymans, P., Saval, G. (2011). Discovering sustainability requirements: An experience report. 17th International Working Conference (REFSQ). Essen Germany. https://doi.org/10.1007/978-3-642-19858-8_3

[10] Alsaqaf, W., Daneva, M., Wieringa, R. (2019). Quality requirements challenges in the context of large-scale distributed agile: An empirical study. Information and Software Technology., 110 (2019), 39–55. https://doi.org/10.1016/j.infsof.2019.01.009

[11] Penzenstadler, B., Femmer, H. (2013). A Generic Model for Sustainability with Process- and Product-specific Instances. Workshop on Green in Software Engineering and Green by Software Engineering. Fukuoka, Japan. https://doi.org/10.1145/2451605.2451609

[12] Hernández, R., Moros, B., Nicolás, J. (2023). Requirements management in DevOps environments: a multivocal mapping study. Requirements Engineering, 28, 317-346. https://doi.org/10.1007/s00766-023-00396-w

[13] Seyff, N., Betz, S., Groher, I., Stade, M., Chitchyan, R., Duboc, L., Penzenstadler, B. (2018). Crowd-focused semi-automated requirements engineering for evolution towards sustainability. IEEE 26th International Requirements Engineering Conference (RE). Banff, Canada. https://doi.org/10.1109/RE.2018.00-23

[14] Dewi Saputri, T. R., Lee, S. W. (2021). Integrated framework for incorporating sustainability design in software engineering life-cycle: An empirical study. Information Software Technology, 129. https://doi.org/10.1016/j.infsof.2020.106407

[15] Oyedeji, S., Seffah, A., Penzenstadler, B. (2018). A catalogue supporting software sustainability design. Sustainability, 10 (7), 1-30. https://doi.org/10.3390/su10072296

[16] Christoph, B. (2014). Sustainability and longevity: Two sides of the same quality? Third International Workshop on Requirements Engineering for Sustainable Systems. Karlskrona, Sweden. https://ceur-ws.org/Vol-1216/paper1.pdf

[17] Calero, C., Moraga, M. Á., Bertoa, M. F. (2013). Towards a Software Product Sustainability Model. First Workshop on Sustainable Software for Science: Practices and Experiences. Denver, CO, USA. https://alarcos.esi.uclm.es/ALARNET2/FILES/Congresos/2013-VSSSPE-Calero.pdf

[18] Raturi, A., Penzenstadler, B., Tomlinson, B., Richardson, D. (2014). Developing a sustainability non-functional requirements framework. 3rd International Workshop Green Sustainable Software. Hyderabad, India. https://doi.org/10.1145/2593743.2593744

[19] Moreira, A., Schneider, K. (2022). Editorial. Requirements Engineering, 27 (4), 403–404. https://doi.org/10.1007/s00766-022-00392-6

[20] Kasauli, R., Knauss, E., Horkoff, J., Liebel, G., de Oliveira Neto, F. G. (2021). Requirements engineering challenges and practices in large-scale agile system development. Journal of Systems and Software, 172, 1-26. https://doi.org/10.1016/j.jss.2020.110851

[21] Franch, X., Palomares, C., Quer, C., Chatzipetrou, P., Gorschek, T. (2023). The state-of-practice in requirements specification: an extended interview study at 12 companies. Requirements Engineering, 28 (3), 377–409. https://doi.org/10.1007/s00766-023-00399-7

[22] Becker, C., Chitchyan, R., Duboc, L., Easterbrook, S., Penzenstadler, B., Seyff, N., Venters, C. C. (2015). Sustainability Design and Software: The Karlskrona Manifesto. IEEE/ACM 37th IEEE International Conference on Software Engineering. Florence, Italy. https://doi.org/10.1109/ICSE.2015.179

[23] Calero, C., Piattini, M. (2015). Introduction to green in software engineering. En C. Calero, M. Piattini (Eds.) Software Engineering (pp. 3–27). Springer International Publishing. https://doi.org/10.1007/978-3-319-08581-4_1

[24] Penzenstadler, B., Duboc, L., Venters, C. C., Betz, S., Seyff, N., Wnuk, K., Chitchyan, R., Easterbrook, S. M., Becker, C. (2017). Software engineering for sustainability. Digital Technology and Sustainability: Engaging the Paradox.

[25] Capra, E., Francalanci, C., Slaughter, S. A. (2012). Is software “green”? Application development environments and energy efficiency in open source applications. Information and Software Technology, 54 (1), 60–71. https://doi.org/10.1016/j.infsof.2011.07.005

[26] Condori-Fernandez, N., Lago, P. (2018). Characterizing the contribution of quality requirements to software sustainability. Journal of Systems and Software, 137, 289–305. https://doi.org/10.1016/j.jss.2017.12.005

[27] Venters, C. C., Jay, C., Lau, L. M. S., Griffiths, M. K., Holmes, V., Ward, R. R., Austin, J., Dibsdale, C. E., Xu, J. (2014). Software sustainability: The modern tower of babel. Third International Workshop on Requirements Engineering for Sustainable Systems. Karlskrona, Sweden. https://ceurspt.wikidata.dbis.rwth-aachen.de/Vol-1216/paper2.html

[28] Condori-Fernandez, N., Lago, P., Luaces, M. R., Places, Á. S. (2020). An action research for improving the sustainability assessment framework instruments. Sustainability, 12 (4), 1–25. https://doi.org/10.3390/su12041682

[29] Condori-Fernandez, N., Lago, P. (2019). Towards a software sustainability-quality model: Insights from a multi-case study. 13th International Conference on Research Challenges in Information Science (RCIS). Brussels, Belgium. https://doi.org/10.1109/RCIS.2019.8877084

[30] Koçak, S. A., Alptekin, G. I., Bener, A. B. (2014). Evaluation of software product quality attributes and environmental attributes using ANP decision framework. Third International Workshop on Requirements Engineering for Sustainable Systems (RE4SuSy). Karlskrona, Sweden. https://ceur-ws.org/Vol-1216/paper7.pdf

Modelo de publicación sin fines de lucro para conservar la naturaleza académica y abierta de la comunicación científica
HTML generado a partir de XML-JATS4R