Toward software engineering ecosystems definition
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...
Збережено в:
Дата: | 2023 |
---|---|
Автор: | |
Формат: | Стаття |
Мова: | English |
Опубліковано: |
Інститут програмних систем НАН України
2023
|
Теми: | |
Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/511 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Problems in programming |
Завантажити файл: |
Репозитарії
Problems in programmingid |
pp_isofts_kiev_ua-article-511 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/78/a8d1e5649304abb9ddbc11c250028778.pdf |
spelling |
pp_isofts_kiev_ua-article-5112023-06-24T12:47:43Z Toward software engineering ecosystems definition Щодо визначень екосистем інженерії програмного забезпечення Sydorov, M.O. software ecosystem; software engineering; landscape; value chain; ecosystem model; ecosystems types UDC 004.413 екосистема програмного забезпечення; інженерія програмного забезпечення; ландшафт; ланцюг створення вартості; модель екосистеми; типи екосистем УДК 004.413 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 consen- sus 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.Prombles in programming 2022; 3-4: 92-98 Нині формується фундаментальна наука програмної інженерії. Він має представляти знання, що відповідають вимогам концепції сталого розвитку. Цю фундаментальну науку можна було б назвати екологією програмної інженерії. Разом з іншими він повинен містити розділ, що містить знання про екосистеми програмної інженерії. Цей розділ науки майбутнього інтенсивно розвивається вже понад п'ятнадцять років. Однак сьогодні серед дослідників немає єдиної думки щодо визначення екосистеми програмного забезпечення. Природно, це не сприяє створенню відповідного розділу нової науки. Усі автори пропонують лише програмну екосистему, розглядаючи її в різних контекстах і по-різному визначаючи. Термін «екосистема програмного забезпечення» зараз використовується для позначення широкого спектру екосистем, які насправді є екосистемами розробки програмного забезпечення. Метою цієї статті є запропонувати основу для визначення екосистем програмної інженерії. За аналогією з поняттями ландшафту та трофічного ланцюга біологічних екосистем запропоновано поняття програмного ландшафту та ланцюжка створення вартості програмної інженерії. На основі цих концепцій показано різноманіття екосистем програмної інженерії. Запропоновано модель екосистем програмної інженерії та класифікацію екосистем програмної інженерії. Prombles in programming 2022; 3-4: 92-98 Інститут програмних систем НАН України 2023-01-23 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/511 10.15407/pp2022.03-04.092 PROBLEMS IN PROGRAMMING; No 3-4 (2022); 92-98 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 3-4 (2022); 92-98 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 3-4 (2022); 92-98 1727-4907 10.15407/pp2022.03-04 en https://pp.isofts.kiev.ua/index.php/ojs1/article/view/511/564 Copyright (c) 2023 PROBLEMS IN PROGRAMMING |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2023-06-24T12:47:43Z |
collection |
OJS |
language |
English |
topic |
software ecosystem software engineering landscape value chain ecosystem model ecosystems types UDC 004.413 |
spellingShingle |
software ecosystem software engineering landscape value chain ecosystem model ecosystems types UDC 004.413 Sydorov, M.O. Toward software engineering ecosystems definition |
topic_facet |
software ecosystem software engineering landscape value chain ecosystem model ecosystems types UDC 004.413 екосистема програмного забезпечення інженерія програмного забезпечення ландшафт ланцюг створення вартості модель екосистеми типи екосистем УДК 004.413 |
format |
Article |
author |
Sydorov, M.O. |
author_facet |
Sydorov, M.O. |
author_sort |
Sydorov, M.O. |
title |
Toward software engineering ecosystems definition |
title_short |
Toward software engineering ecosystems definition |
title_full |
Toward software engineering ecosystems definition |
title_fullStr |
Toward software engineering ecosystems definition |
title_full_unstemmed |
Toward software engineering ecosystems definition |
title_sort |
toward software engineering ecosystems definition |
title_alt |
Щодо визначень екосистем інженерії програмного забезпечення |
description |
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 consen- sus 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.Prombles in programming 2022; 3-4: 92-98 |
publisher |
Інститут програмних систем НАН України |
publishDate |
2023 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/511 |
work_keys_str_mv |
AT sydorovmo towardsoftwareengineeringecosystemsdefinition AT sydorovmo ŝodoviznačenʹekosistemínženerííprogramnogozabezpečennâ |
first_indexed |
2024-09-12T19:29:38Z |
last_indexed |
2024-09-12T19:29:38Z |
_version_ |
1815407482656260096 |
fulltext |
92
Методи і засоби програмної інженерії
UDC 004.413 https://doi.org/10/15407/pp2022.03-04.092
TOWARD SOFTWARE ENGINEERING
ECOSYSTEMS DEFINITION
Mykola Sydorov
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 Engineer-
ing 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 consen-
sus 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 engi-
neering ecosystems are proposed.
Keywords: Software ecosystem, software engineering, landscape, value chain, ecosystem model, ecosystems types
Introduction
Software as the result of software engineering is always a product. It has a user and an operating
environment. The product is created and transferred to the customer or buyer in the context of the life cycle
and must meet a number of requirements specific to products of any engineering (product design, quality,
standards, documentation, economics, maintenance, environmental impact in the context of sustainable de-
velopment). The life cycle is a system-forming factor in software engineering, as it defines the processes,
resources and products used and created by engineering. This feature of software engineering also determines
the structure of knowledge inherent in it, which can be represented as a layered cylinder. The layers of the
cylinder represent the fundamental sciences of software engineering, and the vertical division corresponds to
the knowledge regarding the practical implementation of the phases of the software life cycle. It is obvious
that the fundamental sciences are applied in any vertical section of the cylinder. For example, the fundamental
sciences include Software engineering economics, Software engineering culture, Computing Foundations [1].
The fundamental sciences should also include the now emerging science, which, by being included in the verti-
cal sciences, should supply knowledge that meets the requirements of the concept of sustainable development.
This may be the Software Engineering Ecology [2, 3]. Along with others, the Software Engineering Ecology
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 consen-
sus among researchers regarding the definitions of the software ecosystem. Naturally, this does not contribute
to the creation of an appropriate section, an emerging science. All authors offer only a software ecosystem,
considering it in different contexts and defining it in different ways. Based on the hypothesis that 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 was to proposed a basis for defining software engineering ecosystems. As
such a base, 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.
The software engineering ecosystems diversity
The software engineering ecosystem landscape. According to the definition of ecology, an ecosystem (biogeo-
cenosis) is defined as a supraorganismal system of interacting biotic (living) and abiotic (non-living) components located
in a certain territory [4, 5]. In ecology, an ecosystem is always defined, a certain area, space, terrain, landscape. For ex-
ample, the ecosystem of a forest, lake, pond. It is an important component of the ecosystem. Therefore, when defining the
software engineering ecosystem, it is expedient to define a similar concept.
Four candidates can be used as a metaphor for the similar concept of the software engineering ecosystem.
These are territory, environment, terrain and landscape. The term “territory” usually refers to a piece of space that
can be clearly defined. Usually, this is the territory of the country. This term is proposed to be applied at the level
of Software engineering. The term “environment” has long and consistently been used for the software develop-
ment environment [6]. The term “terrain” refers to a specific space that is already landscaped with the biotic com-
© М.О. Сидоров, 2022
ISSN 1727-4907. Проблеми програмування. 2022. № 3-4. Спеціальний випуск
93
Методи і засоби програмної інженерії
ponent of the ecosystem. In addition, it is used in geographic information systems when visualizing space. This
term can be analogous to biotope [5]. Finally, the term “landscape” is used to refer to a space, whether or not it is
landscaped. In the software engineering, this term is used as a metaphor for the visualization of a software system
[7]. In our opinion, it is this term that is most suitable for designating the software engineering ecosystem space,
taking into account its initial independence from the activity of the biotic component. Thus, initially, the landscape,
being an ecotope, as a result of transformations (activities) carried out by the biota is transformed into a biotope,
turning, for example, into a terrain. In this context, this transformation is important for two reasons. First, unlike
ecology, the landscape of an ecosystem in software engineering cannot initially be specified (it is not a forest, a
field, a pond, etc.). However, this can be done if the landscape connect to the activity of the biota. Secondly, the
activity of the biota will determine the nature of the biotope in the future. Therefore, biotopes will be different for
different ecosystems even with the same activity.
The software engineering value chain. The ecosystem of biology is defined as the unity of interacting
biotic (living) and abiotic (non-living) components, which, based on the energy flow, establishes the trophic
structure of the ecosystem, species diversity and the circulation of substances in it [4]. Therefore, the second
important part of an ecosystem is its trophic structure. In defining the software engineering ecosystem, we will
follow this definition. However, instead of the trophic structure, we will use the added value factor of the same
importance for software engineering. Then, instead of the trophic structure in software engineering, we will
use the value chain [8].
To build a chain, we will use nodes of two types (Fig. 1.). The first type of node designates the activity that cor-
responds to the process of the chain (Fig. 1, a), indicating in it the designation of the process (Activity) and indirectly
the landscape, the designation of the biotic component (Biota), which implements the process and the abiotic component
(Abiota), which the biotic component uses to implement the process. The second type of node, we use to denote the added
value - AVi (Fig. 1, b).
Методи і засоби програмної інженерії
[Введите текст]
visualization of a software system [7]. In our opinion, it is this term that is most suitable for designating the software
engineering ecosystem space, taking into account its initial independence from the activity of the biotic component. Thus,
initially, the landscape, being an ecotope, as a result of transformations (activities) carried out by the biota is transformed into a
biotope, turning, for example, into a terrain. In this context, this transformation is important for two reasons. First, unlike
ecology, the landscape of an ecosystem in software engineering cannot initially be specified (it is not a forest, a field, a pond,
etc.). However, this can be done if the landscape connect to the activity of the biota. Secondly, the activity of the biota will
determine the nature of the biotope in the future. Therefore, biotopes will be different for different ecosystems even with the
same activity.
The software engineering value chain. The ecosystem of biology is defined as the unity of interacting biotic (living)
and abiotic (non-living) components, which, based on the energy flow, establishes the trophic structure of the ecosystem,
species diversity and the circulation of substances in it [4]. Therefore, the second important part of an ecosystem is its trophic
structure. In defining the software engineering ecosystem, we will follow this definition. However, instead of the trophic
structure, we will use the added value factor of the same importance for software engineering. Then, instead of the trophic
structure in software engineering, we will use the value chain [8].
To build a chain, we will use nodes of two types (Fig. 1.). The first type of node designates the activity that
corresponds to the process of the chain (Fig. 1, a), indicating in it the designation of the process (Activity) and indirectly the
landscape, the designation of the biotic component (Biota), which implements the process and the abiotic component (Abiota),
which the biotic component uses to implement the process. The second type of node, we use to denote the added value - AVi
(Fig. 1, b).
Activity
Biota
Abiota
AV0
a). Activity node b). Added value node
Fig. 1. Types of value chain nodes
The value chain for software engineering can look like this (Fig. 2).
R&E
B
A
AV0
SE
B
A
AV1
ASD
B
A
AV2
SP&M
B
A
AV3
OP
B
A
AV4
M&D
B
A
AV5 AV6
Fig. 2. Software engineering value chain
On fig. 2, the following designations are used:
- AV0 - added value from previous activities (in this case, these are the results of research in fundamental sciences
that are not related to software engineering);
- R&E - Research and Education activity - fundamental research and education in software engineering; the main
biotic component consist of researchers and teachers, as well as other actors who perform supporting roles, such as trainers,
publishers, editors, etc.; abiotic component consist of educational standards, accreditations, universities, journals, conferences,
professional organizations, for example, ACM, IEEE;
- AV1 - added value from R&E activities, for example, theories, approaches, principles aimed at the development of
software engineering, and engineers, scientists prepared to work in software engineering;
- SE - Software Engineering activity - applied research in software engineering; the main biotic component, these are
software engineers, as well as other actors who perform supporting roles, for example, technical and maintenance personnel;
the abiotic component, these are, professional websites, magazines, organizations such as Association of Software
Методи і засоби програмної інженерії
[Введите текст]
visualization of a software system [7]. In our opinion, it is this term that is most suitable for designating the software
engineering ecosystem space, taking into account its initial independence from the activity of the biotic component. Thus,
initially, the landscape, being an ecotope, as a result of transformations (activities) carried out by the biota is transformed into a
biotope, turning, for example, into a terrain. In this context, this transformation is important for two reasons. First, unlike
ecology, the landscape of an ecosystem in software engineering cannot initially be specified (it is not a forest, a field, a pond,
etc.). However, this can be done if the landscape connect to the activity of the biota. Secondly, the activity of the biota will
determine the nature of the biotope in the future. Therefore, biotopes will be different for different ecosystems even with the
same activity.
The software engineering value chain. The ecosystem of biology is defined as the unity of interacting biotic (living)
and abiotic (non-living) components, which, based on the energy flow, establishes the trophic structure of the ecosystem,
species diversity and the circulation of substances in it [4]. Therefore, the second important part of an ecosystem is its trophic
structure. In defining the software engineering ecosystem, we will follow this definition. However, instead of the trophic
structure, we will use the added value factor of the same importance for software engineering. Then, instead of the trophic
structure in software engineering, we will use the value chain [8].
To build a chain, we will use nodes of two types (Fig. 1.). The first type of node designates the activity that
corresponds to the process of the chain (Fig. 1, a), indicating in it the designation of the process (Activity) and indirectly the
landscape, the designation of the biotic component (Biota), which implements the process and the abiotic component (Abiota),
which the biotic component uses to implement the process. The second type of node, we use to denote the added value - AVi
(Fig. 1, b).
Activity
Biota
Abiota
AV0
a). Activity node b). Added value node
Fig. 1. Types of value chain nodes
The value chain for software engineering can look like this (Fig. 2).
R&E
B
A
AV0
SE
B
A
AV1
ASD
B
A
AV2
SP&M
B
A
AV3
OP
B
A
AV4
M&D
B
A
AV5 AV6
Fig. 2. Software engineering value chain
On fig. 2, the following designations are used:
- AV0 - added value from previous activities (in this case, these are the results of research in fundamental sciences
that are not related to software engineering);
- R&E - Research and Education activity - fundamental research and education in software engineering; the main
biotic component consist of researchers and teachers, as well as other actors who perform supporting roles, such as trainers,
publishers, editors, etc.; abiotic component consist of educational standards, accreditations, universities, journals, conferences,
professional organizations, for example, ACM, IEEE;
- AV1 - added value from R&E activities, for example, theories, approaches, principles aimed at the development of
software engineering, and engineers, scientists prepared to work in software engineering;
- SE - Software Engineering activity - applied research in software engineering; the main biotic component, these are
software engineers, as well as other actors who perform supporting roles, for example, technical and maintenance personnel;
the abiotic component, these are, professional websites, magazines, organizations such as Association of Software
Fig. 1. Types of value chain nodes
The value chain for software engineering can look like this (Fig. 2).
Методи і засоби програмної інженерії
[Введите текст]
visualization of a software system [7]. In our opinion, it is this term that is most suitable for designating the software
engineering ecosystem space, taking into account its initial independence from the activity of the biotic component. Thus,
initially, the landscape, being an ecotope, as a result of transformations (activities) carried out by the biota is transformed into a
biotope, turning, for example, into a terrain. In this context, this transformation is important for two reasons. First, unlike
ecology, the landscape of an ecosystem in software engineering cannot initially be specified (it is not a forest, a field, a pond,
etc.). However, this can be done if the landscape connect to the activity of the biota. Secondly, the activity of the biota will
determine the nature of the biotope in the future. Therefore, biotopes will be different for different ecosystems even with the
same activity.
The software engineering value chain. The ecosystem of biology is defined as the unity of interacting biotic (living)
and abiotic (non-living) components, which, based on the energy flow, establishes the trophic structure of the ecosystem,
species diversity and the circulation of substances in it [4]. Therefore, the second important part of an ecosystem is its trophic
structure. In defining the software engineering ecosystem, we will follow this definition. However, instead of the trophic
structure, we will use the added value factor of the same importance for software engineering. Then, instead of the trophic
structure in software engineering, we will use the value chain [8].
To build a chain, we will use nodes of two types (Fig. 1.). The first type of node designates the activity that
corresponds to the process of the chain (Fig. 1, a), indicating in it the designation of the process (Activity) and indirectly the
landscape, the designation of the biotic component (Biota), which implements the process and the abiotic component (Abiota),
which the biotic component uses to implement the process. The second type of node, we use to denote the added value - AVi
(Fig. 1, b).
Activity
Biota
Abiota
AV0
a). Activity node b). Added value node
Fig. 1. Types of value chain nodes
The value chain for software engineering can look like this (Fig. 2).
R&E
B
A
AV0
SE
B
A
AV1
ASD
B
A
AV2
SP&M
B
A
AV3
OP
B
A
AV4
M&D
B
A
AV5 AV6
Fig. 2. Software engineering value chain
On fig. 2, the following designations are used:
- AV0 - added value from previous activities (in this case, these are the results of research in fundamental sciences
that are not related to software engineering);
- R&E - Research and Education activity - fundamental research and education in software engineering; the main
biotic component consist of researchers and teachers, as well as other actors who perform supporting roles, such as trainers,
publishers, editors, etc.; abiotic component consist of educational standards, accreditations, universities, journals, conferences,
professional organizations, for example, ACM, IEEE;
- AV1 - added value from R&E activities, for example, theories, approaches, principles aimed at the development of
software engineering, and engineers, scientists prepared to work in software engineering;
- SE - Software Engineering activity - applied research in software engineering; the main biotic component, these are
software engineers, as well as other actors who perform supporting roles, for example, technical and maintenance personnel;
the abiotic component, these are, professional websites, magazines, organizations such as Association of Software
Fig. 2. Software engineering value chain
On fig. 2, the following designations are used:
- AV0 - added value from previous activities (in this case, these are the results of research in fundamental sciences
that are not related to software engineering);
- R&E - Research and Education activity - fundamental research and education in software engineering; the main
biotic component consist of researchers and teachers, as well as other actors who perform supporting roles, such as train-
ers, publishers, editors, etc.; abiotic component consist of educational standards, accreditations, universities, journals,
conferences, professional organizations, for example, ACM, IEEE;
- AV1 - added value from R&E activities, for example, theories, approaches, principles aimed at the development
of software engineering, and engineers, scientists prepared to work in software engineering;
- SE - Software Engineering activity - applied research in software engineering; the main biotic component, these
are software engineers, as well as other actors who perform supporting roles, for example, technical and maintenance
personnel; the abiotic component, these are, professional websites, magazines, organizations such as Association of Soft-
ware Professionals , Association for Women in Computing , Python Software Foundation , IACSIT Software Engineering
Society , GitHub;
- AV2 - added value from SE activities, such as platforms, tools, APIs, reusable components for use in the pro-
cesses of creating and maintaining application software;
94
Методи і засоби програмної інженерії
- ASD - Application Software Development activity - life cycle processes focused on the creation of
application software; the main biotic component, these are software developers, as well as other actors who
perform supporting roles, for example, the actors of supporting processes, products and tools for creating ap-
plication software; abiotic component, - resources and materials necessary for the implementation of life cycle
processes, standards, documentation;
- AV3 - added value from ASD activity, - software product for the application domain;
- SPM&S - Software Product Marketing and Sale activity - processes aimed at the software product
market and sales; the main biotic component these are product managers, market analysts and sales managers;
abiotic component these are resources and materials necessary for the delivery of the software product to users;
- AV4 - added value from SPM&S activity - software product sold or delivered to the user;
- Op - Operation activity - use of the software product; the main biotic component, these are users, as a
rule, from the application domain and the software product maintenance group, as well as other actors ; abiotic
component, these are resources and materials necessary for the use of the software product
- AV5 - added value from Op activity, - consultations, user training, changes made to the product and
documentation;
- M&E - Maintenance and Evolution activity - maintenance and evolution of the software product; the
main biotic component these are maintainers, domain analysts, reworkers and other actors; abiotic component,
these are supported software product, technical resources for maintenance and evolution;
-AV6 - added value from M&E activity, - an evolving software product, parts of a legacy software prod-
uct that are sent to the circulation of materials to create and maintain a new software product.
The software engineering ecosystems territory. By analogy with the ecosystems of ecology, the land-
scape metaphor is used for software engineering. An ecosystem is a landscape on which the unity of interacting
biotic (living) and abiotic (non-living) components is determined to perform the processes of the corresponding
activity. Landscapes can be distinguished by the unity of these components. Unity is determined by focusing
on the processes aimed at obtaining the corresponding added value. Landscapes can be local or distributed
geographically. Local landscapes are homogeneous environments, whit the same technical, social and cultural
values, that correspond to the geography of the given landscape. A distributed landscape, if it occupies geo-
graphically different territories, obviously cannot be characterized in this way. The totality of landscapes of all
activities of value chain form the software engineering territory.
Diversity of ecosystems. Taking into account the diversity of biotopes in the value chain, we can talk
about the diversity of software engineering ecosystems. The landscape of each ecotope within a value chain
node can be thought of as being composed of other landscapes and thus defining ecosystems corresponding to
the nested landscape. In ecology, this corresponds to the concept of an elementary landscape [4]. The applica-
tion of this view can be illustrated by the example of ASD activity, taking into account the life cycle processes
used to create application software. Considering, for example, the sequential life cycle model, it can be repre-
sented as a value chain, where each activity will unfold on the corresponding landscape. Landscape together
with biota and abiota will represent the ecosystem. Similarly, incremental, evolutionary, spiral and other life
cycle models based on the sequential life cycle model can be considered. The same view can be applied to
models of Agile methodology.
Finally, the diversity of software engineering ecosystems can be extended to the engineering that are
parts of it. This applies to reverse engineering and empirical software engineering. For example, for reverse
engineering, can build a value chain, where each added value will correspond to the knowledge obtained as a
result of software analysis activity at the corresponding level of its presentation. Landscape, biota, and abiota
each of activity will be ecosystem.
A diversity of activities and biotopes will create a diversity of software engineering ecosystems. We
propose to define the software engineering ecosystem using the term “landscape” and the designation of the
corresponding activity in the value chain. For example, for the activity «Application Software Development»
is defined the ecosystem of Application Software Development landscape.
What about the Software ecosystem?
From the point of view of this work, the factor that plays a fundamental role in the definition of an
ecosystem is the landscape. It, in the sense taken here earlier, is absent in the known definitions of the software
ecosystem. However, the term “software ecosystem” can be used if software is a landscape. Obviously, then we
can talk about some software system, the parts of which, being in relationships and interacting, will represent
the abiotic component of the ecosystem. The spatial structure of this abiotic component will be represented by
the software landscape, which can be visualized. At the same time, obviously, the software landscape will be is
a terrain, that is a biotope, which, strictly speaking, does not contain biota. However, it is also possible to rep-
resent the biotic component of the software landscape, if we draw a parallelism between the abiota components
of the Software ecology and Environmental Biology (Table 1).
By analogy with ecology [4], there may be tasks of studying the space-time structure of the software
ecosystem, information and control flows (algorithms), the principles of evolution and software circulation
(Subroutines, Modules (Classes), Megamodules), when legacy software is reused [3].
95
Методи і засоби програмної інженерії
Table 1. Software Ecology and Environmental Biology Analogies
№ Software Ecology Environmental Biology
1. Alphabet Molecules
2. Lexemes, simple types Cells
3. Operators, complex types Tissues
4. Structured operators Organs
5. Subroutines Organs (organisms)
6. Modules (Classes) Organs (organisms)
7. Megamodules Organs (organisms)
8. Software life cycle products Organisms (population)
9. Software products line (family) Population
10. Software of system of systems (ecosystem) Biogeocenos
11. Information flows Energy flows
12. Control flows (algorithms) Food chains
Software engineering ecosystem model
Figure 3 presents a model of the software engineering ecosystem. Initially, the space that the ecosystem will oc-
cupy is the landscape. Biota is located on the landscape. After that, the landscape can be considered as an ecotope. The
biota begins the activity of transforming the ecotope. The ecotope is transformed into a biotope. It is important to deter-
mine the nature and results of the biota’s activity in transforming an ecotope into a biotope.
Методи і засоби програмної інженерії
<<kind>>
Software engineering
ecosystems model
<<kind>>
Software engineering
ecosystem
<<category>>
SE Ecosystem landscape
<<kind>>
Ekotop
<<kind>>
Biotop
<<event>>
Transform ekotop to
biotop
<<associative>>
Transform rules
<<kind>>
Biota
<<event>>
Activity
<<kind>>
Abiota
<<kind>>
Added value
describes
consist of
owns
consist of
performs
performed at
transformed to
uses
increases
governs
governs
Fig. 3. Software engineering ecosystem model (SE - Software Engineering)
Types of the software engineering ecosystems
Fig. 4 shows the classification of the software engineering ecosystems. According to the nature of the landscape, all
ecosystems can be divided into two types - ecosystems of activity landscape and ecosystems of software landscape.
Ecosystems of the first type initially occupy some undeveloped space - an ecotope. Further, ecosystems of the first type is
divided into two groups. In the first group, we include ecosystems of landscapes of the value chain (Fig. 2), and in the second
group, ecosystems of engineering included in the software engineering.
Ecosystems of the second type is represented by an equipped landscape - software landscape (terrain, biotope). According to
the type of software landscape, ecosystems of the second type can be divided into three groups. Software life cycle products
(software systems) as ecosystems form the first group. In this case, the Software ecosystem should be considered as a
population of organisms and, therefore, as a system of the supraorganismal level. The second group is formed (if it is taken
into account) the concept of Individual-based Modeling [11]. Ecosystems are based on individuals and the properties of
individuals determine the properties and behavior of the ecosystem as a whole. Therefore, it makes sense to model individuals
in the context of a software system as an ecosystem. For example, the software artifact ecosystem [12]. The third group is
formed by software of system of systems ecosystems, in which Software life cycle products act as organisms. For example, big
data software ecosystem.
Fig. 3. Software engineering ecosystem model (SE - Software Engineering)
This can be done using of the software engineering culture [9]. The main difference between a biotope and
an ecotope is the best conditions for performing an activity. The change of the ecotope conditions is aimed at getting
more added value after performing this activity. The means to implement change will be different maturity models
96
Методи і засоби програмної інженерії
(CMMI, P-CMM), standards, ethics, organizational paradigms, open platforms. For example, in [10] for creating the
environment, tools, and activities of DevSecOps as an ecosystem the preparation phase is used. The phase includes
understanding the amount of cultural and process change that is required, and identify resources and a strategy that
will be transformed the current culture into one that supports DevSecOps principles and behaviors. At the same time,
in the future, in order to increase the added value, changes can be carried out in parallel with the biota performing
the main activity using the abiotic component of the biotope.
Types of the software engineering ecosystems
Fig. 4 shows the classification of the software engineering ecosystems. According to the nature of the landscape,
all ecosystems can be divided into two types - ecosystems of activity landscape and ecosystems of software landscape.
Ecosystems of the first type initially occupy some undeveloped space - an ecotope. Further, ecosystems of the
first type is divided into two groups. In the first group, we include ecosystems of landscapes of the value chain (Fig. 2),
and in the second group, ecosystems of engineering included in the software engineering.
Ecosystems of the second type is represented by an equipped landscape - software landscape (terrain, biotope).
According to the type of software landscape, ecosystems of the second type can be divided into three groups. Software
life cycle products (software systems) as ecosystems form the first group. In this case, the Software ecosystem should
be considered as a population of organisms and, therefore, as a system of the supraorganismal level. The second group
is formed (if it is taken into account) the concept of Individual-based Modeling [11]. Ecosystems are based on indi-
viduals and the properties of individuals determine the properties and behavior of the ecosystem as a whole. Therefore,
it makes sense to model individuals in the context of a software system as an ecosystem. For example, the software
artifact ecosystem [12]. The third group is formed by software of system of systems ecosystems, in which Software life
cycle products act as organisms. For example, big data software ecosystem.Методи і засоби програмної інженерії
[Введите текст]
Software engineering ecosystems types
Activity landscape ecosystems Software landscape ecosystems
Engineering landscapes
ecosystems
Forward engineering
landscapes ecosystems
Empirical engineering
landscapes ecosystems
Reverse engineering landscapes
ecosystems
Software of system of systems
ecosystems
Software systems
as ecosystems
Individual based software
ecosystems
Value chain landscapes
ecosystems
Fig. 4. Types of the software engineering ecosystems
Can note that several or all types of ecosystems can take place in the ecosystems of large companies, for example,
IBM, SAP, Microsoft [13].
Related works
The literature on software ecosystems is extensive and presents ecosystem definitions, requirements, models, and case
studies. The state of research is reflected in systematic reviews [13 - 16].
In the work [13] stated that out of 90 analyzed works, 40 do not define the software ecosystem, but use definitions
from other works. In the remaining 50 papers, four definitions are used with references to the authors (in [15], six definitions
are indicated). However, these four definitions also turned out to be so different that the authors of work [13] had to look for
something in common in order to formulate one definition. Obviously, this suggests that among researchers there is no
consensus on the definition of the term "software ecosystem". The ambiguous state of affairs is clearly seen from the results of
the work [16], which sets the goal of is to develop a common language for the software ecosystem domain. Examining the
literature on five topics that relate to the components of software ecosystems, the authors present the following results. There
are 46 types of entities found on the topic actors and roles. In addition, in the work [15] identified over 90 roles. At the same
time, there is a huge spread of actors in the list, from Researcher to Banks and Investors. On the topic Products and Platforms,
the same picture is observed. A total, 27 entities were found, ranging from API to Use case. On the Strategy topic, 21 entities
have been identified, and the spread is still large, from the Product lifecycle strategy to Licensing. Finally, on the Boundaries
topic, seven entities are identified, and the range is from Abstraction level to Output. In the work [16], only eight papers were
identified that dealt with the boundaries of the software ecosystem. The term Environment is used in three works as a context
in which software products, services operate, and ecosystem is a collection of software projects which are developed and
which coevolve together in the same environment. [17 – 19].
Analyzing the composition of the entities indicated in [16], one should pay attention not so much to their number and
diversity, but most importantly to their disunity. For example, finding the Researcher and Hedger actors or Community driven
and Executable components (Products and Platforms topic) in the same ecosystem. It is like finding a lion and a penguin in the
same biological ecosystem. The same can be said about other entities. Obviously, this indicates that the ecosystem or its
boundaries are incorrectly defined.
In the result of the analysis of related works, it has been suggested that the term software ecosystems is now actually
used to refer to a wider range of ecosystems, which are actually software engineering ecosystems. Therefore, the purpose of
our work was to propose such a definition of software engineering ecosystems that would allow us to avoid the existing
ambiguity.
Conclusion
Based on the hypothesis that the term “software ecosystems” is used to refer to a wider range of ecosystems, which
are actually software engineering ecosystems, the goal was to proposed a base for defining software engineering ecosystems.
As such, a base, by analogy with biological ecosystems, the concepts of landscape and value chains are proposed. Based on
Fig. 4. Types of the software engineering ecosystems
Can note that several or all types of ecosystems can take place in the ecosystems of large companies, for example,
IBM, SAP, Microsoft [13].
Related works
The literature on software ecosystems is extensive and presents ecosystem definitions, requirements, models, and
case studies. The state of research is reflected in systematic reviews [13 - 16].
In the work [13] stated that out of 90 analyzed works, 40 do not define the software ecosystem, but use definitions
from other works. In the remaining 50 papers, four definitions are used with references to the authors (in [15], six defini-
tions are indicated). However, these four definitions also turned out to be so different that the authors of work [13] had to
look for something in common in order to formulate one definition. Obviously, this suggests that among researchers there
is no consensus on the definition of the term “software ecosystem”. The ambiguous state of affairs is clearly seen from
the results of the work [16], which sets the goal of is to develop a common language for the software ecosystem domain.
Examining the literature on five topics that relate to the components of software ecosystems, the authors present the fol-
lowing results. There are 46 types of entities found on the topic actors and roles. In addition, in the work [15] identified
over 90 roles. At the same time, there is a huge spread of actors in the list, from Researcher to Banks and Investors. On
the topic Products and Platforms, the same picture is observed. A total, 27 entities were found, ranging from API to Use
case. On the Strategy topic, 21 entities have been identified, and the spread is still large, from the Product lifecycle strat-
egy to Licensing. Finally, on the Boundaries topic, seven entities are identified, and the range is from Abstraction level
97
Методи і засоби програмної інженерії
to Output. In the work [16], only eight papers were identified that dealt with the boundaries of the software ecosystem.
The term Environment is used in three works as a context in which software products, services operate, and ecosystem is
a collection of software projects which are developed and which coevolve together in the same environment. [17 – 19].
Analyzing the composition of the entities indicated in [16], one should pay attention not so much to their number
and diversity, but most importantly to their disunity. For example, finding the Researcher and Hedger actors or Commu-
nity driven and Executable components (Products and Platforms topic) in the same ecosystem. It is like finding a lion and
a penguin in the same biological ecosystem. The same can be said about other entities. Obviously, this indicates that the
ecosystem or its boundaries are incorrectly defined.
In the result of the analysis of related works, it has been suggested that the term software ecosystems is now
actually used to refer to a wider range of ecosystems, which are actually software engineering ecosystems. Therefore, the
purpose of our work was to propose such a definition of software engineering ecosystems that would allow us to avoid
the existing ambiguity.
Conclusion
Based on the hypothesis that the term “software ecosystems” is used to refer to a wider range of ecosystems,
which are actually software engineering ecosystems, the goal was to proposed a base for defining software engineering
ecosystems. As such, a base, by analogy with biological ecosystems, the concepts of landscape and value chains are pro-
posed. Based on these concepts, the existing variety of software engineering ecosystems is pointed out, a model of the
software engineering ecosystems and the classification of the software engineering ecosystems are proposed.
This paper is a continuation of the author’s works on the topic [3, 12, 20 - 23]. In future works, in order to confirm
the theses of the paper, it is undoubtedly necessary to conduct a Case study, perhaps on the examples of companies like
Microsoft, IBM, which have all types of the software engineering ecosystems on their territory.
References
1. Bourque P., Fairley R.E., eds., Guide to the Software Engineering Body of Knowledge, ver. 3.0, IEEE CS, 2014; www.swebok.org.
2. Nguyen T. N., The Ecology of Software: A Framework for the Investigation of Business-IT Integration Issues and Trends of Information Technol-
ogy Management in Contemporary Organizations, the proceedings of the Information Resources Management Association International Confer-
ence, 2002
3. Sydorov N.A.Software ecology, Software engineering, №1, 2010 (in Ukrainian).
4. Odum E P. Fundamentals of Ecology.. Saunders, Philadelphia, 1959.
5. Fundamentals of forest biogeocenosis, edited by V.N.Sukachev, М. Science, 1964 (in Russian)
6. Perry D. E., Kaiser G. E., Models of Software Development Environments, IEEE Transactions on Software Engineering, 1991. – Vol. 17, N. 3. – P.283-295
7. Balzer M., Noack A., Deussen O. Software Landscapes: Visualizing the Structure of Large Software Systems, IEEE TCVG Symposium on Visu-
alization (VisSym), May 19-21, 2004, Konstanz
8. Biffl, S. Aurum A., Boehm B., Value-Based Software Engineering, Springer, 2006, 398p.
9. Wiegers K., Creating a Software Engineering Culture, Dorset House Publishing, 1996
10. Guide to Implementing DevSecOps for a System of Systems in Highly Regulated Environments, TECHNICAL REPORT CMU/SEI-2020-TR-002,
April 2020, 111p
11. V. Grimm, S. F. Railsback, Individual-based Modeling and Ecology, Princeton University Press, 1999, 429 p.
12. Sydorov N., Programming Style As An Artefact Of A Software Artefacts Ecosystem, Advances in Computer Science for Engineering and Educa-
tion Ⅳ, Springer
13. Manikas K., Hansen, K.M.: Software ecosystems-a systematic literature review. J. Syst. Softw. 86(5), 1294–1306 (2013)
14. García-Holgado A., García-Peñalvo F. J., Mapping the systematic literature studies about software ecosystems, Proceedings TEEM’18. Sixth In-
ternational Conference on Technological Ecosystems for Enhancing Multiculturality (Salamanca, Spain, October 24th-26th, 2018), (pp. 910-918).
New York, NY, USA: ACM. doi: 10.1145/3284179.3284330
15. Suortti S., The Role of Software Platform and Actors in Software Ecosystems: A Case Study in Agriculture, Aalto University, 2017
16. Wouters J., Ritmeester J. R., Carlsen A. W., A SECO Meta-model A Common Vocabulary of the SECO Research Domain, Springer Nature Swit-
zerland AG, 2019
17. Boucharas, V., Jansen, S., Brinkkemper, S.: Formalizing software ecosystem modeling. In: Proceedings of the 1st International Workshop on Open
Component Ecosystems, IWOCE 2009, pp. 41–50, August 2009
18. Lungu, M. F. Reverse Engineering Software Ecosystems, Doctoral Dissertation submitted to the Faculty of Informatics of the University of Lu-
gano, September 2009
19. Knodel J., Manikas K., Towards a Typification of Software Ecosystems, Software Business 6th International Conference, ICSOB 2015 Braga,
Portugal, June 10–12, 2015 Proceedings, P77-82
20. Луцкий М., Сидоров Н., Программное обеспечение – экологический подход к исследованиям, Natural and Artificial Intelligence. –
ITHEA.–2010.–Sofia.–Bulgaria.–Р 181-189
21. Sydorov N.A, Sydorova N.N Sydorov E.N, Description model of programming style ecosystem, Problems in programming, 2-3, 2020, P 74-81
22. Sydorov N.A. Toward software artifacts ecosystem, Problems in programming, 4, 2020, P 110-120
23. Sydorov N.A. Programming Style as an Artefact of a Software Artefacts Ecosystem, International Conference on Computer Science, Engineering
and Education Applications, Springer, Cham, 2021, Kiev, P 244-255
Література
1. Bourque P., Fairley R.E., eds., Guide to the Software Engineering Body of Knowledge, ver. 3.0, IEEE CS, 2014; www.swebok.org.
2. Nguyen T. N., The Ecology of Software: A Framework for the Investigation of Business-IT Integration Issues and Trends of Information Technology
Management in Contemporary Organizations, the proceedings of the Information Resources Management Association International Conference, 2002
3. Сидоров Н.А.Экологія програмного забезпечення, Инженерія програмного забезпечення №1 2010
4. Odum E P. Fundamentals of Ecology.. Saunders, Philadelphia, 1959.
5. Основы лесной биогеоценологии под редакцией В. Н. Сукачева, М. Наука, 1964
6. Perry D. E., Kaiser G. E., Models of Software Development Environments, IEEE Transactions on Software Engineering, 1991. – Vol. 17, N. 3. –
P.283-295
98
Методи і засоби програмної інженерії
7. Balzer M., Noack A., Deussen O. Software Landscapes: Visualizing the Structure of Large Software Systems, IEEE TCVG Symposium on Visu-
alization (VisSym), May 19-21, 2004, Konstanz
8. Biffl, S. Aurum A., Boehm B., Value-Based Software Engineering, Springer, 2006, 398p.
9. Wiegers K., Creating a Software Engineering Culture, Dorset House Publishing, 1996
10. Guide to Implementing DevSecOps for a System of Systems in Highly Regulated Environments, TECHNICAL REPORT CMU/SEI-2020-TR-002,
April 2020, 111p
11. V. Grimm, S. F. Railsback, Individual-based Modeling and Ecology, Princeton University Press, 1999, 429 p.
12. Sydorov N., Programming Style As An Artefact Of A Software Artefacts Ecosystem, Advances in Computer Science for Engineering and Educa-
tion Ⅳ, Springer
13. Manikas K., Hansen, K.M.: Software ecosystems-a systematic literature review. J. Syst. Softw. 86(5), 1294–1306 (2013)
14. García-Holgado A., García-Peñalvo F. J., Mapping the systematic literature studies about software ecosystems, Proceedings TEEM’18. Sixth In-
ternational Conference on Technological Ecosystems for Enhancing Multiculturality (Salamanca, Spain, October 24th-26th, 2018), (pp. 910-918).
New York, NY, USA: ACM. doi: 10.1145/3284179.3284330
15. Suortti S., The Role of Software Platform and Actors in Software Ecosystems: A Case Study in Agriculture, Aalto University, 2017
16. Wouters J., Ritmeester J. R., Carlsen A. W., A SECO Meta-model A Common Vocabulary of the SECO Research Domain, Springer Nature Swit-
zerland AG, 2019
17. Boucharas, V., Jansen, S., Brinkkemper, S.: Formalizing software ecosystem modeling. In: Proceedings of the 1st International Workshop on Open
Component Ecosystems, IWOCE 2009, pp. 41–50, August 2009
18. Lungu, M. F. Reverse Engineering Software Ecosystems, Doctoral Dissertation submitted to the Faculty of Informatics of the University of Lu-
gano, September 2009
19. Knodel J., Manikas K., Towards a Typification of Software Ecosystems, Software Business 6th International Conference, ICSOB 2015 Braga,
Portugal, June 10–12, 2015 Proceedings, P77-82
20. Луцкий М., Сидоров Н., Программное обеспечение – экологический подход к исследованиям, Natural and Artificial Intelligence. –
ITHEA.–2010.–Sofia.–Bulgaria.–Р 181-189
21. Sydorov N.A, Sydorova N.N Sydorov E.N, Description model of programming style ecosystem, Problems in programming, 2-3, 2020, P 74-81
22. Sydorov N.A. Toward software artifacts ecosystem, Problems in programming, 4, 2020, P 110-120
23. Sydorov N.A. Programming Style as an Artefact of a Software Artefacts Ecosystem, International Conference on Computer Science, Engineering
and Education Applications, Springer, Cham, 2021, Kiev, P 244-255
Received 17.08.2022
Про автора:
Сидоров Микола Олександрович,
доктор технічних наук,
професор.
Кількість наукових публікацій у
українських виданнях – 140.
Кількість наукових публікацій у
зарубіжних виданнях – 22.
http://orcid.org/0000-0002-3794-780X
Місце роботи автора:
Національний Технічний Університет України
«Київський політехнічний інститут імені Ігоря Сікорського»,
факультет інформатики та обчислювальної техніки,
кафедра інформатики та програмної інженерії, ІПІ, професор.
02000, Київ,
вул. Політехнічна, 41.
Моб. тел.: 067 7980361.
E-mail: nyksydorov@gmail/com
Прізвища та ім’я авторів і назва доповіді англійською мовою:
Sydorov Nikolay
Toward software engineering ecosystems definition
Прізвища та ім’я авторів і назва доповіді українською мовою:
Сидоров Микола Олександрович
Щодо визначень екосистем інженерії програмного забезпечення
|