杜 萌 崔 淼 郭 輝 方 言
(寧夏大學教育學院心理系 寧夏 銀川 750021)
隨著信息技術的發展,軟件成為我們生活中越來越重要的組成部分。軟件需求工程(Requirements Engineering)的主要任務是了解人們想要和渴望什么,從而幫助設計師可以設計并實現一個成功的軟件系統[1-2]。在這個過程中,利益相關者決定了軟件功能最有效的組合,需求獲取是其中的關鍵環節之一[3]。盡管現有的需求獲取過程已經成熟,但許多軟件應用讓用戶掙扎,甚至拒絕使用[1]。青蛙設計創始人埃斯林格說:“即使設計是優雅的和功能性的,它也不會在我們的生活中占有一席之地,除非它能在更深層次上訴諸我們的情感”[4]。人們普遍認為,一個主要的問題是軟件工程師似乎只關注傳統的功能和質量要求,忽略了諸如人們的情感和價值觀等關鍵的驅動因素。越來越多的實踐表明,軟件的成功與否由用戶的情感引發而不是軟件的功能[5-7]。隨著“以用戶為中心”設計理念的深入人心,了解和捕捉用戶在軟件中的情感目標,把這些目標納入到軟件設計中變得越來越重要。軟件設計中關注用戶情感需求,引起了計算機科學[7]、哲學[8]、人因工程[9]和心理學[10]等多個領域研究者的關注。本研究基于國外關于軟件情感目標的研究,梳理了捕獲軟件情感目標的重要性、障礙、發展歷程與捕獲的技術框架,并提出了未來發展方向。
情感指難以測量的主觀的感覺,是人們的不同感受和心理狀態,它與人更相關,而不是產品[7]。感覺(feel)價值(value)、動機(motivation)等都可以指情感,研究中使用“情感(emotion)”,因為人們總是把“情感”一詞與主觀的和難以測量的屬性聯系起來,與人的聯系更加密切[11]。基于情感的定義,情感目標(emotional goal)可以定義為人的心理或精神的目標,具有內在的起源,即對于人們希望感受的社會價值或情感,稱為情感目標[5,12]。Lopez-Lorca將軟件中的情感目標分為個人情感目標和系統相關的情感目標[13]。前者代表了人們一般意義上的、獨立于任何特定的系統的感受,后者代表了人對一個特定的軟件系統的感受。Sherkata等[11]將軟件中的情感目標定義為人們在使用軟件系統中愿意或不愿意體會到的感覺。最近的研究認為應用程序中的非功能需求與情感目標不同[7],前者關注軟件的功能,后者更關注人。例如在FaceBooKTM的社交應用中,“連接朋友的功能需求”與“感到有關系的情感目標”、“安全性的質量目標”與“安全感”不同。由于功能或非功能性能的根源可以追溯到人們的功能性或非功能性需求,所以借助Sherkata等[11]對情感目標定義,“即軟件在滿足用戶功能性或非功能性需求的過程中,用戶愿意或不愿意感受到的感覺”。越來越多的研究表明,情感目標受到人們的價值觀、愿望、社會文化規范和人們在使用特定軟件系統時想要體驗的情緒等多種因素的影響。這些社會變量的相互作用進一步表明情感目標不能局限于即時的感官愉悅的表達,實際上更具深思熟慮性和長期性[11]。
依據需求獲取的定義,軟件中用戶情感目標的捕獲就是進入用戶大腦獲取他們關于軟件的情感目標[14]。軟件設計是將人們的需求轉變為軟件陳述(表達)的過程[15]。從需求工程來看,產品設計是為了更好地滿足用戶的需求。而利益相關者對任何軟件系統的感知將主要取決于他們對軟件系統的情感反應。他們不認為軟件是一種冷、硬的計算機器,他們關注軟件的功能需求側重在“軟”問題上,如面向社會的需求、價值、情緒情感等[16-17]。這些重要的情感是否體現在軟件設計上,往往決定了用戶的真實使用行為。如果軟件無法滿足情感,那么功能完備的產品也不會被采納。確定軟件情感目標是幫助系統分析師給人們傳遞情感體驗的一種方式,可以更好地優化軟件系統體驗,對于軟件設計具有重大指導和啟發意義[18]。因此,在設計軟件系統時更好地理解和捕獲人們的情感目標,是軟件需求工程成功的關鍵。
但是,由于設計師、用戶和情感的性質方面的因素,使得軟件工程師處理情感目標并不簡單。一方面,情感是人的主觀屬性,而不是軟件的,但是軟件工程師更多地考慮軟件而不是人,所以識別和理解用戶的情感目標有一定的難度[19]。另一方面,對于用戶而言,雖然他們可以認識到自己使用軟件時的情緒,卻很少有人能夠直接表達自己的情感,即使用戶能夠表達情感目標,軟件工程師或設計師關于如何捕捉這些情感的知識也有限,然后將具體的需求作為設計的一部分變得更加困難[20]。而且用戶的情感目標多種多樣,不同軟件中用戶的情感目標也不盡相同,軟件工程師如何找出關鍵的大多數用戶都具有的情感目標,實現這些目標與設計的最優化組合也至關重要[11]。此外,情感和情緒理論的復雜性與模糊性,也使得它們難以轉化為軟件規范[19]。雖然一些情緒理論,如群體情感[21]、情感車輪[22]和情感沙漏[23]將用戶情感分類,其中的一些觀點可以用于考慮軟件工程中的情感目標,但它們往往不適合軟件系統的設計。因為它們往往假定情緒獨立于用戶的認知過程而操作,沒有模擬人們可能同時體驗多種情緒的情況,而且在日常生活中沒有語境化[11]。總而言之,上面這些障礙架起情緒理論框架和軟件工程之間的鴻溝。
捕捉用戶情感目標的研究可追溯到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 軟件中情感目標的發展歷程
捕獲用戶情感目標是軟件需求工程的關鍵一環。借鑒其他學科的技術,已有研究者們采用倫理學[32]、民族志[33]、價值敏感[34]和情感依戀[11]等多種方法技術,來捕獲軟件設計中用戶的情感目標。
雖然在軟件工程中如何處理人們的情感目標的研究有限,Mumford使用倫理學技術最先強調了捕獲人們情感需求的重要性[32]。倫理學技術主要是研究者通過自然觀察與問卷調查捕獲用戶的情感目標。倫理學的最為根本的對象是人性,也就是挖掘人內心深處的欲望,是一種對于自己的心理進行觀察的內省法與體驗法,具有深刻性,所以能更好地挖掘用戶的真實情感需求[35]。但它是一種基于自然觀察和問卷調查的技術,所以靈活性較差、耗時耗力。
另一種被廣泛應用于捕獲人們軟件目標的技術是民族志(Ethnography)。民族志最早起源于人類學,最基本的方法是參與觀察和深度訪談,已經被用于解決軟件工程中的一系列問題[33]。在軟件工程領域,系統分析員參與觀察特定社會空間里人們的行為、互動和關系等,以了解人們的軟件情感目標[33]。例如,Martin等[36]通過觀察俄羅斯廚房的冰箱貼,發現俄羅斯女人因為社會封閉感到不友好和疏遠,她們內心深處渴望自由和表達,于是設計了一款專門尊重和傾聽俄羅斯女性的在線社區——Mamagazin(媽媽的店)。俄羅斯媽媽一致將它評為“最吸引人的網站”。Yu[37]通過提出i*模型符號試圖模擬軟件目標,如“可信賴的”、“靈活的”、“最小的入侵”或“正常的生活方式”。然而,i*的主要貢獻是其作為建模語言的能力而不是捕獲技術。
民族志技術是一種接近社會現象的現實的方式,它旨在產生完整的社會賬戶,可以識別、探索和鏈接表面上似乎彼此之間幾乎沒有聯系的社會現象,也不需要直接提出問題來捕捉人們的軟件目標[33]。但是,民族志技術產出的質量完全取決于民族志專家知識儲備、洞察力和技能水平等。在軟件目標捕獲的過程中,沒有相應地指導方針。所以該技術的生態效度難保證,結果難以推廣。
在人機交互領域,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]基于社會心理活動理論及其對人類情境的分析視角,提出了捕獲用戶需求的框架。
盡管有許多方法成功地應用于軟件需求的獲取,但沒有提出一個系統的和可重復的過程來捕獲和理解人們對軟件開發的情感目標。Sherkata等在情感依戀框架的基礎之上,提出了由過程模型(Process Model)來理解與捕捉以人為中心的軟件系統中用戶的情感目標[11]。將適當地通過定性、定量或混合方法(如訪談、調查、觀察、焦點小組等)搜集到的數據進行如下的過程模型(Process Model)分析,主要分為三步。第一步發現情感關注(Emotion Concerns),即分析數據并提取與人們情感目標相關的信息。第二步獲取情感目標,將消極轉化為積極的情感,并將多個情感關注導致的相似的情感目標合并,最終輸出一個獨特的情感目標列表。第三步形成情感目標輪廓EGP(Emotion Concerns Profiles)。EGP包含情感目標的總結、與情感目標相關的EAP中的關鍵情感驅動力和情感目標優先權3個部分。因為用戶故事(User Stories)是軟件工程領域常用的表示高層需求的方法。Sherkata等采用用戶采用“作為一種<用戶類型>,我想要<情感關注>,讓我感受到<情感目標>”的故事形式表示用戶的情感目標。
利用EAF的階組分類法性質可以給出強烈的情感目標重疊和沖突的跡象,有助于發現用戶的關鍵情感,也有助于系統分析者用相同的來源來鞏固情感目標,以避免需求工程過程中的混亂[11]。最后的輸出結果可用于現有軟件工程技術的輸入形式呈現,方便將推導過程加入到最終需求規范中[11]。但該方法中有關情緒關注的計算只是簡單的加減,沒有考慮用戶的情感程度(例如,我有點想被關注,和我非常想被關注)。以后的應用可以借鑒文本情感分析的方法,利用程度副詞、否定詞等對搜集到的數據進行程度上的加權,更精確地表示用戶的關鍵情感目標。此外,該方法對于小樣本數據更有效,對于大數據的分析存在人工成本高、效率低等缺點。
軟件中捕獲情感目標的技術框架,匯總如表2所示。

