Nowadays, the fundamental science of software engineering is being formed. It should represent knowledge that meets the requirements of the concept of sustainable development. This fundamental science could be named as the Software Engineering Ecology. Along with others, it should include a section containing knowledge about software engineering ecosystems. This section of the future science has been intensively developing for more than fifteen years. However, today, there is no consensus among researchers regarding the definitions of the software ecosystem. Naturally, it does not contribute to the creation of an appropriate section of emerging science. All authors offer only a software ecosystem, considering it in different contexts and defining it in different ways. The term “software ecosystem” is now used to refer to a wide range of ecosystems that are actually software engineering ecosystems. The purpose of this paper is to propose a basis for defining software engineering ecosystems. By analogy with the concepts of the landscape and the trophic chain of biological ecosystems, the concepts of software landscape and software engineering value chain are proposed. Based on these concepts, the diversity of software engineering ecosystems is shown. A model of the software engineering ecosystems and a classification of the software engineering ecosystems are proposed.
Нині формується фундаментальна наука програмної інженерії. Він має представляти знання, що відповідають вимогам концепції сталого розвитку. Цю фундаментальну науку можна було б назвати екологією програмної інженерії. Разом з іншими він повинен містити розділ, що містить знання про екосистеми програмної інженерії. Цей розділ науки майбутнього інтенсивно розвивається вже понад п'ятнадцять років. Однак сьогодні серед дослідників немає єдиної думки щодо визначення екосистеми програмного забезпечення. Природно, це не сприяє створенню відповідного розділу нової науки. Усі автори пропонують лише програмну екосистему, розглядаючи її в різних контекстах і по-різному визначаючи. Термін «екосистема програмного забезпечення» зараз використовується для позначення широкого спектру екосистем, які насправді є екосистемами розробки програмного забезпечення. Метою цієї статті є запропонувати основу для визначення екосистем програмної інженерії. За аналогією з поняттями ландшафту та трофічного ланцюга біологічних екосистем запропоновано поняття програмного ландшафту та ланцюжка створення вартості програмної інженерії. На основі цих концепцій показано різноманіття екосистем програмної інженерії. Запропоновано модель екосистем програмної інженерії та класифікацію екосистем програмної інженерії.