This volume offers a systematic approach to creating and positioning reusable software components and products. The Domain Analysis methodology described in the book shows how to use commonality and variability analysis in studying the market, co-ordinating with competitors, engineering new products, and minimizing risks. Software engineers and network designers should learn how to analyze and define a "space of variability" on which new products can be based and positioned. Additionally, the book helps readers to understand how software products compare, how to market software reuse products, how to co-ordinate release of a product to profit from a competitor's release and pool groups of users, and how to maximize long-term marketing plans for your product. Real-world case studies illustrate applications of the methodologies described in the book, including "Sherlock", a method that binds domain analysis to market analysis and planning.