"In this book Jacobson establishes a new direction for the future of software engineering practice. It is a thorough presentation of ideas and techniques that are both solidly proven and simultaneously at the leading edge of software engineering methodology." Larry L. Constantine, RODP, Organization & System Consultant
"Object-Oriented Software Engineering belongs in the book collection of every serious student of object methodologies." Larry O'Brien, Editor, COMPUTER LANGUAGE
"Perhaps the most profound and deeply revealing volume on object technology to date ... It is simply a must-own book." Steve Bilow, Journal of Object-Oriented Programming
"Jacobson is in my opinion one of the foremost methodologists in the field of Software Engineering ... I strongly recommend ... this book ... not only for software managers and designers but for anyone who wishes to understand how the next generation of Software Systems should be built." Dave Thomas, Object Technology International
From the Publisher
Object-oriented techniques for the whole software life cycle
"This is a book on industrial system development using object-oriented techniques. It is not a book on object-oriented programming. We are convinced that the big benefits of object orientation can be gained only by the consistent use of object orientation throughout all steps in the development process. Therefore the emphasis is placed on the other parts of development such as analysis, design and testing.
You will benefit from this book if you are a system developer seeking ways to improve in your profession. If you are a student with no pervious experience in development methods, you will learn a robust framework which you can fill with details as you take part in future development projects. Since the focus on the text is on development, the book will be convenient to use in combination with other texts on object-oriented programming. Many examples illustrate the practical application of analysis and design techniques.
From this book you will get a thorough understanding of how to use object orientation as well as the basic technique throughout the development process. You will learn the benefits of seamless integration between the different development steps and how the basic object-oriented characteristics of class, inheritance and encapsulation are used in analysis, construction and testing. With this knowledge you are in a much better position to evaluate and select the way to develop your next data processing system.
Even though object orientation is the main theme of this book, it is not a panacea for successful system development. The change from craftsmanship to individualization does not come with the change to a new technique. The change must come on a more fundamental level which also includes the organization of the complete development process. Objectory is one example of how this can be done.
This book does not present Objectory. What we present is the fundamental ideas of Objectory and a simplified version of it. In this book we call this simplified method OOSE to distinguish it from Objectory. To use the process in production you will need the complete and detailed process description which, excluding large examples, amounts to more than 1200 pages. Introducing the process into an organization needs careful planning and dedication. It also requires that the process be adapted to the unique needs of the organization. Such process adaptations must of course be carefully specified, which can be done in a development case description, as will later be explained.
It is our hope that we have reached our goal with this book, namely to present a coherent picture of how to use object-orientation system development in a way which will make it accessible both to practitioners in the field and to students with no previous knowledge of system development. This has been done within a framework where system development is treated as an industrial activity and consequently must obey the same requirements as industry in general. The intention is to encourage more widespread use of object-oriented techniques and to inspire more work on improving the ideas expounded here. We are convinced that using these techniques will lead to better systems and a more industrial approach to system development.
Part I: Introduction. The book is divided into three parts. The first part covers the background, and contains the following chapters:
System development as an industrial process The system life cycle What is object-orientation? Object-oriented system development Object-oriented programming This part gives an introduction to system development and summarizes the requirements of an industrial process. It also discusses the system life cycle. The idea of object orientation is introduced, and how it can be used in system development and during programming is surveyed.
Part II: Concepts. The second part is the core of the book. It contains the following chapters:
Construction Real-time specialization Database specialization Components Testing The first chapter in this part introduces the fundamental concepts of OOSE and explains the reason why these concepts are chosen. The following chapter discuss the method of analysis and construction. The next two chapters discusses how the method may be adapted to real-time systems and database management systems. The components chapter discusses what components are and how they they can be used in the development process. Testing activities are discussed in a chapter of their own.
Part III: Applications. The third and last part covers applications of OOSE and how the introduction of the new development process may be organized and managed. This part ends with an overview of other object-oriented methods. This part comprises:
Case study: warehouse management system Case study: Telecom Managing object-oriented software engineering Other object-oriented methods Appendix. Finally we have an appendix which comments on our development of Objectory."
-from the preface