| Readers'Guide | p. xv |
| Author Biographies | p. xix |
| Introducing Software Reuse | p. 1 |
| First of All | p. 1 |
| Definition and Basic Essentials | p. 2 |
| Reuse Is a Systematic Software Development Practice | p. 3 |
| Reuse Employs a Stock of Building Blocks | p. 4 |
| Reuse Expoits Similarities in Requirements and/or Architecture Between Applications | p. 7 |
| Reuse Offers Substantial Benefits in Productivity, Quality and Business Performance | p. 10 |
| Some Further Introductory Essentials | p. 14 |
| There Are Various Routes by Which Assets Achieve Reuse | p. 15 |
| There Is an Important Relationship Between Reuse and Software Process Maturity | p. 16 |
| Reuse Is an Investment, Whether or Not You Call It That | p. 18 |
| Reuse May Be Pursued Within the Wider BusinessContext of Product Line Practice | p. 19 |
| Systematic Reuse - Crossing Frontiers | p. 22 |
| Systematic Reuse as a Critical Transition | p. 22 |
| Why So Long? | p. 23 |
| A Note on the Experience Base Used in This Book | p. 25 |
| Reusable Software Assets | p. 27 |
| What Is a Software Asset? | p. 27 |
| A Software Asset Is a Software Product | p. 28 |
| What Kind of Asset? | p. 28 |
| Asset Granularity | p. 30 |
| What Is an Asset Made of? The Asset Model | p. 30 |
| Technical Strategies | p. 34 |
| What Are the Characteristics of Reusable Assets? | p. 35 |
| General Criteria: Quality and Reusability | p. 36 |
| Functional Criteria | p. 36 |
| Technical Criteria | p. 37 |
| Managing Software Assets | p. 38 |
| Asset Life Circle | p. 38 |
| Organizing Asset Acquisition | p. 38 |
| Make or Buy? | p. 40 |
| Assets vs Objects | p. 44 |
| OO Is Neither Necessary Nor Sufficient | p. 45 |
| OO Is an `Enabling' Factor | p. 45 |
| What About Business Objects? | p. 46 |
| Reuse Repository | p. 49 |
| Who Needs a Repository? | p. 49 |
| Requirements for a Reuse Repository | p. 50 |
| What Is Stored Inside a Repository? | p. 50 |
| Functions of a Repository | p. 51 |
| Non-Functional Requirements | p. 54 |
| Repositories on the Internet | p. 56 |
| Tool Categories on the Market | p. 57 |
| Reuse-Specific | p. 57 |
| Repositories | p. 59 |
| Intranet and Groupware Tools | p. 60 |
| Key Points in the Choice of an Asset Repository | p. 61 |
| Reuse Processes | p. 65 |
| What Processes Do We Need? | p. 65 |
| What Is a Process? | p. 65 |
| Why Are Reuse Processes Necessary? | p. 66 |
| Extending Reuse Boundaries | p. 68 |
| The Producer-Consumer Paradigm | p. 70 |
| Different Ways of Practising Reuse | p. 71 |
| An Overview of Reuse Processes | p. 73 |
| Who Does What? | p. 74 |
| Starting a Corporate Reuse Programme: The Reuse Introduction Process | p. 75 |
| Should I Go for Reuse? | p. 76 |
| The Software Productivity Consortium Reuse Adoption Process | p. 78 |
| Practising Reuse: Asset Production and Application Production Processes | p. 79 |
| The REBOOT Process Model | p. 79 |
| Jacobson, Griss and Jonsson Process Model | p. 80 |
| Should I Practise Domain Engineering? | p. 81 |
| Processes in the Field | p. 83 |
| Qualifying and Evaluating Assets | p. 84 |
| Managing Risks When Reusing | p. 85 |
| Advertising Assets | p. 86 |
| Communicating About Reuse | p. 87 |
| Maintaining Assets | p. 88 |
| Managing and Improving Reuse Efficiency | p. 89 |
| A Summarized Vision on Processes: How Does Reuse Affect Traditional Software Processes? | p. 90 |
| Managing Reuse | p. 93 |
| The Management Issues | p. 93 |
| To Reuse or Not To Reuse? - the Big Question | p. 94 |
| Reuse for All, and All for Reuse | p. 98 |
| Adapting the Work Structure | p. 101 |
| Conditioning Factors | p. 102 |
| Key Decisions | p. 106 |
| Final Comments on Work Structure | p. 110 |
| Reuse Metrics | p. 111 |
| General Aspects of a Metrics Programme | p. 111 |
| A Typical Reuse Metrics Programme | p. 114 |
| G1 | p. 114 |
| G2 | p. 117 |
| G3 | p. 118 |
| G4 | p. 119 |
| G5 | p. 121 |
| G6 | p. 122 |
| What To Count as Reused? | p. 122 |
| Reuse Techniques and Technologies | p. 127 |
| Rationale | p. 127 |
| Reuse-Enabling Architectures | p. 128 |
| Three-Tier Architecture | p. 129 |
| Multi-Layered, Web-Enabled Architecture | p. 131 |
| Internet Systems Architectures | p. 131 |
| Object-Oriented Techniques | p. 133 |
| Design Patterns | p. 134 |
| Object-Oriented Frameworks | p. 136 |
| Component-Based Development | p. 140 |
| Client-Side Components | p. 142 |
| Server-Side Components | p. 144 |
| Internet Components | p. 148 |
| From Component Reuse to Information Reuse | p. 149 |
| Agent-Based Systems | p. 150 |
| Comparison of Techniques | p. 151 |
| Developing With Reuse: Which Types of Artefacts Are Reused? | p. 151 |
| Developing for Reuse: Which Phase of the Software Life Cycle Does the Technique Involve? | p. 152 |
| Two Major Case Histories | p. 155 |
| Two Smaller Case Histories | p. 171 |
| Experience Review and Success Factors | p. 189 |
| The Experience Base | p. 189 |
| Analysis of Experience | p. 199 |
| Successes and Failures in General | p. 199 |
| Successes in More Detail | p. 201 |
| Failures in More Detail | p. 204 |
| A Reuse Introduction Decision Sequence | p. 206 |
| Conclusion | p. 208 |
| Acronyms | p. 211 |
| Selected Bibliography | p. 217 |
| Index | p. 219 |
| Table of Contents provided by Publisher. All Rights Reserved. |