Software maintenance is the most difficult and extremely expensive activity of lifecycle of software systems. We show that maintenance cost estimation depends on many factors that are not taken into account by widely used maintenance cost estimation methods.
The factors include variants of systems architecture, especially service- and component-oriented ones, variants of software development processes, communication means, and the software artifact maintenance duration and history. We present an analysis of reasons and sources of maintenance effort needs.
We show that the maintenance issues and effort can be substantially reduced in systems having a special form of service-oriented architecture - software confederations.