Prev Up
Go backward to Template Support for Variation
Georg Trausmuth

Go up to Programming Methodology

An Overview of Generic Programming in RESOLVE
Bruce W. Weide

RESOLVE is the name for three related notions: (1) a conceptual framework for thinking about, understanding, and designing component-based software; (2) a research language that supports this conceptual framework; and (3) a discipline for software component engineering within this conceptual framework that can be applied in practice in languages that support generic programming, particularly C++ and Ada. Our emphasis is on "industrial-strength" software systems, so we focus on key technical issues of concern in the software engineering community: correctness, efficiency, and maintainability. Key ideas and mottoes from RESOLVE include contributions to specification design (formal model-based specifications, a.k.a. "domain analysis considered harmful"), behavioral interface design (the swapping paradigm, a.k.a. "assignment considered harmful", and recasting algorithms as objects, a.k.a. "iterators considered harmful"), implementation design (fully-parameterized components, a.k.a. "concrete-to-concrete component coupling considered harmful"), and application design (modular reasoning about component-based software, a.k.a. "visible pointers considered harmful"). The RSRG web page is at


Prev Up