Distributed Software Evolution: a Survey

04/28/2022
by   Mohammad Reza Besharati, et al.
0

Distribution can be a feature of the software evolution process. In other words, temporally and spatially distributed teams and organizations can develop and work on a software application. The simplest case is to outsource production and employ workforce at distributed sites so that multiple distributed teams can work on a project within a parallel framework. If this distribution is global, it will be called the global software evolution or development. A higher level of distribution is defined as decentralization and decentralized software evolution, which means that software development can be independent of the initial provider. It also means that software execution is independent of the initial provider and the initial system so that the software application can easily be reused in different and new projects. However, the high level architecture is managed within a practically centralized framework in the decentralized software evolution. Most of the large scale open-source projects are exemplars of this level. In terms of distribution, there is a higher level of decentralized software evolution called "distributed cognition and leadership". At this level of distribution, all system levels evolve within a distributed framework, and there are no centralized points in the project network and its evolution process. Some open-source software applications are the exemplars of this last level. Not only is the distributed software evolution faced with certain challenges and opportunities to reach its goals, but it has also caused some challenges and opportunities in other fields. This paper conducts a general review of the distributed software evolution. For this purpose, the paper first addresses the importance of the distributed software evolution, and then introduces its noteworthy paradigms.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset