西门子PLC模块CPU224XPCN中央处理器
的改进以及得到的启发,在这里,正式实验对主要理念的证明只起到支持的作用。
整个学习流程跨越25个年头,本章中我将集中介绍前20年的研究所得。它们之间存在角色重叠,我的讨论将覆盖QIP中的6个步骤。对于每一个案例,我会介绍我们在应用科学方法时得到的经验教训,以及我们在NASA/GSFC的飞行动力学部门中改进软件开发时得到的经验。
从1976年起,我们进行了如下一些活动,对应于质量改进范式的6个步骤:表征、设立目标、选择流程、执行流程、分析、封装。
SEL请大学研究人员验证高风险的方案。我们建立模型并测试假设。我们开发技术、模型和理论来解决问题,从而了解哪些方案是有用的。我们在应用中借鉴他人的方案,也研究出一些自己的方案。实验室的研究就是如此进行的。
我们重要的发现是如何把科学方法运用于软件领域,即如何从概念运用、案例研究、以及对照实验的反馈信息中得到启发从而改进特定环境中的软件开发流程。非正式的反馈指导我们应该关注案例研究与实验中的哪些部分,我们也出乎意料地从非正式的反馈中得到了关键的启发。解决方案。实验室活动只限于一个特定领域,由专业的开发人员参与,得到当地机构的鼎力支持。研究团队与实际开发人
多样性是我们在软件工程中运用科学方法时的一个重要方面。对于一种流程,我们需要验证它在不同的环境下的表现,才能更好地理解流程背后的理念以及它们之间的相互作用。随着时间的推移,我们还需要考虑所有的环境变量。如果没有在不同地点、由不同人对流程进行应用的话,很多环境变量的影响根本无法体现出来。
仅靠一个团队绝不足以建立这样的理论体系。作为一门庞大的科学,它需要依靠团队之间的合作。研究结果也需要被高效地共享,比如可以建立一个存放不断完善中的模型以及经验教训的知识库,研究人员可以使用和更新其中的内容。
5.3 NASA软件工程实验室:一个充满活力的
浔之漫智控技术(上海)有限公司(xzm-wqy-sqw)是中国西门子的合作伙伴,公司主要从事工业自动化产品的集成,销售和维修,是全国的自动化设备公司。公司坐落于中国城市上海市,我们真诚的希望在器件的销售和工程项目承接、系统开发上能和贵司开展多方面合作。以下是我司主要代理西门子产品,来电来函咨询,我们将为您提供优惠的价格及快捷细致的服务!
究测试平台
为了支持我在本章提到的非正式学习的观点,我将我们在NASA(National Aeronautics and SpaceAdministration,美国宇航局)软件工程实验室(SEL)25年的经验。在SEL,我们不仅通过实验来学习,通过分析问题、应用可行的解决方法、并找出其不足之处来不断学习经验。我们也进行了对照实验与案例研究,是在一个不断改进的更大型的学习流程中执行的。
SEL建立于1976年,旨在为卫星系统的软件开发提供地面支持,并且在可能的情况下用观察、实验、学习和建立模型的方法为位于Goddard1的飞行动力学部门优化流程和提高产品质量[3]。实验室的研究团队由NASA与CSC电脑科技集团(CSC)的开发人员,以及马里兰大学的一个研究团队组成,三者组成了一个联盟。SEL决定支持我们的实证研究,并且将其并入组织的整体工作中。实验支出来自项目自身的经费,而非来自NASA的研究经费。
环境差异并不单纯指软件开发人员的不同。软件的每一部分都不尽相同,软件开发环境亦是如此。这也就意味着,流程是变量,目标是变量等。我们需要为所研究的环境选择合适的目标和合适的流程。在决定如何研究某种技术之前,我们需要对其环境和特性做一些了解。
软件工程的第二点与众不同之处在于软件的无形性,也就是构架、组件、开发形式的不可见。这一点和软件工程的第三个特性,即该领域的不成熟性密切相关,因为仍没有完善的模型能帮助我们推导流程、产品和它们之间的关系。这些困难促使以下两种需求变得尤为迫切:从不同情境下的理念应用中学习,并且从中归纳理论或者模型。
*后一点在于,把经验建立成可重用的模型需要额外的人力、物力、流程和组织的支持。建立模型、进行度量、利用实验找出*有效的技术,并生成反馈信息用来共同学习都需要时间和
投入。这些活动并不是软件开发的副产品。如果没有独立于产品开发并且明确支持这些活动的方法,它们就不会发生,我们也就无法从根本上改进开发流程。
成功的实验是困难而昂贵的。实验的结果只能在小范围内确证有效,而受制于大规模适用性、研究方法整合以及环境变量等问题。
但可惜的是,实证研究仍未被用于新的探索发现,只是在概念完善后锦上添花而已。但从传统上来说,实证研究这种科学方法是指运用某种方法、技术或工具,分析结果,从而改进先前的理念。也就是人们一直以来检验理论并对它们进行改进的方法。在软件工程中,各种理论与模型仍然处于形成阶段,而人们一直将这一过程当做创造性过程的一部分来加以应用,观察实践以及进行探索性研究对于该学科的成长至关重要。下在Tex82开始紧张的调试工作中所解决的错误……”如果Knuth在那段时间做了记录,他会发现什么样的错误?这些错误和在平时压力不那么大,不那么紧张的时期发现的错误是否会不同?对他的*终建议,我保留怀疑态度。
当然,我们有必要重想要了解为什么代码审查总是花那么长的时间。你的研究结论可能无法推广到管理数据库后台的团队,却可能推广到其他类似领域的Web程序的前端团队。正确地认识在什么时候可以推广研究结果和定性研究本身一样困难。二者都需要依靠主观判断来确定哪些假设在新的环境之下仍然有效。申一点,那就是每个定性研究都有其局限性,大部分的研究都能给我们宝贵的启示。作为一个定性研究的客观解读者,我们必须接受这个现实,并认真地辨别这两点。好的研究报告会帮你解决这个问题,比如这本书里介绍的研究。
4.3 在工作中运用定性研究方法如果任何一个问题的回答是“否”的话,也许