First, I’d like to commend the translator and editor, Frank Bott, for an excellent piece of translation. I share his view that there are many current issues in software engineering that have evolved from works in cognitive psychology. I also share his view that while some aspects of this research from cognitive psychology have been imbibed by software researchers, there are several instances where these research “borrowings” have been adapted to suit the specific requirements of software practitioners. Other important and related research works have been neglected, thereby bringing into practice a partially converted theoretical approach.
The book is organized around three themes: design, reuse, and program understanding. I believe this is an effective organization of the contents. One area that that is not recognized in the section on obstacles and suggestions for their removal, however, is the (global) legal aspects of software reuse. This issue has been brought forth by the software industry’s “worldwide” business mind-set, and the inherent cultural differences regarding what constitutes “appropriate” reuse in various regions of the world. In my opinion, this issue inhibits widespread reuse, and keeps organizations more closed to mutual collaboration with the intent to reuse software. If it does become widespread, then there will be a need to address the dichotomy between “market branding” and “free-market” specifically, as competition will be stifled in many situations. This globalization of software development presents a problem that is new to us, and hence will require much greater interaction among not just these two fields, but a host of others, too, including sociology and psychology, the study of people, business, and political culture.
I am not sure if this book will serve as a good undergraduate text, since it assumes the reader is familiar with various issues in software engineering. It can serve as an excellent book for a faculty teaching special topics at the senior or graduate level, particularly in a course on understanding advanced issues in software engineering research.