This standard describes an iterative process for managing and executing software maintenance activities. Use of this standard is not restricted by size, complexity, criticality, or application of the software product. This standard uses a process model to discuss and depict aspects of software maintenance. The criteria established apply to both the planning of maintenance for software while under development, as well as the planning and execution of software maintenance activities for existing software products. Ideally, maintenance planning should begin during planning for software development. This International Standard provides the framework within which generic and specific software maintenance plans may be executed, evaluated, and tailored to the maintenance scope and magnitude of given software products. This International Standard provides the framework, precise terminology, and processes to allow the consistent application of technology (tools, techniques, and methods) to software maintenance. This International Standard provides requirements and guidance for the maintenance of software. The basis for the Maintenance Process and its activities is consistent with ISO/IEC/IEEE 12207:2017, Systems and software engineering -- Software life cycle processes. This standard defines the activities and tasks of software maintenance, and provides maintenance planning requirements. It does not address the operation of software and the operational functions, e.g., backup, recovery, or system administration, which are normally performed by those who operate the software.