Human values (e.g., pleasure, privacy, and social justice) are what a person or a society considers important. Inability to address them in software-intensive systems can result in numerous undesired consequences (e.g., financial losses) for individuals and communities. Various solutions (e.g., methodologies, techniques) are developed to help "operationalize values in software". The ultimate goal is to ensure building software (better) reflects and respects human values. In this survey, "operationalizing values" is referred to as the process of identifying human values and translating them to accessible and concrete concepts so that they can be implemented, validated, verified, and measured in software. This paper provides a deep understanding of the research landscape on operationalizing values in software engineering, covering 51 primary studies. It also presents an analysis and taxonomy of 51 solutions for operationalizing values in software engineering. Our survey reveals that most solutions attempt to help operationalize values in the early phases (requirements and design) of the software development life cycle. However, the later phases (implementation and testing) and other aspects of software development (e.g., "team organization") still need adequate consideration. We outline implications for research and practice and identify open issues and future research directions to advance this area.
翻译:人类价值(例如快乐、隐私和社会正义)是一个人或社会认为重要的人或社会认为重要的东西; 无法在软件密集型系统中解决这些价值,可能会对个人和社区造成许多不理想的后果(例如财政损失); 开发了各种解决办法(例如方法、技术),以帮助“在软件中实现价值”; 最终目标是确保建设软件(更好地)反映和尊重人类价值; 在调查中,“落实价值”是指确定人类价值并将其转化为可获取和具体的概念,以便能够在软件中实施、验证、核实和计量; 本文深入了解软件工程价值操作方面的研究前景,涵盖51项主要研究; 文件还提出了软件工程价值操作51项解决办法的分析和分类; 我们的调查表明,大多数解决办法都试图帮助在软件开发生命周期的早期阶段(需要和设计)落实价值。 然而,以后的阶段(实施和测试)以及软件开发的其他方面(例如,“Team 组织” ) 还需要充分考虑这一研究方向和今后的研究方向。