Introduction

Hewlett-Packard's great interest in significantly improving its software process has led to several software initiatives, including a Corporate Reuse Program to make software reuse a systematic part of HP's software process for the 1990s[7]. This program is a broad, coordinated effort involving management, process, technology, education and research, for HP divisions developing domain-specific (or application specific) common architectures, frameworks and reusable components for families of related products, such as embedded software for instruments, printers, chemical and medical systems.

HP Labs and Corporate Engineering are developing a domain-specific reuse process for develop for reuse, develop with reuse, and workproduct management[4]. In this context, domain refers to set (or subset) of systems that share a significant number of common user requirements, and admit of common implementation(s). Different domains might be best implemented using different technologies, different tools, different architectures, and (hence) different development processes. For example, the use of a 4GL for the domain of certain financial problems might naturally lead to much more of a ``prototyping'' mode of developing. These guidelines and methods involve domain analysis, the definition of an architectural framework and components, and the construction, management and integration of these components. Corporate Engineering focuses on process, education and best practices, while HP Labs concentrates on research in processes, tools and environments.

This paper summarizes HP Labs research in component-oriented construction of novel, distributed applications, using kits, software-bus frameworks, and hypertext. Related work includes user-programmable UI components, OO methods and domain analysis.