Maintenance cost generally presents the major cost factor during the lifecycle of a software system.
Consequently, when developing a software system, stakeholders are very interested that the system is
designed in such a way that future changes will be relatively easy to implement, since this decreases
maintenance cost. Typical questions that stakeholders pose during the early design stages, i.e. software
architecture design, include: