“the state of being cheap enough for people to be able to buy.”

Cambridge dictionary


In the context of software system quality and software engineering, affordability refers to the cost-effectiveness of developing, deploying, maintaining, or acquiring a software system. When a software system is described as “affordable,” it means that its total cost — considering both initial costs and ongoing costs — provides good value for the capabilities and benefits it offers.

Affordability in software engineering can encompass several aspects:

  • Development Costs: Expenses for design, development, testing, and deployment — including developer wages, software tools, infrastructure, and training.
  • Maintenance Costs: Regular updates, patches, and upgrades over the system’s lifecycle.
  • Licensing Costs: Cumulative cost of third-party components, platforms, or services.
  • Training Costs: Effort and expense required for users to become proficient.
  • Operational Costs: Running costs including hosting, server maintenance, and data storage.
  • Scalability Costs: Expenses associated with growing the system to support more users or data.

Budget Constraints

… the budget for the project, expressed in money or available resources.

Volere+2012, p. 22

A budget constraint is a specific expression of affordability: the upper limit on what an organization is willing or able to spend. While affordability is the quality attribute (does the system provide good value for its cost?), a budget constraint is the project-level boundary that operationalizes it.