Abstract
The impact and importance of software has come a long way. And yet, a new generation of software developers must meet many of the same challenges that faced earlier generations. This paper aims to identify some of the most fundamental issues, challenges and opportunities for research in Software Engineering. The paper starts by examining the past, current, and future states of software engineering. The paper then examines the critical technical issues in software engineering including complexity, structure, and evolution of software systems; economics of software engineering, and measurement of software engineering products and processes, as well as the critical people and organizational issues including learning, motivation and performance improvement.