表2 軟件中捕獲情感目標的技術框架
用戶情感的理解與捕獲是軟件需求工程成功的關鍵。由于軟件設計師多考慮軟件功能,人們的情緒情感復雜多樣、各不相同和情感理論的模糊性復雜性等因素,使得軟件設計師在捕獲用戶情感目標方面困難重重。一方面,從單一的“享樂”到挖掘情感目標背后的驅動力,軟件設計中捕獲到的情感目標也經歷了內容從單一到具體、研究者確定到用戶自生成,理論框架從簡單到豐富多樣的發展。另一方面,研究者已經從倫理學、民族志、價值敏感和情感依戀等多個視角開發出了捕獲軟件設計中用戶情感目標的技術框架。在軟件設計中捕獲用戶的情感目標取得了諸多研究成果,但是這些理論與技術仍有諸多不足。不過從現有的研究結果來看,這些理論和技術存在較大潛力,對于指導軟件設計師進行軟件設計有重大意義,未來也需要我們拓展和使用這些理論與方法開展軟件設計與研究。
考慮軟件系統與人的情感之間的關系,理解和捕獲人的情感需求必須并將它們整合到軟件需求工程中,成為了軟件系統設計的重要環節[11]。在未來的研究與實踐過程中,研究者和軟件設計師應該依據軟件的具體情況,選擇合適的情感捕獲理論與框架,或者采用多種理論相結合的方法來更準確地理解用戶情感目標。針對已有方法存在諸多紕漏,研究者們應該開發更加簡單和行之有效的軟件情感目標捕獲技術,甚至將現有的方法整合,提供系統的方法來了解和捕獲用戶的軟件情感目標。此外,雖然目前的捕獲方法多種多樣,但是如何將這些情感目標加入到軟件設計規范中,將情感目標轉化為軟件原型或軟件系統仍需進一步研究。例如,Miller等[7]在2015年依據發現情感目標,優化設計了新的應急系統原型。還有,情緒情感具有跨文化差異[6,46],軟件情感目標也可能不是一成不變的,情感目標的跨時間和跨文化的差異有待進一步研究。