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 http://www.cis.ohio-state.edu/rsrg.