Software configuration management involves tracking all changes made to software work products throughout development and maintenance. It aims to control changes through processes like version control, change control, and configuration auditing to ensure quality. Maintenance is inevitable as system requirements change over time due to evolving environments and needs. It accounts for a significant portion of total software costs and involves understanding the system, locating information, and implementing changes while keeping documentation up to date. Predicting maintenance needs involves understanding relationships between systems and their environments.