Using biology and ecology as inspiration for software maintenance? (Keynote abstract)

P. Grosjean
{"title":"Using biology and ecology as inspiration for software maintenance? (Keynote abstract)","authors":"P. Grosjean","doi":"10.1109/CSMR-WCRE.2014.6747159","DOIUrl":null,"url":null,"abstract":"Summary form only given. As a bioengineer and marine ecologist, I probably have a different view on software complexity and evolution than specialists in this field. The literature as well as discussion with colleagues suggests that there may well be “hidden gems” in traditional ecology for software engineers. In this presentation, I will compare a couple of biological and software (mostly Open Source) ecosystems and suggest a few ideas that may be useful for software maintenance research. Two key aspects appeared to me when I started to work on Open Source software ecosystems: (1) the difference in terminology in biology and software engineering, and (2) the much more collaborative trends in software ecosystems, compared to biological ecosystems. The first aspect is mostly a technical issue that unfortunately creates a strong barrier between software engineers and biologists. So, it should be worth considering using the same or similar meaning for the same terms, like ecosystem, resource, consumer, ... in both disciplines. The second aspect is much more interesting. So, software ecosystems exhibit much more collaboration and much less competition than biological ecosystems? Since biologists consider competition as one of the major driving forces for biological evolution (recall Darwin and his natural selection mechanism through struggle for existence), it is very clear that the fundamental rules that drive both biological and software ecosystems are completely different. So what? Is there still something to share between the two disciplines? For sure, a couple of concepts (mostly, simple emerging properties, e.g., the impact of biodiversity on resistance and resilience of an ecosystem, migration patterns, dependencies along the trophic chain, ...) or tools (dendrograms, specialized multivariate analyses, biodiversity or interaction metrics, ...) could be of inspiration to software engineers. Yet, a much deeper consideration is whether the driving force of competition and selection of the fittest, which is so powerful for the evolution of biological ecosystems, could change somehow strategies for software design and evolution. I will discuss this question and propose a couple of ideas in this direction. They will, for sure, look strange in current views. For instance, why did a so badly designed language like R [1] become one of the most efficient tools for data analy-sis? Would a meta-software, able to translate one practical problem into different implementations and learn from their comparisons, change the design of software building blocks? Would the concept of phenotypes (same organism, understand software, but totally different appearance and properties depending on the environment) lead to computer tools that are better tailored for each user than the current ones? Ultimately, all these ideas converge towards more freedom for self-organisation of software and software ecosystems than is currently the case. Are you, software engineers, ready to learn from living organisms and to loose a little bit of your orchestration power? Are you ready to become a little bit more observers and a little bit less architects? New and interesting emergent properties may well appear from that freedom you would accept to concede to your complex systems!","PeriodicalId":166271,"journal":{"name":"2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-02-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSMR-WCRE.2014.6747159","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

Summary form only given. As a bioengineer and marine ecologist, I probably have a different view on software complexity and evolution than specialists in this field. The literature as well as discussion with colleagues suggests that there may well be “hidden gems” in traditional ecology for software engineers. In this presentation, I will compare a couple of biological and software (mostly Open Source) ecosystems and suggest a few ideas that may be useful for software maintenance research. Two key aspects appeared to me when I started to work on Open Source software ecosystems: (1) the difference in terminology in biology and software engineering, and (2) the much more collaborative trends in software ecosystems, compared to biological ecosystems. The first aspect is mostly a technical issue that unfortunately creates a strong barrier between software engineers and biologists. So, it should be worth considering using the same or similar meaning for the same terms, like ecosystem, resource, consumer, ... in both disciplines. The second aspect is much more interesting. So, software ecosystems exhibit much more collaboration and much less competition than biological ecosystems? Since biologists consider competition as one of the major driving forces for biological evolution (recall Darwin and his natural selection mechanism through struggle for existence), it is very clear that the fundamental rules that drive both biological and software ecosystems are completely different. So what? Is there still something to share between the two disciplines? For sure, a couple of concepts (mostly, simple emerging properties, e.g., the impact of biodiversity on resistance and resilience of an ecosystem, migration patterns, dependencies along the trophic chain, ...) or tools (dendrograms, specialized multivariate analyses, biodiversity or interaction metrics, ...) could be of inspiration to software engineers. Yet, a much deeper consideration is whether the driving force of competition and selection of the fittest, which is so powerful for the evolution of biological ecosystems, could change somehow strategies for software design and evolution. I will discuss this question and propose a couple of ideas in this direction. They will, for sure, look strange in current views. For instance, why did a so badly designed language like R [1] become one of the most efficient tools for data analy-sis? Would a meta-software, able to translate one practical problem into different implementations and learn from their comparisons, change the design of software building blocks? Would the concept of phenotypes (same organism, understand software, but totally different appearance and properties depending on the environment) lead to computer tools that are better tailored for each user than the current ones? Ultimately, all these ideas converge towards more freedom for self-organisation of software and software ecosystems than is currently the case. Are you, software engineers, ready to learn from living organisms and to loose a little bit of your orchestration power? Are you ready to become a little bit more observers and a little bit less architects? New and interesting emergent properties may well appear from that freedom you would accept to concede to your complex systems!
使用生物学和生态学作为软件维护的灵感?(主旨文摘)
只提供摘要形式。作为一名生物工程师和海洋生态学家,我对软件复杂性和进化的看法可能与该领域的专家不同。文献以及与同事的讨论表明,对于软件工程师来说,传统生态中很可能存在“隐藏的宝石”。在这次演讲中,我将比较几个生物和软件(主要是开源)生态系统,并提出一些可能对软件维护研究有用的想法。当我开始从事开源软件生态系统的工作时,我看到了两个关键方面:(1)生物学和软件工程术语的差异;(2)与生物生态系统相比,软件生态系统中更具协作性的趋势。第一个方面主要是一个技术问题,不幸的是,它在软件工程师和生物学家之间造成了一个强大的障碍。所以,应该考虑对相同的术语使用相同或相似的含义,比如生态系统、资源、消费者……在这两个学科中。第二个方面要有趣得多。那么,软件生态系统比生物生态系统表现出更多的协作和更少的竞争?由于生物学家认为竞争是生物进化的主要驱动力之一(回想一下达尔文和他通过生存斗争提出的自然选择机制),很明显,驱动生物生态系统和软件生态系统的基本规则是完全不同的。那又怎样?这两个学科之间还有什么共同之处吗?当然,一些概念(主要是简单的新兴特性,例如,生物多样性对生态系统的抵抗力和恢复力的影响,迁移模式,沿着营养链的依赖关系,……)或工具(树形图,专门的多变量分析,生物多样性或交互指标,……)可能会给软件工程师带来灵感。然而,更深层次的考虑是,竞争和优胜劣汰的驱动力——对生物生态系统的进化如此强大——是否会以某种方式改变软件设计和进化的策略。我将讨论这个问题,并在这个方向上提出一些想法。当然,从目前的观点来看,它们看起来很奇怪。例如,为什么像r[1]这样设计如此糟糕的语言会成为最有效的数据分析工具之一?能够将一个实际问题转化为不同的实现并从它们的比较中学习的元软件,会改变软件构建块的设计吗?表现型的概念(相同的生物体,理解软件,但完全不同的外观和属性取决于环境)会导致计算机工具比当前的更好地为每个用户量身定制吗?最终,所有这些想法都汇聚在一起,使软件和软件生态系统的自组织比现在更加自由。作为软件工程师,你准备好向生物体学习并放弃一点编配能力了吗?你准备好多做一点观察者,少做一点建筑师了吗?新的和有趣的意外属性可能会从你接受的自由中出现,你会向你的复杂系统让步!
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信