HP Domain Analysis: Producing Useful Models for Reusable Software
Patricia Collins Cornwell · 1996
A software domain is a set of systems or applications that share some common functionality. This common functionality is typically embodied in various software components.* Domain analysis is a software engineering process that produces a characterization of a software domain to support the reuse of the software components. The HP domain analysis method produces a set of models that guide the design of reusable software. While a few papers and books have been published on aspects of domain analysis,1,2,3,4,5 very little has been published on practical domain analysis methods. HP has developed and refined a practical domain analysis method which has been used in several reuse projects. The method has proven to be an effective and efficient way to get the information needed for the design of domain-specific software. The focus of each domain analysis is guided by the business priorities and anticipated uses of the domain models. This article describes a reuse process framework and the essential activities, deliverables, and typical uses of the results from the HP domain analysis method. Because the HP domain analysis method is designed to be tailored to the strategies of HP’s business organizations, sections of this article will describe the business contexts for reuse strategies and special reuse roles in the organization. Reuse Process Framework Early reuse efforts focused on libraries of general-purpose routines or functions. These small-grained assets did not produce the productivity and quality improvements hoped for because so much engineering effort had to go into integrating these assets to produce a useful product. More recent efforts have shown that architecture-based, domain-specific reuse with larger assets can provide significant productivity and quality improvements. For the past five years, practical engineering experience in adapting reuse to meet HP’s business needs has confirmed that the biggest return on investment comes from reuse that is based on domain-specific components that work in a flexible, but well-defined architecture. Reuse-oriented engineering addresses how these software assets are produced, supported, and used. Because each organization has its own variations on processes and often quite distinct choices of specific methods, the U.S. Department of Defense’s Software Technology for Adaptable, Reliable Systems (STARS) program sponsored a project to develop a conceptual framework for reuse processes. 3 This conceptual framework helps organizations understand the relationships among their software asset production, support, and utilization processes. HP participated heavily in the definition of the reuse process framework and provided some of the earliest experiences in its application. The usefulness of this reuse process was validated with organizations adopting reuse-oriented software engineering practices. This article’s discussion of major reuse processes blends the knowledge gained from the STARS Conceptual Framework for Reuse Processes (CFRP) 6 with subsequent experience in reuse adoption at HP.