技术开发 频道

软件隐喻的本质与模式

  【IT168 专稿】

  1.引言

  隐喻思维具有普遍性,是人类认知得以深化的前提之一,隐喻是丰富人类语言的有效手段。

  然而,一直以来,对于隐喻的讨论主要限于语言学和修辞学,从而将隐喻狭隘化,局限化,使得隐喻在其他领域中的作用未能得到彰显。美国语言学家莱考夫认为,隐喻不是语言的表面现象,而是一种深层的认知机制,它组建了我们的思维,形成了我们对世界的判断,使语言结构化、系统化,从而具有巨大的生产力。

  这从本质上说明了隐喻的深层涵义,即对研究对象的认知能力。在软件开发过程中,我们就是要从纷繁复杂的需求问题域、设计问题域、实现问题域中进行有效地认知,并给予启发和思考,从而深刻地理解软件开发的过程,理清软件问题域的脉络,以寻求合理的解决方案。

  2.软件隐喻的概念与本质

  隐喻Metaphor一词源于希腊语metephora,其字源meta的意思是“超越”,而pherein的意思则是“传送”,即“意义的转换”。古希腊思想家亚里士多德对隐喻的定义是:“将属于另一事物的名称用来指称某一事物。”这主要属于修辞格研究的范畴。而莱考夫与约翰逊则突破了该范畴,将其延伸到认知的研究,他们认为:“隐喻的本质是以另一事物和经验来理解和经历一件事或经验。”在语言学中,从认知角度解释隐喻的论点通常被称为认知隐喻,它强调从人类的思维高度来分析隐喻的认知功能。

  在软件领域中,隐喻并非简单地用一个名词对软件事物进行类比,它还包含了对类比事物之间的体验与分析,不仅要找出两者之间的类同之处,还要借助人们对隐喻事物的现有理解,通过我们已经熟悉的活动,将软件开发过程联系起来,从而帮助我们更好地认知软件问题域。因此,软件隐喻的本质是一种认知隐喻。我们可以通过在日常生活中无意识获得的基本隐喻系统,在软件开发过程中,受到关联性的启发和影响,使得主观经验和感觉经验相互匹配,然后通过概念融合而形成具有启示意义和指导意义的软件隐喻。这正是软件隐喻的工作机制。

  此外,莱考夫还将隐喻划分为三大类:空间方位性隐喻、实体隐喻和结构隐喻。其中,结构隐喻总是以具体喻抽象,借助已知事物与现象去认知其更深层或新的事物与现象。从这个角度来讲,软件隐喻则属于一种结构隐喻。

  3.软件隐喻模式

  如果我们认为“所有的隐喻都是建立在两个不同事物的连接之上,如此一来,只要我们有时间的话,我们几乎就可以创造出许许多多数也数不尽的隐喻。” 确实如此。即使计算机科学的发展不过仅有数十年的历史,却同样拥有着所有学科中最为丰富多彩的语言。在软件开发过程中,我们会碰到种类繁多的软件隐喻,例如臭虫(bug)、菜单(menu)、视窗(windows);架构(architecture)、服务(service)、对象(object);黑盒(black box)与白盒(white box);瀑布(waterfall)软件模型、迭代(iterative)软件模型……这些软件隐喻无一不是从日常生活或其他科学领域中借鉴而来,根据我们原有的认知,实现一种类比的定义,并逐步发展为软件领域的固有概念。

0
相关文章