ABSTRACT

Although tools may help understand and maintain programs, certain problems related to change are inherently difficult to address. As Frederick Brooks pointed out in his seminal paper “No Silver Bullet” [1], programs are essentially complex and there is no easy way to get around that fact. The sheer size of programs makes programs complex and difficult to both understand and change. Software systems today can comprise tens of millions of lines of code (LOC), with thousands of interrelated components. MS Windows is approaching 100 million LOC, complexity that becomes difficult to handle with today’s technology. We will surely be challenged by even larger and more complex software in the future.