The nature and complexity of software have changed significantly in the last 30 years. In the 1970s, applications ran on a single processor, produced alphanumeric output, and received their input from a linear source. Today’s applications are far more complex; typically have graphical user interface and client-server architecture. They frequently run on two ....