  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.
