软件中用户情感目标的捕获
2019-04-01杜萌崔淼郭辉方言
杜 萌 崔 淼 郭 辉 方 言
(宁夏大学教育学院心理系 宁夏 银川 750021)
0 引 言
随着信息技术的发展,软件成为我们生活中越来越重要的组成部分。软件需求工程(Requirements Engineering)的主要任务是了解人们想要和渴望什么,从而帮助设计师可以设计并实现一个成功的软件系统[1-2]。在这个过程中,利益相关者决定了软件功能最有效的组合,需求获取是其中的关键环节之一[3]。尽管现有的需求获取过程已经成熟,但许多软件应用让用户挣扎,甚至拒绝使用[1]。青蛙设计创始人埃斯林格说:“即使设计是优雅的和功能性的,它也不会在我们的生活中占有一席之地,除非它能在更深层次上诉诸我们的情感”[4]。人们普遍认为,一个主要的问题是软件工程师似乎只关注传统的功能和质量要求,忽略了诸如人们的情感和价值观等关键的驱动因素。越来越多的实践表明,软件的成功与否由用户的情感引发而不是软件的功能[5-7]。随着“以用户为中心”设计理念的深入人心,了解和捕捉用户在软件中的情感目标,把这些目标纳入到软件设计中变得越来越重要。软件设计中关注用户情感需求,引起了计算机科学[7]、哲学[8]、人因工程[9]和心理学[10]等多个领域研究者的关注。本研究基于国外关于软件情感目标的研究,梳理了捕获软件情感目标的重要性、障碍、发展历程与捕获的技术框架,并提出了未来发展方向。
1 情感目标的界定
情感指难以测量的主观的感觉,是人们的不同感受和心理状态,它与人更相关,而不是产品[7]。感觉(feel)价值(value)、动机(motivation)等都可以指情感,研究中使用“情感(emotion)”,因为人们总是把“情感”一词与主观的和难以测量的属性联系起来,与人的联系更加密切[11]。基于情感的定义,情感目标(emotional goal)可以定义为人的心理或精神的目标,具有内在的起源,即对于人们希望感受的社会价值或情感,称为情感目标[5,12]。Lopez-Lorca将软件中的情感目标分为个人情感目标和系统相关的情感目标[13]。前者代表了人们一般意义上的、独立于任何特定的系统的感受,后者代表了人对一个特定的软件系统的感受。Sherkata等[11]将软件中的情感目标定义为人们在使用软件系统中愿意或不愿意体会到的感觉。最近的研究认为应用程序中的非功能需求与情感目标不同[7],前者关注软件的功能,后者更关注人。例如在FaceBooKTM的社交应用中,“连接朋友的功能需求”与“感到有关系的情感目标”、“安全性的质量目标”与“安全感”不同。由于功能或非功能性能的根源可以追溯到人们的功能性或非功能性需求,所以借助Sherkata等[11]对情感目标定义,“即软件在满足用户功能性或非功能性需求的过程中,用户愿意或不愿意感受到的感觉”。越来越多的研究表明,情感目标受到人们的价值观、愿望、社会文化规范和人们在使用特定软件系统时想要体验的情绪等多种因素的影响。这些社会变量的相互作用进一步表明情感目标不能局限于即时的感官愉悦的表达,实际上更具深思熟虑性和长期性[11]。
2 定义、重要性与障碍
依据需求获取的定义,软件中用户情感目标的捕获就是进入用户大脑获取他们关于软件的情感目标[14]。软件设计是将人们的需求转变为软件陈述(表达)的过程[15]。从需求工程来看,产品设计是为了更好地满足用户的需求。而利益相关者对任何软件系统的感知将主要取决于他们对软件系统的情感反应。他们不认为软件是一种冷、硬的计算机器,他们关注软件的功能需求侧重在“软”问题上,如面向社会的需求、价值、情绪情感等[16-17]。这些重要的情感是否体现在软件设计上,往往决定了用户的真实使用行为。如果软件无法满足情感,那么功能完备的产品也不会被采纳。确定软件情感目标是帮助系统分析师给人们传递情感体验的一种方式,可以更好地优化软件系统体验,对于软件设计具有重大指导和启发意义[18]。因此,在设计软件系统时更好地理解和捕获人们的情感目标,是软件需求工程成功的关键。
但是,由于设计师、用户和情感的性质方面的因素,使得软件工程师处理情感目标并不简单。一方面,情感是人的主观属性,而不是软件的,但是软件工程师更多地考虑软件而不是人,所以识别和理解用户的情感目标有一定的难度[19]。另一方面,对于用户而言,虽然他们可以认识到自己使用软件时的情绪,却很少有人能够直接表达自己的情感,即使用户能够表达情感目标,软件工程师或设计师关于如何捕捉这些情感的知识也有限,然后将具体的需求作为设计的一部分变得更加困难[20]。而且用户的情感目标多种多样,不同软件中用户的情感目标也不尽相同,软件工程师如何找出关键的大多数用户都具有的情感目标,实现这些目标与设计的最优化组合也至关重要[11]。此外,情感和情绪理论的复杂性与模糊性,也使得它们难以转化为软件规范[19]。虽然一些情绪理论,如群体情感[21]、情感车轮[22]和情感沙漏[23]将用户情感分类,其中的一些观点可以用于考虑软件工程中的情感目标,但它们往往不适合软件系统的设计。因为它们往往假定情绪独立于用户的认知过程而操作,没有模拟人们可能同时体验多种情绪的情况,而且在日常生活中没有语境化[11]。总而言之,上面这些障碍架起情绪理论框架和软件工程之间的鸿沟。
3 发展历程
捕捉用户情感目标的研究可追溯到20世纪70年代,早期研究主要集中在产品设计领域。虽然早期情感目标在软件工程中没有被强调,但近十几年来,从满足功能性需求到提高人们的生活质量,软件系统已经发生了翻天覆地的改变。随着软件设计的不断推陈出新,在软件设计中考虑情感越来越被重视,软件中捕获到的情感目标也经历了内容从单一到具体、研究者确定到用户自生成,理论框架从简单到丰富多样的发展过程。
Hassenzahl等[24]在2001年最早把“享乐特征”作为人们的软件情感目标,他们认为享乐质量是软件系统(特别是在图形用户界面)的重要方面,它能够让人们在情感基础上创造积极的主观体验。享乐品质是一种非任务导向的品质,它可以防止产品或服务消费者厌烦和不适,并创造动机、刺激和挑战。
Ramos等[16]在2005年研究了能引起情绪的软件特征,表明了系统接受中情绪的影响。他们还分析了一个应用程序引发的负面情绪和系统接受之间的关系。虽然在价值分类方面,他们把人的软件目标分为四类,包括结构、社会、政治和象征,但他们没有提出捕获人们情感的具体指导方针。
最著名的,在设计产品中考虑人们情感的研究当属Donald Norman[6,25-26]。Norman认为人类的情感有三个主要的概念层次:内脏(感知水平)、行为(期望水平)和反思(智力水平)。内脏水平是前意识自动形成的,与产品外观如颜色和风格有关。行为水平是次意识的,与基于功能、性能、可用性的产品使用和体验相关。反思水平是有意识的,情感和认知的最高层次存在于这个层次。内脏和行为水平是关于“现在”,反思水平随着时间的推移而提高,更多的是关于使用产品所产生的“满意”和长期附着的主要原因。Miller等[7]认为与反思层面上所期望的软件属性紧密相连的情感,才应该被称为用户情感目标。尽管Norman的理论在深化人类与软件交互中的情感分析方面具有很大指导和启发,但它并没有充分考虑情感体验的具体内容[27]。现代软件工程方法未能为反射层面的设计提供系统的和可重复的支持[7]。
Palacios等[28]在2011年使用“情感网格”(The Affect Grid)来理解情绪对软件需求的影响。情感网格由罗素在1989年提出,包括快乐和觉醒两个维度。用户的情绪评估是通过情感网格来进行的。情绪评估围绕“你对这个需求定义有什么感想?”展开,并且在网格中的某处放置一个复选标记。Palacios等认为情感是在建立需求稳定性中必须考虑的因素,了解利益相关者的情感包括理解这些需求定义的可靠性和稳定性[28]。该理论只规定了情感的维度,没有具体规定用户情感是什么,灵活性较高,而且随着需求的演变,评估可以不断地进行,这些评估提供了可追踪的利益相关者的情绪状态,在需求工程的不同阶段,情绪网格也能聚焦需求和情绪的平行演变进程[28]。
Thew等[17]在2017年回顾了与利益相关者价值观理解有关的不同问题,并提出了利益相关者的价值观、动机和情感的分类(VME)。其中,价值观包括信任、合作、道德/伦理、创造创新、美学、安全、个性特征、动机和信念态度9个类别,动机包括权利、个人财富、成就、自尊、同伴自尊、自我效能感、好奇心vs.学习、社交性和利他主义9个类别,情感包括恐惧、快乐、焦虑、挫折、厌恶、抑郁6个类别。虽然Thew和Sutcliffe提出了价值观的分类法,但是没有提出解决价值冲突的建议或措施。
Sherkata等[11]在2018年基于情绪的认知评价理论与情感依恋模型提出了情感依恋框架EAF(Emotional Attachment Framework),帮助系统分析员了解人们情感目标背后的潜在驱动力。情感依恋(Emotional Attachment )指的是“人们与软件系统体验的情感关系的强度”[29]。Sherkata等[11]认为识别这些情感依恋源将有助于更好地理解人们的情感需求,这些情感依恋源决定人们是将软件系统作为一个心爱的工具还是忍受、拒绝或永远不使用它。Mugge等[29]提出了四类用于创建产品情感依附的源,分别是自我表达、联结、快乐和记忆:(1) 自我表达(Self-expresion):如果产品能表现出用户的个人身份,用户就会更喜欢该产品,包括理想自我和将自己与别人区别开的公共自我。例如,某款软件教育社会有关气候变化的事宜,用户或许会因为该软件表达了自己是一个环境友好的人,从而对它产生情感依恋[30]。(2) 联结(Affiliation):如果产品是能形成人们社会身份的平台,用户会对产品产生情感上的依恋[5,31]。(3) 愉悦(Pleasure):如果产品能够提供感官愉悦和愉悦活动,它会引起用户的情感依恋。愉悦包括身体愉悦,社交愉悦和思想愉悦。(4) 记忆(Memories):如果一个软件系统可以帮助人们想起过去特定的场合、重要的人物、创造的人格感,传达文化的宗教意义或引起怀旧的感情,它可能会引起人们的情感依恋。该理论没有直接表明用户的情感目标是什么,而是从人们的深层情感驱动力入手,挖掘用户关于软件的关键情感目标,简单灵活,适用性广,准确性更高。
软件中情感目标的发展历程,汇总如表1所示。
表1 软件中情感目标的发展历程
4 技术框架
捕获用户情感目标是软件需求工程的关键一环。借鉴其他学科的技术,已有研究者们采用伦理学[32]、民族志[33]、价值敏感[34]和情感依恋[11]等多种方法技术,来捕获软件设计中用户的情感目标。
4.1 伦理学技术
虽然在软件工程中如何处理人们的情感目标的研究有限,Mumford使用伦理学技术最先强调了捕获人们情感需求的重要性[32]。伦理学技术主要是研究者通过自然观察与问卷调查捕获用户的情感目标。伦理学的最为根本的对象是人性,也就是挖掘人内心深处的欲望,是一种对于自己的心理进行观察的内省法与体验法,具有深刻性,所以能更好地挖掘用户的真实情感需求[35]。但它是一种基于自然观察和问卷调查的技术,所以灵活性较差、耗时耗力。
4.2 民族志技术
另一种被广泛应用于捕获人们软件目标的技术是民族志(Ethnography)。民族志最早起源于人类学,最基本的方法是参与观察和深度访谈,已经被用于解决软件工程中的一系列问题[33]。在软件工程领域,系统分析员参与观察特定社会空间里人们的行为、互动和关系等,以了解人们的软件情感目标[33]。例如,Martin等[36]通过观察俄罗斯厨房的冰箱贴,发现俄罗斯女人因为社会封闭感到不友好和疏远,她们内心深处渴望自由和表达,于是设计了一款专门尊重和倾听俄罗斯女性的在线社区——Mamagazin(妈妈的店)。俄罗斯妈妈一致将它评为“最吸引人的网站”。Yu[37]通过提出i*模型符号试图模拟软件目标,如“可信赖的”、“灵活的”、“最小的入侵”或“正常的生活方式”。然而,i*的主要贡献是其作为建模语言的能力而不是捕获技术。
民族志技术是一种接近社会现象的现实的方式,它旨在产生完整的社会账户,可以识别、探索和链接表面上似乎彼此之间几乎没有联系的社会现象,也不需要直接提出问题来捕捉人们的软件目标[33]。但是,民族志技术产出的质量完全取决于民族志专家知识储备、洞察力和技能水平等。在软件目标捕获的过程中,没有相应地指导方针。所以该技术的生态效度难保证,结果难以推广。
4.3 价值敏感视角
在人机交互领域,Friedman 和 Kahn提出了价值敏感(Value-sensitive)的设计方法来捕获人类价值[34]。价值敏感设计是将人的价值观、行为方式和技术设计过程关联起来,将人的价值观内嵌于技术人工物之中,使技术人工物符合人的价值观和行为方式[38]。采用这种方法,可以将公认的道德价值观可操作化并纳入到软件设计中。在该技术中,用户场景(User Scenarios)和故事板(Storyboards)常被用于捕获人们对开发的软件系统或原型系统的感觉。设计中的用户场景最早由Carroll提出[39]。强调以用户场景为中心,在交互设计过程中采用场景描述的方法,结合观察法与访谈法,更好地帮助产品设计师发现用户在场景中的随机化需求[40-41]。故事板是以图文的形式创建用户使用场景的故事板,用户通过反思各个场景的方面,提醒系统设计师应该注意哪些发面,从而帮助设计师更好地挖掘用户对产品的需求与感受[42]。
Friedman 和 Kahn的技术并没有提出任何捕获人们的软件目标(例如需求工程过程中的价值和情感)的指导方法,也没有明确的方法来确定利益相关者,对于实证手段和概念研究整合的方法上,价值敏感设计也是模糊的[38]。Friedman 和 Kahn的想法随后由 Cockton等发展,他们开发了价值地图技术(The Worth Maps Technique),通过明确设计与人类价值之间的关联来帮助设计[43]。他们开发了两个支持“以价值为中心”设计的非正式描述来捕捉人们情绪(feel)和情感(emotion),分别是组织领域材料的价值板和简化价值地图结构的用户体验框架。此外,有些研究虽然没有概述一个完整的和可重复的技术,但也提出了一些捕获特定类型情绪情感的建议。例如,Komssi等[44]提出将用户过程整合到路线图中。文献[45]基于社会心理活动理论及其对人类情境的分析视角,提出了捕获用户需求的框架。
4.4 情感依恋框架
尽管有许多方法成功地应用于软件需求的获取,但没有提出一个系统的和可重复的过程来捕获和理解人们对软件开发的情感目标。Sherkata等在情感依恋框架的基础之上,提出了由过程模型(Process Model)来理解与捕捉以人为中心的软件系统中用户的情感目标[11]。将适当地通过定性、定量或混合方法(如访谈、调查、观察、焦点小组等)搜集到的数据进行如下的过程模型(Process Model)分析,主要分为三步。第一步发现情感关注(Emotion Concerns),即分析数据并提取与人们情感目标相关的信息。第二步获取情感目标,将消极转化为积极的情感,并将多个情感关注导致的相似的情感目标合并,最终输出一个独特的情感目标列表。第三步形成情感目标轮廓EGP(Emotion Concerns Profiles)。EGP包含情感目标的总结、与情感目标相关的EAP中的关键情感驱动力和情感目标优先权3个部分。因为用户故事(User Stories)是软件工程领域常用的表示高层需求的方法。Sherkata等采用用户采用“作为一种<用户类型>,我想要<情感关注>,让我感受到<情感目标>”的故事形式表示用户的情感目标。
利用EAF的阶组分类法性质可以给出强烈的情感目标重叠和冲突的迹象,有助于发现用户的关键情感,也有助于系统分析者用相同的来源来巩固情感目标,以避免需求工程过程中的混乱[11]。最后的输出结果可用于现有软件工程技术的输入形式呈现,方便将推导过程加入到最终需求规范中[11]。但该方法中有关情绪关注的计算只是简单的加减,没有考虑用户的情感程度(例如,我有点想被关注,和我非常想被关注)。以后的应用可以借鉴文本情感分析的方法,利用程度副词、否定词等对搜集到的数据进行程度上的加权,更精确地表示用户的关键情感目标。此外,该方法对于小样本数据更有效,对于大数据的分析存在人工成本高、效率低等缺点。
软件中捕获情感目标的技术框架,汇总如表2所示。
表2 软件中捕获情感目标的技术框架
5 结 语
用户情感的理解与捕获是软件需求工程成功的关键。由于软件设计师多考虑软件功能,人们的情绪情感复杂多样、各不相同和情感理论的模糊性复杂性等因素,使得软件设计师在捕获用户情感目标方面困难重重。一方面,从单一的“享乐”到挖掘情感目标背后的驱动力,软件设计中捕获到的情感目标也经历了内容从单一到具体、研究者确定到用户自生成,理论框架从简单到丰富多样的发展。另一方面,研究者已经从伦理学、民族志、价值敏感和情感依恋等多个视角开发出了捕获软件设计中用户情感目标的技术框架。在软件设计中捕获用户的情感目标取得了诸多研究成果,但是这些理论与技术仍有诸多不足。不过从现有的研究结果来看,这些理论和技术存在较大潜力,对于指导软件设计师进行软件设计有重大意义,未来也需要我们拓展和使用这些理论与方法开展软件设计与研究。
考虑软件系统与人的情感之间的关系,理解和捕获人的情感需求必须并将它们整合到软件需求工程中,成为了软件系统设计的重要环节[11]。在未来的研究与实践过程中,研究者和软件设计师应该依据软件的具体情况,选择合适的情感捕获理论与框架,或者采用多种理论相结合的方法来更准确地理解用户情感目标。针对已有方法存在诸多纰漏,研究者们应该开发更加简单和行之有效的软件情感目标捕获技术,甚至将现有的方法整合,提供系统的方法来了解和捕获用户的软件情感目标。此外,虽然目前的捕获方法多种多样,但是如何将这些情感目标加入到软件设计规范中,将情感目标转化为软件原型或软件系统仍需进一步研究。例如,Miller等[7]在2015年依据发现情感目标,优化设计了新的应急系统原型。还有,情绪情感具有跨文化差异[6,46],软件情感目标也可能不是一成不变的,情感目标的跨时间和跨文化的差异有待进一步研究。