Integrando Aspectos de Sustentabilidade à Engenharia de Sistemas Camilla Bomfim1, Wesley Nunes1, Leticia Duboc1, Carina Alves2, Xavier Franch3 e Renata Gizzardi4 1 IME, Universidade do Estado do Rio de Janeiro, Brasil {camillajbomfim, aleysenun }@gmail.com,
[email protected], 2 CIN Universidade Federal de Pernambuco, Pernambuco, Brasil [email protected] 3 ESSI, Universitat Politecnica de Catalunya, España [email protected] 4 Centro de Informática Universidade Federal do Espírito SantoVitória, Brasil [email protected]es.br Resumo. Sustentabilidade é uma das principais forças motoras de nossa sociedade. Entre as muitas iniciativas para alcançar esta meta estão as de TI, que se preocupam principalmente com o consumo responsável de recursos durante o desenvolvimento e a operação de sistemas de software. Software, no entanto, é parte de um contexto mais amplo, sistemas sócio-técnicos, cujo projeto tem uma grande influência no consumo de recursos. Uma maior compreensão do papel da sustentabilidade e a incorporação deste aspecto à engenharia de sistemas sócio-técnicos pode representar uma importante contribuição para vencer este desafio. Este artigo descreve a proposta de uma pesquisa para compreender o estado-da-prática e desenvolver métodos e técnicas que deem suporte aos diferentes aspectos de sustentabilidade durante a engenharia de sistemas. Palavras-chave: sustentabilidade, engenharia de sistemas, sistemas sóciotécnicos 1 Introdução Sustentabilidade pode ser definida como "a habilidade de atender às necessidades presentes sem comprometer a habilidade de futuras gerações de satisfazer suas próprias necessidades" [1]. Esta habilidade inclui a satisfação de quatro dimensões: ambiental, social, econômica e humana [1][2]. Sustentabilidade, portanto, tem se tornado uma força propulsora da sociedade. Preocupações sobre o impacto das atividades humanas vêm aumentando e vários esforços foram iniciados globalmente, principalmente para reduzir o consumo e aumentar a eficiência energética. Com o passar dos anos, sistemas de TI se tornaram onipresentes em nossa sociedade, melhorando nossas vidas e trabalho, oferecendo conveniência e outros benefícios. Em consonância com este cenário, tais sistemas têm sido identificados como um dos ativos na busca por sustentabilidade [3]. TI normalmente se preocupa com sustentabilidade a partir de duas perspectivas: • Estes sistemas são grandes consumidores de recursos, não somente quando eles estão operando, mas também considerando todo o ciclo de vida [3]. É
estimado que a energia consumida por sistemas de TI (contando datacenters, redes e outros dispositivos baseados em computadores) alcançará cerca de 15% do consumo total até 2020 [4]. • Sistemas de TI estão no coração de todas as áreas críticas à sustentabilidade. Portanto, eles têm um papel importante em chamar a atenção e controlar o uso eficiente de recursos em uma variedade de áreas, tais como Smart Cities, domotics e exploração de recursos naturais como o petróleo. A situação atual de TI em relação à sustentabilidade pode ser definida como "criando consciência", mas ainda está longe de ser satisfatória. Grandes firmas, como Google, Microsoft, Apple, entre outras, têm sido criticadas por não priorizar projetos de datacenters com uso eficiente de energia sobre a aquisição de fontes baratas deste recurso [5]. O relacionamento entre software e sustentabilidade é ainda uma preocupação menor, muitas vezes nem sendo considerada por usuários e desenvolvedores. Engenharia de software sustentável não é um termo usado amplamente em discussões de tecnologia e responsabilidade ambiental [6]. No entanto, o tratamento de sustentabilidade a partir das perspectivas citadas é uma forma limitada de lidar com a questão. Sistemas de software são parte de um contexto mais amplo, sistemas sócio-técnicos, incluindo organizações, humanos e outros fatores. Os processos de negócio definidos por estas organizações, assim como sistemas de TI, determinam a forma como recursos são consumidos. Existem casos que ilustram o impacto que a reformulação de sistemas sócio-técnicos podem ter em sustentabilidade. Por exemplo, FedEx mudou em 2008 o seu negócio de entrega de documentos a longa distância, oferecendo aos clientes a opção de enviar eletronicamente o documento a ser entregue. Portanto, FedEX foi capaz de enviar a cópia do documento original para o escritório mais próximo do destino, imprimindo e enviando o documento localmente. Este caso ilustra como lidar com sustentabilidade pode requerer a participação de diferentes partes interessadas (stakeholders) para adaptar os processos da organização. O tratamento de sustentabilidade ao nível da engenharia de sistemas engloba não somente as mudanças tecnológicas, mas também o coração de uma organização, seus processos de negócio, e mudanças neste nível são mais difíceis de implementar. No entanto, uma pesquisa recente mostrou que a mentalidade dos CEOs está mudando: dos 750 CEOs questionados em 2010, a maioria respondeu que sustentabilidade deveria ser completamente incorporada à estratégias e operações (96%), implementada por diretorias (93%) e integradas às cadeias de suprimento (88%), um aumento de 25-35% de uma pesquisa parecida em 2007 [7]. Dado o impacto que o projeto de sistemas sócio-técnicos podem ter na sustentabilidade da sociedade, torna-se necessário incorporá-la lista dos principais requisitos não-funcionais (RNF), atribuindo-lhe um tratamento equivalente ao dispensado à outros RNF importantes, como segurança ou desempenho. Como observado por Amsel [6], é preciso encontrar formas de definir e alcançar este RNF. Esta visão é compartilhada por outros pesquisadores, ainda que de forma restrita a software, que sugerem a adaptação de técnicas existentes da engenharia de software, a criação de toolkits, a construção de uma ontologia, e a incorporação deste tipo de meta durante a engenharia de requisitos [8][9].
2 Objetivos da Pesquisa Apesar ser uma das maiores preocupações do mundo atual, sustentabilidade ainda não é satisfatoriamente compreendida ou tratada durante projetos de desenvolvimento de sistemas [9][10]. Em particular, existem alguns desafios para incorporar aspectos de sustentabilidade à engenharia de sistemas, dentre eles estão: i. O estado-da-prática sobre o tratamento de sustentabilidade durante a engenharia de sistemas ainda não é conhecido; ii. Faltam definições, políticas, métricas e padrões para sustentabilidade e formas de calcular o impacto de alternativas de satisfação destas metas no sistema resultante [9]; iii. Existem muitas alternativas a considerar em sistemas complexos, com respeito a sustentabilidade [9]; iv. Uma revisão de literatura sistemática recente [10] mostrou que existem poucas pesquisas sobre o tratamento de sustentabilidade durante a engenharia de software, que está intimamente relacionada à engenharia de sistemas [11]. Soluções existentes foram desenvolvidas para domínios específicos, não podendo ser facilmente utilizadas/adaptadas a outros domínios. Nossa pesquisa pretende avançar o estado-da-arte e o estado-da-pratica, respondendo às seguintes questões: RQ1: Qual é o estado-da-prática em relação ao tratamento de sustentabilidade durante a engenharia de sistemas? RQ2: Que aspectos de sustentabilidade são relevantes para o projeto de sistemas sócio-técnicos? RQ3: Como integrar aspectos de sustentabilidade ao processo de engenharia de sistemas? Para responder às questões acima são vislumbrados os seguintes objetivos: i. Maior compreensão/consciência por parte da indústria e comunidade acadêmica dos conceitos de sustentabilidade na engenharia de sistemas, assim como dos benefícios e impedimentos para incorporá-los ao projeto de sistemas sóciotécnicos; ii. Integração de aspectos de sustentabilidade à engenharia de sistemas através do desenvolvimento de métodos, técnicas e ferramentas que deem suporte aos diferentes aspectos de sustentabilidade em sistemas sócio-técnicos (ambiental, social, econômica e humana). 3 Contribuições Científicas Esta pesquisa ainda se encontra em suas fases iniciais. Vislumbramos a engenharia de requisitos orientada a metas e ontologia como abordagens promissoras para a incorporação de sustentabilidade na engenharia de sistemas. Abordagens de engenharia de requisitos que usam metas/agentes [12, 13, 14] facilitam o entendimento e descrição de problemas associados com estruturas de negócios, processos e seus sistemas de suporte. Em particular, o relacionamento entre agentes é uma parte importante da visão de mundo necessária para modelar sistemas sócio-técnicos. Esta abordagem pode ser especialmente útil para representar metas
referentes às quatro dimensões de sustentabilidade [1][2] e ponderar sobre o impacto destas metas na satisfação das outras metas do sistema. Ontologias vêm sendo reconhecidas como ferramentas conceituais de grande importância em ciência da computação desde o final da década de sessenta, principalmente em áreas como modelagem de dados (modelagem conceitual), inteligência artificial [15][16] e engenharia de software. Neste trabalho, pretende-se aplicar a fundamentação teórica desenvolvida na engenharia de uma ontologia no domínio da Sustentabilidade. Em uma pesquisa recente, Mahaux, Heymans and Saval [8] estendeu uma taxonomia para sustentabilidade, inicialmente proposta por Cabot et al. [9]. Ambos trabalhos usam o framework i* para representar a taxonomia e para facilitar a exploração, o entendimento e a comparação de medidas de sustentabilidade. Estas taxonomias só levam em consideração os aspectos ambientais de sustentabilidade, e ambos os autores reconhecem a necessidade de uma ontologia genérica no tema. Estes trabalhos compõem nosso ponto de partida. Com o auxílio de UFO[21], pretende-se analisar os aspectos de sustentabilidade cuidadosamente para que os conceitos pertinentes ao domínio sejam conhecidos, relacionados e, com o auxílio da ontologia, possam finalmente ficar semanticamente claros. Portanto, como contribuição, espera-se: i. Descrição do estado-da-prática em relação ao tratamento de sustentabilidade das empresas que participaram das entrevistas e questionário online, com foco nos benefícios e impedimentos percebidos e nas reais ações tomadas pelas mesmas; ii. A identificação de métodos, técnicas e ferramentas do estado-da-arte que podem ajudar a vencer os desafios identificados no item anterior; iii. Realização e divulgação de estudos de caso que investiguem a utilização da engenharia de requisitos orientada a metas/agentes para modelar metas sustentabilidade durante o desenvolvimento de sistemas e ponderar sobre o impacto das técnicas no estado-da-arte (operacionalizações) para a satisfação destas metas; iv. Descrição precisa dos principais aspectos de sustentabilidade em sistemas sóciotécnicos, através de uma ontologia. 4 Conclusões Garantir sustentabilidade é um dos maiores desafios da sociedade atual, levando ao surgimento de vários esforços globais para reduzir o impacto ambiental das atividades humanas. Dentre estes esforços encontram-se iniciativas de TI, preocupadas principalmente com o consumo de recursos durante o desenvolvimento e operação de sistemas de software [3][4]. Sistemas sócio-técnicos, que incluem os processos de negócios de organizações, também determinam o consumo de recursos e podem ser projetados de forma a satisfazer metas de sustentabilidade. É imprescindível incorporar o tratamento de sustentabilidade à engenharia destes sistemas. Para tal, é preciso definir sustentabilidade como um RNF de forma precisa e desenvolver formas de satisfazê-lo [6][8][9]. Este artigo descreve a proposta de uma pesquisa que visa investigar sustentabilidade no contexto de sistemas sócio-técnicos e desenvolver métodos e técnicas que deem suporte aos diferentes aspectos de sustentabilidade durante a engenharia de sistemas. A seguir, serão listadas as atividades já realizadas neste início da pesquisa, assim como os seguintes passos.
4 Trabalhos Futuros e em Andamento Para alcançar os objetivos descritos na Seção 2, será realizada uma pesquisa de natureza empírica e qualitativa, começando por uma investigação do estado-da-prática e a identificação de lacunas em relação ao estado-da-arte. Dada a natureza exploratória de RQ1, decidiu-se realizar um estudo baseado em entrevistas semi-estruturadas [17]. Este método é apropriado, pois permite o projeto cuidadoso do guia de entrevista com antecedência e a coleta de dados diretamente de especialistas. Um guia de entrevista consiste em um documento que lista as principais perguntas que devem ser feitas aos entrevistados para responder às questões de pesquisa. Tomando como base este documento, o entrevistador guia as perguntas, mas com flexibilidade para indagar mais quando julgar necessário, como por exemplo, para esclarecer respostas ou terminologia. Esta característica é extremamente importante para a pesquisa proposta, dada a falta de uma terminologia homogênea para sustentabilidade. Um guia foi elaborado para estas entrevistas, investigando questões como: (i) quais dimensões/aspectos de sustentabilidade são considerados durante o projeto de sistemas sócio-técnicos, (ii) quais são os benefícios e as limitações percebidos por projetistas de sistemas em relação a satisfação de metas de sustentabilidade, (iii) como as organizações avaliam a satisfação destas metas de sustentabilidade, e (iv) se as organizações conhecem/utilizam técnicas ou padrões de sustentabilidade específicos, como a avaliação do ciclo de vida (LCA) [18]. Adicionalmente, para validar o entendimento do guia, foi feita uma entrevista piloto com uma organização e será criado um glossário. Amostragem e Coleta de dados: Selecionaremos organizações com a maior variedade possível de características dentro da nossa rede de colaboradores na indústria. Visamos organizações que desenvolvem sistemas sócio-técnicos para os quais sustentabilidade é parte inerente dos processos de negócio. Organizações potenciais receberão uma carta-convite explicando o estudo e perguntando por seu interesse em participar do mesmo. Espera-se entrevistar entre 10 e 20 organizações. As entrevistas estão planejadas para durar uma hora e serão gravadas para análise subsequente. Análise dos Dados: As entrevistas serão transcritas e analisadas. Serão utilizadas as técnicas de análise de contexto [19] e análise temática [20] como base para avaliar os dados coletados. Para a análise, o seguinte procedimento será seguido: (i) leitura das transcrições e agrupamento das explicações que se referem a mesma pergunta; (ii) organização das respostas para cada pergunta em planilhas, para melhor avaliar e codificar as evidências relacionadas a cada pergunta, e (iii) todas as respostas serão analisadas e será realizada a codificação dos dados obtidos. Em paralelo às entrevistas será feita uma revisão da literatura para a subsequente identificação de lacunas entre o estado-da-arte e o estado-da-prática. Estas atividades serão importantes para responder à questão de pesquisa RQ2. Uma vez terminada esta primeira fase, o conhecimento adquirido será utilizado para abordar a questão de pesquisa RQ3, utilizando abordagens de engenharia de requisitos orientada a metas e ontologia. Agradecimentos Os autores agradecem a Birgit Penzenstadler, Claudia Alaya e Dolors Costal pelas valiosas discussões sobre este trabalho.
Referências 1. UN World Commission on Environment and Development: Report of the World Commission on Environment and Development: Our Common Future. In: United Nations Conference on Environment and Development. (1987) 2. Goodland R.: Encyclopedia of Global Environmental Change, ch. Sustainability: Human, Social, Economic and Environmental. John Wiley and Sons. (2002) 3. Tomlison, B.: Greening through IT: Information Technology for Environmental Sustainability. The MIT Press. (2010) 4. Pernici B. (coord.): What IS can do for Environmental Sustainability. In: Panel at CAiSE’11. London, United Kingdom (2011) 5. Greenpeace: How Green is your Cloud. Available at http://www.greenpeace.org/ international/Global/international/publications/climate/2012/iCoal/HowCleanisYourCloud. pdf. (2012) 6. Amsel, N.; Ibrahim, Z.; Malik, A.; Tomlinson, B.: Toward Sustainable Software Engineering. In International Conference on Software Engineering ICSE NIER Track. Honolulu, Hawaii (2011) 7. UN Global Compact; Accenture: A New Era of Sustainability UN Global Compact– Accenture CEO Study. Available at: http://www.accenture.com/us-en/Pages/insight-new- era-sustainability-summary.aspx (2010) 8. Mahaux, M.; Heymans, P.; Saval, G.: Discovering Sustainability Requirements: An Experience Report. In International Working Conference on Requirements Engineering: Foundation for Software Quality. REFSQ'11, 19-33. Essen, Germany (2011) 9. Cabot, J.; Easterbrook, S.M.; Horkoff, J., Lessard, L.; Liaskos, S.; Mazón, J.N.: Integrating sustainability in decision-making processes: A modelling strategy. In International Conference on Software Engineering ICSE Companion. pp. 207–210. IEEE. Vancouver, Canada, (2009) 10. Penzenstadler, B.; Bauer, V.; Calero C.; Franch X.: Sustainability in Software Engineering: A Systematic Literature Review for Building up a Knowledge Base. In Workshop on Enterprise-Aligned Software Engineering EASE’12. North Carolina, US (2012) 11. Pyster, A., D. Olwell, N. Hutchison, S. Enck, J. Anthony, D. Henry, and A. Squires (eds).: Guide to the Systems Engineering Body of Knowledge (SEBoK) version 1.0. Hoboken, NJ: The Trustees of the Stevens Institute of Tecnology. Available at: http://www.sebokwiki.org (2012) 12. Chung L.; Nixon B. A.; Yu E.; Mylopoulos J.: Non-Functional Requirements in Software Engineering. Kluwer Academic Publishers. (2000) 13. Lamsweerde A.: Requirements Engineering: From System Goals to UML Models to Software Specifications. Wiley (2009) 14. Yu E.; Giorgini P; Maiden N.; Mylopoulos J.: Social Modeling for Requirements Engineering. The MIT Press (2011) 15. Mealy, G.H.: Another Look at Data. In Fall Joint Computer Conference: 525–534, (AFIPS Conference Proceedings, Volume 31), Washington, DC. US (1967) 16.Hayes P.: The Naive Physics Manifesto, In Ritchie, D. (Ed.) Expert Systems in Microeletronics age. Edinburgh University Press, 242-270. (1978) 17. Robson, C.: Real World Research: A Resource for Social Scientists and Practitionerresearchers. Second Edition. Blackwell Publishers Inc. (2002) 18. ISO 14040: Environmental management - Life cycle assessment - Principles and framework, International Organisation for Standardisation (ISO), Geneva (2006) 19. Krippendorff, A.: Content Analysis. Sage Publications, London. (1980) 20. Cruzes D. S, Dybå T.: Recommended Steps for Thematic Synthesis in Software Engineering. ESEM 2011: 275-284 (2011) 21. Guizzardi, G.: Ontological Foundations for Structural Conceptual Models. PhD thesis, University of Twente, The Netherlands (2005)