Автор: Tom Mens, Coen De Roover, Anthony Cleve
Издательство: Springer
Год: 2023
Страниц: 321
Язык: английский
Формат: pdf (true)
Размер: 17.0 MB
This book highlights recent research advances in various domains related to software ecosystems such as library reuse, collaborative development, cloud computing, open science, sentiment analysis and machine learning. A key aspect of software ecosystems is that software products belong to ever more interdependent networks of co-evolving software components. The ever-increasing importance of social coding platforms has made software ecosystems indispensable to software practitioners, in commercial as well as open-source settings.
Well-known examples of digital platform ecosystems are the mobile software ecosystems provided by companies such as Microsoft, Apple, and Google. The company owns and controls an app store as a central platform to which other companies or individuals can contribute apps, which in turn can be downloaded and installed by mobile device users. The systematic mapping studies by de Lima Fontao et al. report on the abundant research that has been conducted on these mobile software ecosystems.
Any software system that provides a mechanism for third parties to contribute plug-ins or extensions that enhance the functionalities of the system can be considered as a digital software ecosystem. Examples of these are configurable text editors such as Emacs and Vim and integrated software development environments (IDEs) such as IntelliJ IDEA, VS Code, NetBeans, and Eclipse. The latter ecosystem in particular has been the subject of quite some research on its evolutionary dynamics. These examples show that digital platform ecosystems are not necessarily controlled by a single company. In many cases, they are managed by a consortium, foundation, or open-source community. For example, NetBeans is controlled by the Apache Foundation, and Eclipse is controlled by the Eclipse Foundation.
Another well-known digital platform ecosystem is WordPress, the most popular content management system in use today, which features a plugin architecture and template system that enables third parties to publish themes and extend the core functionality. Um et al. presented a recent study of this ecosystem. Yet another example is OpenStack, an open-source cloud computing platform involving more than 500 companies.
Who This Book Is Intended For:
This book is intended for all those practitioners and researchers interested in developing tool support for or in the empirical analysis of software ecosystems. The reader will find the contributed chapters to cover a wide spectrum of social and technical aspects of software ecosystems, each including an overview of the state of the art.
While this book has not been written as a classical textbook, we believe that it can be used as supplementary material to present software ecosystems research during advanced (graduate or postgraduate) software engineering lectures and capita selecta. This is exactly what we, book editors, intend to do as well in our own university courses. For researchers, the book can be used as a starting point for exploring the wealth of software ecosystems results surveyed in each chapter.
Another popular type of ecosystems of reusable components are software libraries. Software developers, regardless of whether they are part of an OSS community or software company, rely to a large extent on such reusable third-party software libraries. These library ecosystems tend to come with their own specific package managers and package registries and are available for all major programming languages. Examples include the CPAN archive network (created in 1995 for the Perl programming language, the CRAN archive network (created in 1997) and Bioconductor for the R statistical programming language), npm and Bower for jаvascript, PyPI for Python, Maven (Central) for JVM-based languages such as Java and Scala, Packagist for PHP, RubyGems for Ruby, NuGet for the .NET ecosystem, and the Cargo package manager and its associated crates registry for the Rust programming language. Another example is the Robot Operating System (ROS), the most popular middleware for robotics development, offering reusable libraries for building a robot, distributed through a dedicated package manager.
Скачать Software Ecosystems: Tooling and Analytics