This chapter defines and presents different kinds of software ecosystems. The focus is on the development, tooling and analytics aspects of software ecosystems, i.e., communities of software developers and the interconnected software components (e.g., projects, libraries, packages, repositories, plug-ins, apps) they are developing and maintaining. The technical and social dependencies between these developers and software components form a socio-technical dependency network, and the dynamics of this network change over time. We classify and provide several examples of such ecosystems. The chapter also introduces and clarifies the relevant terms needed to understand and analyse these ecosystems, as well as the techniques and research methods that can be used to analyse different aspects of these ecosystems.
翻译:本章定义并介绍了不同类型的软件生态系统。重点在于软件生态系统的开发、工具与分析层面,即由软件开发人员及其开发维护的相互关联的软件组件(如项目、库、包、存储库、插件、应用程序)构成的社区。这些开发人员与软件组件之间的技术与社会依赖关系形成了社会-技术依赖网络,该网络的动力学特征随时间推移而变化。我们对这类生态系统进行了分类并给出了多个实例。本章还介绍并澄清了理解与分析这些生态系统所需的相关术语,以及可用于分析生态系统不同方面的技术与研究方法。