Change is pervasive during software development. Change management can be facilitated by software-process programming, which formalizes software products and processes in software-process programs. Toward this end process-programming languages (PPLs) should include constructs that address specific change-management problems. These include lack of explicit representation for relationships, weak or inflexible constraints on objects and relationships, visibility of implementations, lack of formal representation of processes, and dependence on manual practices. APPL/A is a prototype PPL that addresses these problems. APPL/A is an extension to Ada, APPL/A includes abstract, persistent relations with programmable implementations, relation attributes that may be composite and derived, triggers that react to relation operations, optionally-enforcible predicates on relations, and five composite statements that provide flexible transaction-related capabilities. Relations enable relationships to be represented explicitly and derivation dependencies to be maintained automatically. Relation bodies may implement alternative storage and computation strategies without affecting users of relation specifications. Triggers can automatically propagate data, invoke tools, and perform other change-management tasks. Predicates and the transaction-related statements can be used to support change management in the face of concurrent processes and evolving standards of consistency. Together, these features mitigate many of the problems that complicate change management in software development.