Software systems are a significant contributor to global sustainability concerns, demanding that environmental, social, technical, and economic factors be systematically addressed from the initial requirements engineering phase. Although existing research provides various sustainability requirements (SRs), these contributions are often fragmented, specific to certain dimensions, or limited to particular application domains, resulting in a critical lack of a unified, comprehensive taxonomy for the software engineering community. To address this gap, this research conducts a Systematic Literature Review (SLR) to extract and organize sustainability requirements from the state-of-the-art. The primary contribution is a comprehensive taxonomy of SRs across the four dimensions of sustainability (environmental, technical, social, and economic). For each identified category, we provide clear definitions, associated metrics, and measures. Furthermore, we depict a correlation matrix that projects the positive and negative influences (synergies and conflicts) among categories across different dimensions. This systematized reference assists both software developers and researchers in effectively formulating, managing, and reconciling trade-offs within sustainable software development.
academic- 논문 ID: 2510.08990
- 제목: Towards a Taxonomy of Sustainability Requirements for Software Design
- 저자: Mandira Roy (Ca' Foscari University), Novarun Deb (University of Calgary), Nabendu Chaki (University of Calcutta), Agostino Cortesi (Ca' Foscari University)
- 분류: cs.SE (소프트웨어 공학)
- 발표 시간/학회: 2025 ACM Conference
- 논문 링크: https://arxiv.org/abs/2510.08990
소프트웨어 시스템은 전 지구적 지속가능성 문제의 중요한 기여자이며, 초기 요구사항 공학 단계부터 환경, 사회, 기술 및 경제 요소를 체계적으로 해결할 필요가 있다. 기존 연구에서 다양한 지속가능성 요구사항(SRs)을 제시하고 있지만, 이러한 기여들은 종종 단편화되어 있으며, 특정 차원에 국한되거나 특정 응용 분야에 제한되어 있어 소프트웨어 공학 커뮤니티에 통일되고 포괄적인 분류체계이 심각하게 부족한 상황이다. 이러한 격차를 해결하기 위해 본 연구는 체계적 문헌 검토(SLR)를 수행하여 최신 지속가능성 요구사항을 추출하고 조직화했다. 주요 기여는 지속가능성의 네 가지 차원(환경, 기술, 사회 및 경제)에 걸친 포괄적인 SRs 분류체계이다. 식별된 각 범주에 대해 명확한 정의, 관련 지표 및 측정 방법을 제시한다. 또한 서로 다른 차원 범주 간의 긍정적 및 부정적 영향(시너지 및 충돌)을 보여주는 관련성 행렬을 제시한다.
- 핵심 문제: 소프트웨어 시스템이 전 지구적 지속가능성 문제에 미치는 영향이 증가하고 있으나, 체계적인 지속가능성 요구사항 분류체계가 부재함
- 현황 분석: 기존 지속가능성 요구사항 연구의 문제점:
- 연구 성과가 단편화되어 있고 통일된 표준이 부재함
- 특정 지속가능성 차원(예: 환경 차원만 중점)에 국한되는 경향
- 특정 응용 분야에 특화되어 있어 일반성 부족
- 체계적인 조직화 및 분류 부재
- 생명주기 영향: 소프트웨어의 지속가능성 발자국은 요구사항 공학부터 배포 및 사용까지 전체 생명주기에 걸쳐 있음
- 설계 결정의 중요성: 소프트웨어 시스템의 지속가능성은 그 특성과 설계 선택에 크게 좌우됨
- 산업 수요: 조직들이 이러한 필요성을 인식하고 있으나 구체적인 지원과 지식이 부족함
본 연구는 특정 소프트웨어 시스템을 심층 분석하여 지속가능성 문제를 식별하고 해결하는 방향을 채택하며, 소프트웨어 공학 커뮤니티에 체계화된 참고 프레임워크를 제공하는 것을 목표로 함.
- 체계적 문헌 검토: 지속가능성 요구사항 분류체계를 구축하기 위한 포괄적인 SLR 수행
- 사차원 분류체계: 지속가능성의 네 가지 차원(환경, 기술, 사회 및 경제)에 대한 포괄적인 범주 집합 식별 (정의, 지표 및 측정 포함)
- 관련성 행렬: 서로 다른 지속가능성 차원 범주 간의 관련성 행렬 구축으로 지속가능성 문제 간의 긍정적 또는 부정적 영향 관계 표시
- 오픈소스 자원: 정기적으로 업데이트 및 확장 가능한 오픈소스 분류체계 제공
입력: 다양한 분야 및 차원의 지속가능성 요구사항 관련 문헌
출력: 범주, 지표, 측정 및 관련성 관계를 포함한 구조화된 지속가능성 요구사항 분류체계
제약 조건: 소프트웨어 공학 및 컴퓨터 과학 분야의 동료 검토 문헌으로 제한
- RQ-1: 서로 다른 분야에서 지속가능성 요구사항을 어떻게 정의하고 특성화하는가?
- RQ-2: 기존 연구에서 가장 자주 식별되는 지속가능성 요구사항 범주는 무엇인가?
- RQ-3: 서로 다른 분야의 SRs 간의 공통점과 차이점은 무엇인가?
삼층 검색 전략 채택:
- 1단계: 기본 키워드 "sustainability" AND "requirements"
- 2단계: 차원 관련 어휘 추가 (Social, Economic 등)
- 3단계: 특정 응용 분야 추가 (클라우드 컴퓨팅, 지능형 시스템, 의료 등)
포함 기준:
- 각 쿼리의 상위 100개 기록
- 동료 검토된 저널, 학회 및 워크숍 논문
- 영문 문헌
- 컴퓨터 과학 또는 소프트웨어 공학 분야
- 소프트웨어 시스템 지속가능성 요구사항을 명확히 언급
배제 기준:
- 2010년 이전 발표 연구
- 지속가능성을 광범위하게 논의하지만 요구사항을 명확히 다루지 않는 연구
- 동료 검토되지 않은 연구
- 요구사항 추출: 선정된 각 논문을 수동으로 분석하여 SRs 및 그 차원과 범주 추출
- AI 보조: AI 도구를 사용하여 지식 추출 지원
- 분류 조직화: 추출된 요구사항을 차원 및 범주별로 조직화
- 중복 제거: 분류체계가 상세하고 중복이 없음을 보장
- 문헌 수량: SLR 방법을 통해 네 개의 주요 데이터베이스에서 수집
- 검색 결과 통계:
- 기본 검색: Scopus 2,863편, IEEE 18편, ACM 15,822편, Wiley 110편
- 사회 차원: Scopus 886편, IEEE 1,850편, ACM 22,285편, Wiley 4,735편
- 기술 차원: Scopus 170편, IEEE 2,241편, ACM 33,088편, Wiley 4,735편
- 경제 차원: Scopus 6,321편, IEEE 2,897편, ACM 14,807편, Wiley 0편
- 데이터셋 준비: 각 차원 범주 및 그 정의를 포함하는 데이터셋 구축
- LLM 생성: GPT3.5 및 Gemini 2.5 Pro를 사용하여 관련성 행렬 생성
- 전문가 검토: 각 저자가 생성된 관련성에 대한 동의 여부를 독립적으로 표시
- 결과 통합: 각 저자의 결과를 단일 워크시트로 통합
- 그룹 토론: 모든 저자의 지식과 투표를 통해 최종 관련성 행렬 결정
- 탄소 발자국: 소프트웨어 탄소 강도 지표
- 에너지 소비: 에너지 효율, 실행 시간 효율, CPU 강도, 메모리 사용 등
- 전자 폐기물: 재사용 불가능한 모듈 수량
- 코드 지속가능성: CPU 사용, 메모리 사용, 코드 냄새
- 자원 관리: 에너지 절약 데이터 관리, 물 발자국
- 지속성: 기술 진화, 기능 진화
- 장수성: 평균 고장 간격 시간, 평균 사용 수명
- 수리 가능성: 응집도 및 결합도, 추적 가능성 문서화 정도
- 기능 팽창: 사용자의 각 기능에 대한 참여도 백분율
- 보안 문제: 알려진 취약점 수량
- 디지털 포용성: 지원 언어 수량, 인구통계
- 공정한 접근: 최종 사용자 데이터 가용성, 수평 및 수직 공정성
- 윤리 문제: 편향 정도
- 고객 사회 가치: 긍정적 피드백 수량
- 사회 공학: 복지
- 사용자 오류 보호: 복구 시간
- 순환 경제: 코드 또는 서비스 재사용 백분율, 공유 인프라 수량
- 저렴성: 접근 비용
- 비용 효율성: 개발 비용 (인력 수, 시간 및 노력)
- 소프트웨어 프로세스 진화 지식 자본: 고객 자본 가치, 시장 수요 가치 등
- 탄소 발자국↓ ⟷ 에너지 소비↓: 낮은 에너지 사용은 온실가스 배출 감소
- 에너지 소비↓ ⟷ 코드 지속가능성↑: 최적화된 코드는 계산 능력 및 에너지 필요성 감소
- 전자 폐기물↓ ⟷ 순환 경제↑: 재사용 및 재활용은 폐기물 양 및 독성 감소
- 디지털 포용성↑ ⟷ 공정한 접근↑: 접근 장벽 제거는 더 많은 사람들의 디지털 시스템 사용 지원
- 기능 팽창↑ ⟷ 에너지 소비↑: 더 많은 기능은 자원 사용 및 에너지 필요성 증가
- 기능 팽창↑ ⟷ 장수성↓: 과부하 시스템은 더 빠르게 구식화됨
- 보안 문제↑ ⟷ 저렴성↓: 더 강한 보안은 비용 증가 가능성
- 디지털 포용성↑ ⟷ 비용 효율성↓: 포용성은 개발 비용 증가 가능성
- 차원 균형성: 네 가지 지속가능성 차원 모두 풍부한 범주 및 지표 포함
- 측정 다양성: 지표 유형에는 수치형, 백분율형 및 정성형 포함
- 관련성 복잡성: 서로 다른 차원 간에 복잡한 정상관 및 부정상관 관계 존재
- 상황 의존성: 관련성 관계는 구체적인 상황 또는 시나리오에 따라 변할 수 있음
- 프레임워크 및 방법론: ShapeRE 이론 프레임워크, 목표 기반 시나리오 모델링 방법 등
- 특정 차원 연구: 환경, 사회 또는 경제 단일 차원에 중점을 두는 연구
- 분야 특화 응용: 전자학습 시스템, 의료 응용, 지능형 시스템 등 특정 분야의 지속가능성 요구사항
- 실증 연구: 언어 상대성 이론이 SR 식별에 미치는 영향 연구 등
- 포괄성: 단일 차원이 아닌 네 가지 지속가능성 차원 모두 포함
- 체계성: SLR 방법을 통해 기존 지식을 체계적으로 조직화
- 실용성: 이론 프레임워크만이 아닌 구체적인 지표 및 측정 방법 제시
- 개방성: 오픈소스 분류체계로 지속적인 업데이트 및 확장 지원
- 분류체계 수립: 네 가지 지속가능성 차원을 포괄하는 통합 분류체계 성공적으로 구축
- 관련성 규명: 관련성 행렬을 통해 서로 다른 지속가능성 범주 간의 복잡한 관계 규명
- 실무 지도: 소프트웨어 개발자에게 구체적인 지속가능성 요구사항 참고 및 트레이드오프 지도 제시
- 시간 제약: 조사 작업이 시간 제약을 받아 관련 연구의 일부를 놓칠 수 있음
- 분야 제한: 검색이 특정 분야로 제한되어 있어 완전한 커버리지 문제 가능성
- 주관성: 관련성 행렬의 결정은 전문가 판단에 기반하여 일정한 주관성 존재
- 상황 의존성: 관련성 관계는 구체적인 제품 상황에 따라 변할 수 있음
- 분류체계 확장: 오픈소스 분류체계의 지속적인 업데이트 및 확장
- 실증 검증: 실제 소프트웨어 프로젝트에서 분류체계의 유효성 검증
- 도구 개발: 지속가능성 요구사항 공학을 지원하는 자동화 도구 개발
- 학제간 연구: 더 많은 응용 분야 및 신흥 기술 분야로 확장
- 방법론 엄밀성: 표준 체계적 문헌 검토 방법 채택으로 연구의 과학성 및 재현성 보장
- 기여의 실용성: 구축된 분류체계는 직접적인 실무 응용 가치를 가지며 분야의 공백 해소
- 관점의 포괄성: 네 가지 지속가능성 차원을 동시에 고려하여 단일 차원 연구의 한계 극복
- 혁신성 강함: 처음으로 체계적으로 차원 간 지속가능성 요구사항 분류체계 및 관련성 분석 구축
- 개방적 공유: 연구 성과를 오픈소스로 발표하여 학술 커뮤니티의 지식 축적 촉진
- 검증 부족: 실제 프로젝트에서의 응용 검증 부재로 이론과 실무의 연결 강화 필요
- 정량 분석 제한: 관련성 분석이 주로 정성적 판단에 기반하여 정량적 통계 검증 부족
- 동적성 고려 부족: 시간 경과 및 기술 발전에 따른 지속가능성 요구사항의 동적 변화 충분히 고려하지 않음
- 도구 지원 부재: 구축된 분류체계를 적용하기 위한 구체적인 도구 또는 방법 미제공
- 학술 기여: 지속가능 소프트웨어 공학 분야에 중요한 이론적 기초 및 참고 프레임워크 제시
- 실무 가치: 소프트웨어 개발 조직에 체계적인 지속가능성 요구사항 지도 제시
- 표준화 추진: 지속가능성 요구사항 공학의 표준화 프로세스 추진에 기여
- 학제간 촉진: 소프트웨어 공학과 지속가능성 연구의 학제간 융합 촉진
- 요구사항 공학 단계: 소프트웨어 프로젝트의 요구사항 분석 및 명세 작성 단계
- 시스템 설계 단계: 아키텍처 설계 및 상세 설계에서 지속가능성 요소 고려
- 프로젝트 평가: 기존 시스템의 지속가능성 수준 평가
- 연구 참고: 지속가능 소프트웨어 공학 연구의 기초 참고 자료
- 교육 훈련: 소프트웨어 공학 교육에서 지속가능성 개념 및 실무 전수
논문은 23편의 중요 문헌을 인용하며, 주요 내용은 다음을 포함:
- Karlskrona Manifesto for green software engineering 5
- 지속가능성 요구사항 공학의 핵심 연구 4, 6, 7, 9
- 특정 분야의 지속가능성 요구사항 연구 2, 10, 16, 17
- 체계적 문헌 검토 방법론 13
- 대규모 언어 모델 기술 12, 23
종합 평가: 본 논문은 지속가능 소프트웨어 공학 분야에서 중요한 기여를 하는 고품질 연구 논문이다. 체계적 문헌 검토 방법을 통해 저자들은 포괄적인 지속가능성 요구사항 분류체계를 성공적으로 구축하여 해당 분야의 중요한 공백을 해소했다. 실증 검증 및 도구 지원 측면에서 개선의 여지가 있지만, 이론적 기여와 실무적 가치가 현저하여 지속가능 소프트웨어 공학의 발전을 추진하기 위한 중요한 기초 지원을 제공한다.