An introduction to software evolution principles for postgraduate electrical engineering students.
Software evolution refers to the continuous change and adaptation of software systems after their initial development to meet new requirements, fix issues, and adapt to changing environments.
Meir "Manny" Lehman was a computer scientist who made significant contributions to software engineering, particularly in understanding software evolution and the software process.
Lehman categorized software systems into three types based on their relationship with the real world:
Lehman's laws have profound implications for how we approach software engineering, especially for long-lived systems:
How electrical engineers can apply Lehman's laws to their work: