

英语原文共 20 页,剩余内容已隐藏,支付完成后下载完整资料
以理论为导向的软件工程
1介绍
在过去十多年来,循证软件工程(EBSE)越来越受到关注。Kitchenham等人在2004年发表的题为“循证软件工程”[2]的创新论文吸引了这一范式。 EBSE范式的前提是SE研究人员应进行研究,为从业者提供证据,以使他们能够就软件开发技术,方法和工具做出明智的决策。 越来越重视在软件工程中进行实证研究,这被称为“经验软件工程”,这一点由多个专门会议)和一个专业期刊(Empirical Software 工程)。许多专门会议(ISESE,1 ESEM,2 EASE3)和专业期刊(实证软件工程)都体现了这一点。尽管越来越重视软件工程的实证研究,但在软件工程方面的实践仍然远非“以证据为基础”。
组织,综合和综合实证证据,Kitchenham等[2]提出了SE研究中的系统文献综述(SLR),借鉴了循证医学建立的医学研究领域。 在SE研究中,系统文献综述正在广泛采用; SE领域的重要刊物之一(信息与软件技术(IST))明确征求SLR提交。在截至2014年2月的25个最受引用的论文中,超过一半(13)是系统文献综述或制图研究。系统评价可以成为三角测量多个数据来源(即研究)以有相当可信度回答研究问题的有效手段。
然而,随着这个强烈的经验主义的关注,我们认为我们看不到通过证据的“理论树”。 证据本身必须始终在上下文中考虑,在某种情况下进行的一项研究的结果通常不适用于其他情况。 缺少的是对理论在SE研究中的作用的清晰理解。我们已经看到了SE研究中的一些挑战:
- 对软件工程研究概念化缺乏兴趣;
- 在软件工程研究方面缺乏对什么理论的理解,而不是一致的;
- 对软件工程研究理论的目的和目标缺乏认识。
我们简单讨论一下,研究人员可能不认为有必要进行理论化,并将其视为“哲学家”的任务。这个讨论中经常出现的一个问题是软件工程是否是计算机科学或工程学科的分支[3];[4];[5]; [6];[7]。术语“软件工程”是以挑衅的方式创造的[8],部分原因是当时的SE研究人员认为他们正在做的工作不是“科学”,而是与工程类似。包括术语“工程”一词是试图吸取从业人员的兴趣,并将其纳入研究中,以便从中学习并编纂知识。实现这一目标的程度受到限制,因此很少从业人员阅读软件工程研究文章[9]。我们同意软件工程可以被认为是工程的一个分支,因为软件工程师必须拥有丰富的声音软件设计原则知识。然而,这种知识可以以关于什么构成声音设计的理论的形式来编纂,而不是什么。例如,可以将软件架构模式集合作为理论的一种形式:一些模式或架构风格比其他模式更适合于实现某些建筑品质(例如性能,弹性)。这种“理论”可以告知从业者设计或评估软件系统[10]。我们在2.1节中更详细地讨论了这一点。
其次,在SE [11]中,什么理论应该是什么样的概念是没有共同的。研究人员可能不熟悉理论化,也许是因为它不是研究培训的一部分。因此,研究人员可能对理论的组成,研究中的作用以及如何认识它们有着不同的理解。 SEMAT4计划旨在定义软件工程通用理论,可作为软件工程研究的基础。 Bourgeois [12]写道,关于行为理论,我们认为,SE研究对于一个全面的统一的一般理论来说太过于不成熟,而所谓的“中等范围”理论的发展是向SE研究成熟迈出的重要一步。默顿[13,p.38]将这些称为:
在[...]日常研究中发展[...]的小而必要的工作假设之间,以及制定统一理论的全面系统的努力。
第2.2节进一步阐述了这一点。
理论的有用性被其他学科广泛认可;毕竟,“没有一个很好的理论实用”[14],但它的重要性尚未在SE研究界广泛认可。 理论为不同研究人员提供了一个词汇来讨论一个研究课题,这有助于将研究研究纳入上下文,并将其纳入更加集中的研究课题。理论的另一个重要功能是对世界如何明确地作出解释和理解[15],这使知识转移。正如格雷戈尔指出的那样[16,p.613]:
理论是实用的,因为它们允许系统地积累知识,这种积累的知识启发了专业实践。
一些作者指出了更为成熟和成熟的学科,如物理学和社会科学,并认为SE研究也需要发展理论[17];[18];[19]; [20];[21]。第2.3节更详细地讨论了理论的作用和目的。
显然,软件工程理论的提高意识和注意力不会一夜之间。然而,我们相信,通过更好地了解理论在软件工程中的重要性和作用,社区可以慢慢地发展,采用我们所说的理论导向软件工程(TOSE)来补充EBSE。 因此,本文的目的是扩展我们早期的工作[1]如下:
提高对理论在软件工程研究中的重要性,目的和作用的认识。
在下面的第3节中,我们提出了一个改编自Brinberg和McGrath [22]的分析框架,我们称之为研究路径模式(RPS)。 RPS定义了一些代表典型研究设计的“研究路径”。这个框架可以用来更好地理解理论在一般研究中的作用。使用RPS,很明显,许多SE研究的研究并不表现出在其他领域所发现的理论,而是SE文献确实提供了许多理论碎片,它们是Weick所说的理论的产物[23]。
本文的其余部分进行如下。由于术语理论对于不同的研究人员可能意味着不同的事物[24]; [23],我们在第2节中讨论理论的本质,起源和目的。第3节介绍了研究路径模式,并通过一些例子说明了这一点。第4节使用RPS分析从不同研究角度研究的软件工程研究中的三个主题。接下来是对第5节未来软件工程研究实践的影响的讨论。
2理论:动机,定义,目的
在SE研究中,理论的使用和作用尚未得到广泛的理解和认可。 本节提供有关此主题的背景信息,并扩展了第1节中简要讨论的三个挑战的讨论。首先,2.1节概述了研究概念化的必要性和重要性。 其次是在2.2节中提出什么是(以及什么不是)构成“理论”的表述。 第2.3节总结了科学的目的和理论目标,其次是关于第2.4节中关于理论使用的SE研究中的努力的概述。
2.1概念化的重要性
软件工程是一个多学科领域,因此,研究性学习比诸如物理学等自然科学更加丰富和多样化。 物理学的大部分研究具有量化性质,采用“标准化”方法进行研究和呈现结果。 相比之下,在SE方面,研究性学习更加多样化,具有广泛的研究方法,方法和技术,包括定量和定性。 各种研究方法和技术已经从其他学科,特别是社会科学进口; 一些比其他人更普遍(调查[25],案例研究[26],接地理论[27])(民族志[28],电力网格技术[29])。
由于这种异质性,评估SE论文的科学贡献可能具有挑战性。 裁判报告中发现的一个共同点是“那又怎么样?”一篇论文可能会提出有趣的结论,但是如果没有进一步的解释或概念化,科学贡献可能不足。 杜宾[30,p。 16]表达了这样的看法:
报告和“做科学”之间的区别在于信息是为了自己的缘故而被收集的,还是用来衡量与“事物”有关的价值[...],两个或多个 这是关注的焦点。 第一个程序我们称之为描述;第二个我们称之为研究。
同样的,Suddaby [31,p。 636]观察到,接地理论(源自社会科学的研究方法,在SE研究中越来越多的吸收)的共同问题是将数据提升到概念层面的失败。Nisbett [32,p. 4]描述了早期的美索不达米亚和埃及文明如何有系统地观察,但只有希腊人通过解释他们对支持它们的原则的观察而取得了重大进展。 霍尔等人 [33]引用Robson [34]认为,“没有理论,研究可能会更容易和更快,但结果通常没有什么价值”。缺乏概念化也可能适用于中学研究,如系统文献综述 系统文献综述)。 在这种情况下,概念化可以通过综合一组所谓的初级研究的结果来完成。 Cruzes和Dybaring;[35]观察到,SLR中的发现综合通常表现不佳。
图1提出了一个概念化的连续体。虚线区分“描述”与“研究”;只是报告没有概念化的经验数据是“描述”(使用杜宾的术语)。提出概念化实证研究的报告,或只提出概念或理论的概念论文称为“研究”。当然,两者之间没有明确的界限,如虚线所示。
考虑“描述性”研究的作用是重要的,因为这个数字可能表明这些研究不是“研究”。一些作者认为,“定性描述”可以是一个有价值的最终产品,数据可以是没有任何理论或概念框架[36]。 虽然我们同意描述性研究可能是有价值的(作为研究人员,我们自己已经发表了许多描述性研究),总是有一定程度的概念化或分析,要求研究者超越一个描述,或者宣布一个起点(例如,一个框架),用于标识被研究的主题的各个方面。当没有明确的理论框架或透镜被宣布时,它仍然是隐含的,但它仍然存在。Checkland [37,p.7]指出:
如果你要参加一个变革过程,并从研究意义上学习它,那么必须事先声明知识框架,就这些知识框架来说,什么是学习将被定义... 这是超越轶事的一个条件。
报告将始终提供一些特定方式的调查结果,在编写这样一份报告时作出的决定必须受到作者偏好,兴趣或信仰的影响,因此是主观的。
雷诺兹[38,p.43]认为,除非“概念化”被明确描述,否则科学家就不能理解它,也可能不会采用它。因此,我们认为概念化是良好研究研究的一个重要方面。 概念化与理论化或建构理论的过程密切相关[23]。 我们观察到在软件工程研究中理论的作用越来越受到关注[17.18.[20]。 然而,概念化和理论建构尚未被认为与SE研究界的实证研究一样重要。 考虑到多年来的这种呼吁,这种对理论建设的缺乏关注是有点令人惊讶的。 例如,Basili和Zelkowitz [39]写道:计算科学的任何未来进展都要求经验主义与理论形成和工具开发一起发挥作用。
在类似的情况下,Broy [40,p.19]认为:工程学科必须以科学实践和理论为依据,为他们的方法辩护,为科学证据为何以及方法如何正确运作。
图2提出了一个研究周期(改编自雷曼和拉米尔[41]),说明了理论在实证研究中的作用,因此它代表了经验“硬币”的“反面”(代表研究的类似图 过程由Bunge [42,p.9],Shaw [43],Carroll和Swatman [44],Lynham [15]和Endres和Rombach [45]提供,Wieringa等[46]提出了一个工程周期要求工程学科。)
Sutton和Staw引用Kaplan [47]认为“数据描述了观察到哪些经验模式,理论解释了为什么观察或预期观察到经验模式”[24,p.374]。 理论不仅说明了新研究的设计和动机,而且也成为从业者“规则”和指导方针的基础。
然而,我们在大部分SE文献中观察到的是,形式理论的形成被隐含地或完全地跳过,这在图中的“捷径”中表示。这些指导方针没有提供支持它们的理由,换句话说,对于这样的准则为什么没有深入的了解。 他说:专业化来自理论和研究:“为什么”,而不是“如何”[48]。
可能出现的一个问题是在这个理论和实证调查的周期中从哪里开始。雷诺兹[38]描述了两种方法:“研究-然后理论”和“理论-然后研究”。前者是指进行实证研究,基于哪一个发展一个理论(也称为培根战略[38,Chap .7]);后者开始于一种理论,通知可以随后执行的研究的设计。当然,采取哪种方法取决于某个特定主题有多少理论可用。研究领域通常采用研究 - 然后理论的方法,而更成熟的领域可以依靠(和改进)现有的理论来进一步推进这一领域。Glass指出,在软件工程中,实践往往超前于理论[49]。我们所观察到的是在SE实践发展之后的科学研究。一些例子是敏捷方法的兴起,全球软件开发和开源软件开发。所有这三种现象都出现在实践中,之后软件工程研究界开始进行探索性研究,旨在了解这些主题。
2.2什么是理论,什么不是理论
问题是什么是理论?一直是其他学科讨论的话题(见例[50])。构建理论提出了各种各样的方法和方法[51.12.30.15.38.20.52]。 Weick指出,许多关于理论建构的描述错误地表明它是一个机械过程,“对这种过程经常直观,盲目,浪费,偶然,创造性的质量没有多大的了解”[53,p.519]。 资产阶级认为,这样的步骤不是离散的过程,而是一个理论的呈现可以提出思想的连续排序[12](另见[54])。我们同意,构建理论不是由许多步骤组成的线性的,顺序的过程,而是各种活动可能并行发生。研究周期如图1所示。图2显示了这种情绪的图形表示,其中理论和收集经验证据的活动是一个交替的过程。
本节的目的不是对理论如何构建的问题提出最终答案,而是简要概述在其他学科中被广泛接受以成为理论的一部分的关键组成部分,以及制定读者熟悉常用的术语。接下来,我们简要总结一个理论的关键组成部分。我们的讨论是不完全的,许多作者在许多文章和书籍中已经解决了理论建构和理论化的话题。 我们主要关注所谓的差异理论,而不是加工理论[55]。 变异理论侧重于解释变量与它们之间的关系,而过程理论解释了一系列事件或活动如何产生一定的结果。拉尔夫[56,57]例如,在软件设计的上下文中讨论过程理论。
(方差)理论的主要元素是其构造。在SE研究中,两个示例构造是程序大小和软件质量。为了测量软件程序的大小,需要使用度量或度量来操作该构造。这可以通过各种经验指标来完成:代码行(LOC),内存占用(运行时期间),类数(面向对象语言)和编译对象代码的大小。为了实现“软件质
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[138518],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
