


价格:面议
0
联系人:
电话:
地址:
江西省西门子电源模块授权供应商
江西省西门子电源模块授权供应商
们不会仅仅因为他们的论文基于的不是科学实验而是反思经验,就抵制他们的重要性。但是我们会仔细思考他们的结论:我们是否同意这些结论,这些结论是否适合我们的环境,是否与我们的经验匹配。也就是说,它们是否与我们熟悉的证据相一致。
但不论我让我们来用一个例子来更好地说明。想象我们正在评估一种新的软件工程技术“AWE”美妙的新方法),它被用来替代“BURP”枯燥但被口碑良好的旧方法)。我们需要考虑哪种证据来决定是否采用AWE?在接下来的章节中,我们会描述常见类型的研究,并根据可信度和适用度的典型问题对每个类型进行评估。
2.4.1 对照实验和准实验
对照实验在我们需要对两种或多种条件进行直接比较时适用(如使用AWE相对于使用BURP),它基于一个或多个有可靠度量的标准,比如完成特定任务所需要的时间。这些实验在度量很棘手时也很有帮助,比如对AWE和BURP所产出的产品中的缺陷计数。“对照”意味着保持所有(除了把AWE换成BURP以外)别的东西为常量,这点我们可以直接根据工作环境和所要解决的任务来做到。对于所涉及的庞大的人为因素变量,实施对照的唯一方法是使用一组对象(而不是一个对象),指望所有的差异会在组内平均化。如果我们能把对象随机分组的话(随机实验),这种希望是被证明合理的(至少在统计意义上)。当然只有所有对象使用AWE和BURP的能力相当时,这才有意义。随机实验是能证明因果关系的唯一研究方法:如果我们只变动了AWE和BURP,那结果中的任何改变(除了统计波动)都是由这个差异所产生的。
有时候,我们不能随机分配开发人员,因为我们只能对已经存在的团体进行研究。
任何方法论都是一种镜头,研究者可以通过不同的镜头观察整个世界。但重要的是,必须承认不是所有的事物都在聚焦范围之内。对方法论的盲目追随会导致各种难堪的失误,特别是当研究者不理解方法论背后的惯例和设时。即使存在普遍接受的方法论,研究者也不能解除责任,放弃从所需证据的角度来证明技术选择的正当性。基准测量是软件工程方法中基于集合据产出适当的例子。它需要根据定义非常准确的程序(或基准)来度量性能。SPEC CPU基准是一个很好的例子,不管它的名字如何,它度量了CPU、内存子系统、操作系统和高CPU使用率应用程序编译器的组合性能。它包含了一系列应用程序源码,外加如何编译它们的详细指示,以及如何运行输入并度量它们的指示。
如果基准这段经历告诉我们,所有的软件系统都应该经历你能想象到的最不友善最难对付的测试的磨炼,否则,即便在大量部署并取得较好的反响之后的数年中,我们也几乎可以肯定系统会不断地产生bug。
当结果和推论并排在一起的时候,读者就很容易忘记这二者的区别,也会忘记应该将它们分开来分析。我相信Knuth对于这些(导致了上述推论的)故事的记忆,因为他描述了他记录这些故事的流程。但是,我认为Knuth过度解读了这些故事的意义,使其更符合他的结论。如果Knuth花了如此多的时间在痛苦测试上,他还有可能完成TeX吗?我相信他的日记
我们还可以把开发人员从这个方法中完全剔除出来,只研究文档。开发人员们在旧系统中报告了哪些bug,又在新系统中报告了哪些这样我们也以发现开发人员不愿在新系统中报告的bug类型。这样你也许可以找到一些使用旧系统的原因,但是真正的原因仍然存在于团队成员的头脑之中。
上述几种都是定性研究的方法,他们都有各自的局限性。要想解决这些限制,我们就必须接受它们:只用一个方法无法揭示完整而不偏不倚的事实。好的人文研究会结合多种方法,并将各种方法得出的据结合在一起。举例来说,比如你既对员工们进行了访谈,又调查了哪些bug是在新系统中提交的。两种方法给你的结论虽然不同,但相互之间或多或少的有一致性。通过对比这些结论的相同点和不同点,你就可以了解到这个问题的真正答案。
除了调查了解事实之外,定性调查还可以让我们进行换位思考。很多时候,沟通不畅、违反流程、士气低落都是因为人无法从别人的角度来看世界。而这也正是定性研究想要解决的问题。这种换位思考往往就是定性研究方法的目标。比如说,你管理着一个团队,发现每周五都会出现编译错误,人们整天都在解决这个问题,每个人回家的时候都很累。使用定性研究的方法来调查这个问题你可能会发现原来星期四晚上大家都在忙着提交修改,因为周五是你决定开会的日子。有了这样的调查方法,你就可以从开发人员的角度来看这个世界并找到让大家都满意的解决方案其中两份评审特别受关注,因为它们颠覆了一些我们对软件成本预估的固定思维。成本估算模式的准确性
在两份系统性评审中,回答了成本模型估算(从过去项目中收集数据,然后基于数据生成数学公式)是否比专家判断估算(基于软件开发者和管理者的于手动搜索来说,你需要选择你想要搜索的刊物和会议纪录。当然,你也需要证明你的选择是正确的。然而,在一个案例分析中,我们非常惊讶地发现,有针对性的手动搜索比泛泛的自动搜索要快许多[32]。在实践中,你很可能需要混合策略。如果你对一些资料进行手动搜索后(包括专家会议的会议纪录),你应该把它当做候选原始研究的一组基准,基于这组基准,你可以验证自动化搜索字符串的效用。另一种方法是,领域专家也可以把一组论文作为确定基准。
医疗标准强制必须有两个研究员独立作出初始的对于包含和排除的决定。然而,我在软件工程中的自动化搜索经验是,许多论文单从标题就能看出它的无关性。因此,在实践中,许多软件工程研究者(包括我自己)允许单个研究者对完全无关的论文作出初始筛选。但此研究者必须理解,如果有任何疑问,那就必须把论文留作候选。然而,在下一步的筛选中,有两个或多个研究者独立评估每篇候选的原始研究是很重要的。在这一阶段,研究者需要完整阅读每篇候选论文,用包含和排除的标准来进行筛选。
如果包含同一项研究多次的话,会使集合产生偏差。因此,必须检查每篇论文来确定他们是否包含多重研究,或者是否因为引用了同样的研究而需要融合他们的结果。然而,要识可重复性依赖于所研究的问题本身的清晰明确,不能模棱两可,也需要对搜索和集合的流程以及研究的范围进行完全的汇报。最近有个研究比较了两个针对同样研究问题的独立系统性评审[38]。这份研究总结:在原始研究数量较少而评审团由领域专家组成的情况下,软件工程的系统性评审可重复性相当高。另一份基于非常庞大的经验性文献库的系统性评审[51]发现了不同文献中的评审有巨大的差异,但它同时解释说这些差异来自于不同评审中隐含的研究问题之间的差异。
这一章会带着对实证软件工程的普遍关注来向读者介绍系统性评审的价值。我也力求帮助见习研究人员(如博士生)开始使用系统性评审,他们可能正在寻找可靠的方法来着手能代表领域发展水平的评审。这一章应该也会对更有经验的实证研究者有所帮助,他们也许对系统性评审的方法论的价值还没有足够的信心。许多欧洲研究者已经开始发表软件工程的系统性评审,但来自美国的研究者相对较少。
我也希望这一章内容能提醒实证研究者,他们的研究可能也会为将来系统性评审做出贡献,并因此能在汇报他们结果的同时谨记将来研究证据的集合。最近的一次系统性评审发现,很难开始一个完整的元分析,因为个体的原儿的标准方法,系统性评审的发布改变了医疗实践。
然而,这并没有被认为是循证医学的重大胜利。在那12篇研究中,8篇是在1982年之前发表的。如果那8篇研究能在1982年集合的话,8年的错误和与之相关的新生儿死亡就能够被避免。这引发了对及时集合证据的重要性的重新评估,以及协作组织的建立,该非营利组织旨在实施针对医疗和保健问题的系统性评审,并维护系统性评审报告数据库。这需要提取每篇文章中针对所研究问题数据,然后适当地集合数据。有时,可以通过一次正式的元分析来集合数据,但在软件工程和其他非医学领域中,每篇研究的结果通常只是以表格的形式列出来,以确定潜在的趋势。与质量评估一样,数据提取通常由两名研究者来完成,他们讨论并解决所有的不同意见。
虽然我之前批评了对专家观点的依赖,但是我所见过的关于软件工程的最好的系统性评审,是由包含领域专家的团队执行的。领域专家的知识在系统性评审中可以被很好地加以利用,来确定需要搜索的专业会议和期刊,并确定可以用作基准的一组初始研究文章,来检查任何自动搜索过程的有效性。
对于刚开始学习系统性评审流程的新研究员,我推荐他们考虑图谱研究(mapping studies)。这类系统性评审试图寻找并分类涉及更宽泛研究话题的文献,而不是回答一个特定的研究问题[35]。这两类研究的区别可以通过比较Magne Jørgensen的两篇文章而看出。第一篇是传统的系统性评审,调查了成本估算模式的评估在预计项目成本时是否比专家判断的评估更精确[22]。这篇文章在3.3.1节中有所讨论。第二篇是高质量的图谱研究,对成本估算文献进行了分类[24]。
下面的3.3节讨论了一些挑战了软件工程 “常识”的系统性评审,证明了我们用健全方法论来集合证据的必要。然而,在讨论这些例子之前,我先总览一下系统性文献流程。
只对系统性评审的结果感兴趣,而对系统性评审的具体流程不感兴趣的读者,可以直接跳至3.3节。这章的简介应该足够你了解系统性评审流程的严谨性,不用你多花力气去读这么多的细节。
然而,如果你是一个新的或者有经验的研究者,希望评估系统性评审的价值,那你就需要阅读下一节。它讨论了系统性评审流程中的具体步骤,并告诉你这一方法论中所固有的一些实践困难。
你可以在Cochrane协作组织的知识库中找到免费的Crowley等人对皮质类报告的更新[43]。这不只是为了记录历史;对那些新开始系统性评审的研究员来说,这也是一个很好的优质评审的例子。
你也许会问系统性评审有什么创新。毕竟,软件工程研究者已经持续多年产出不落后于时代的报告,并且在汇报他们最新研究成果的同时,也总结了相关的工作。要回答这个问题,我们得先看看其他使用系统性评审的学科(例如,心理学、社会学和医学),它们已经找出了由于缺乏正规方法论而导致的传统评审中的无数问题。始研究在汇报他们的结果时使用了完全不同的实践方法[51][52]。
在循证软件工程的背景下,系统性评审的目标不只是为研究者提供方法论,而是影响实践。因此,我希望业界的管理者和决策者也能在这章中找到一些与他们需求相关的东西。业界最大的教训是,“常识”和专家观点不应该是决定选择软件工程方法的唯一基础。此外,很不幸的是,不能默认地信赖个体的实证研究。面对关于采用新方法的重要决定时,决策者需要不带偏见地对所有的相关证据的概括。系统性评审恰恰提供了交付这种概括的方法。
3.1 系统性评审总览
可信的调查始于原始研究:带有与所研究问题相关的定性和定量结果的实验。一次系统性评审集合了不同独立实验的结果,有时会运用统计学的元分析。
证明系统性评审必要性的典型例子来自医学领域。在1990年,Crowley等人发布了一份关于对将要早产的孕妇使用皮质效果的系统性评审,其中包括一份对于12项原始研究的元分析[11]。皮质被认为能减少早产儿的肺部问题。Crowley等人的系统性评审确认了皮质的使用大幅度地减小了新生儿的死亡风险。在那个时候,皮质类并不是早产
观测研究已经证明的一件事是:软件工程
有明确的规定和适当的应用,你就能很准确地知道基准的结果意味着什么,也就不需要慌乱地比较Sun、HP、Intel之间的差异。这种可靠性和可比性正是发明基准的目的,也使它成为了可信度的标志。
那基准是免费的午餐吗?当然不是!对基准证据的真正顾虑是相关性:所使用的度量是否能代表所关注的现象并适用与此。基准所包含的内容始终是一个值得关注的问题,而且常常争吵不休。SPEC CPU从这方面来说是相当成功的,但论及其他,如关系型数据库管理系统(RDBMSes)事物处理负载量的基准TPC-C,就引起了很多的怀疑。并为现象和因素之间的关系提供有根据的解释。定性研究不一定是“软的”,定量研究也不一定是“硬的”。
优质研究的结果绝不会是武断的。好的科学寻求可重现的(“硬的”)结果,因为可重现的意味着它是可靠的,而且重现的过程使研究方法接受严格的审查。重现结果意味着重复(“复制”)各自的研究,要么在几乎完全相同的情况下(紧密复制),要么在不同但是想法类似的方式下(宽松复制)。定性研究几乎总是涉及独特的人文背景,因此很难紧密复制。然而,那不意味着研究结果不能重现;这通常是可能的。从相关性的角度来说,宽松复制比紧密复制更有价值,因为这意味着结果更具普及性。从另一个角度来说,定量研究的结果有时不能重现。比如,John Daly对继承深度的研究被三个不同的研究组复制,得出了相互矛盾的
总结而言,定量研究的优势是用几句简单的陈述就能描述情况,因此,有时能把事情弄得很清楚。它们的劣势是忽视了太多的信息,以至于通常很难确定结果真正意味着什么以及何时适用。定性研究的长处是它们的结果反映并展示了真实世界的复杂度。劣势是它们因此更难评估。如果不清楚如何把研究结果映射到真实世界的环境下,任何研究都难以应用于真实生活,或是因为实验范围太过狭窄,无法普及,或是因为观测的背景太过不同。
“底线”是方法必须适用于问题。关于社会背景、流程的问题,以及人们相信他们所做的事和他们真实做过的事之间的差异,需要不同形式的调查,这不是算法性能能解决的问题。
2.3 整合证据
解决证据局限性的一种方法是结合不同形式或不同渠道的证据,就是把针对同样问题的不同研究结果整合起来。梳理证据背后的原因是,如果不同形式的证据或者不同渠道的证据能够呼应的话(或者至少不相互矛盾),它们就聚集了一种“重要性”,加在一起的可信度在自己的环境中用它来确保他们没有忽视或忘记某些东西。也许,在许多问题上,我们能做到的最好情况是,提供需要考虑的因素来装备那些带着问题的从业者,让他们找到自己问题的解决方案。
要做到这点,我们需要扩大第一层观察所能接受的"证据"的定义。一些研究者一直争论说,软件工程研究存在对定量数据和研究的偏证据不是证
们依靠的是科学研究(剩余章节都会关注于此),还是开明人士的报告,我们认为,作为一个软件工程师,需要对证据有十分精确的理解,才能帮助我们做出正确的决定,才能根据我们想问的问题来评估对证据的需求。我们本质上并不需要更多的指标,或是广泛使用的科学方法,也不需要死板的方法论和教科书似的说教。强加的流程和方法本身不能产出质量,当然也不能保证质量。然而,我们通常试图用这些方法来达到真正的目标:系统性的、博识的、循证的批判性思维。展可接受证据的定义,以此混合定性和定量的资源。也就是说,更多关于技术为什么能行或者为什么不行的文本或图片数据,以及技术影响力多少的定量数据。
然而,真正有影响力的证据实体走得更远,并且接收完全不同种类的证据。不止是试图找到具有统计意义的研究,也包含能提供更多关于技术实践应用信息的调查经验汇报。这种经验汇报目前被低估了,因为它们被认为不如现有的文献严格。比如,不总能确保各方面利益都被精确衡量,不能保证混淆的因素已经排除,或者不能证明流程一致作为软件工程师,我们对什么起作用、什么不起作用或者不太起作用都有各自的意见。我们因此共享实践故事和经验,它们最终化作文化知识和各种常识。但问题是,“地球人都知道的东西”常常是错的。虽然我们不断收集信息,但是也许并未细致准确地评估并整合那些信息,甚至都没有必要的手段来这么做。性因素已经避免。然而,这些报告应该是任何软件开发技术"证据线索"的一个显而易见的部分。早期采纳者可能找到的是包含相对低可信度的可行性研究的一个小集合,或者一到两个"精确"研究,这已经足够使他们采纳改变。特别是当这些研究的背景显示出据是在一个与他们相似的环境中收集的。大部分采纳者需要看到不同上下文中的多样研究,才会相信研究的想法
浔之漫智控技术(上海)有限公司(xzm-wqy-bfzy)
是中国西门子的最佳合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国知名的自动化设备公司之一。
公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。
以下是我司主要代理西门子产品,欢迎您来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!