Foreword Preface Acknowledgments PART I Getting Started Chapter 1 Introduction to Software Engineering Chapter 2 Modeling with UML Chapter 3 Project Organization and Communication PART II Dealing with Complexity Chapter 4 Requirements Elicitation Chapter 5 Analysis Chapter 6 System Design:Decomposing the System Chapter 7 System Design:Addressing Design Goals Chapter 8 Object Design:Reusing Pattern Solutions Chapter 9 Object Design:Specifying Interfaces Chapter 10 Mapping Models to Code Chapter 11 Testing PART III Managing Change Chapter 12 Rationale Management Chapter 13 Configuration Management Chapter 14 Project Management Chapter 15 Software Life Cycle Chapter 16 Methodologies:Putting It All Together PART IV Appendices