Page 4 -
P. 4

PREFACE















                                       As I was writing the final chapters in this book in the summer of 2009, I realized
                                       that software engineering was 40 years old. The name ‘software engineering’ was
                                       proposed in 1969 at a NATO conference to discuss software development problems—
                                       large software systems were late, did not deliver the functionality needed by their
                                       users, cost more than expected, and were unreliable. I did not attend that conference
                                       but, a year later, I wrote my first program and started my professional life in software.
                                         Progress in software engineering has been remarkable over my professional life-
                                       time. Our societies could not function without large, professional software systems.
                                       For building business systems, there is an alphabet soup of technologies—J2EE,
                                       .NET, SaaS, SAP, BPEL4WS, SOAP, CBSE, etc.—that support the development and
                                       deployment of large enterprise applications. National utilities and infrastructure—
                                       energy, communications, and transport—all rely on complex and mostly reliable
                                       computer systems. Software has allowed us to explore space and to create the World
                                       Wide Web, the most significant information system in the history of mankind.
                                       Humanity is now faced with a new set of challenges—climate change and extreme
                                       weather, declining natural resources, an increasing world population to be fed and
                                       housed, international terrorism, and the need to help elderly people lead satisfying
                                       and fulfilled lives. We need new technologies to help us address these problems and,
                                       for sure, software will play a central role in these technologies.
                                         Software engineering is, therefore, a critically important technology for the future
                                       of mankind. We must continue to educate software engineers and develop the disci-
                                       pline so that we can create more complex software systems. Of course, there are still
                                       problems with software projects. Software is still sometimes late and costs more
                                       than expected. However, we should not let these problems conceal the real successes
                                       in software engineering and the impressive software engineering methods and tech-
                                       nologies that have been developed.
                                         Software engineering is now such a huge area that it is impossible to cover the
                                       whole subject in one book. My focus, therefore, is on key topics that are fundamental
   1   2   3   4   5   6   7   8   9