This paper presents a systematic method for simultaneously defining a software architecture and selecting off-the-shelf components for reuse. The method builds upon existing techniques for component selection and architecture evaluation. We identify architectural decisions that have a large effect on the components used early in the process so that different ways of building the system can be investigated. The result of applying the method is a partial definition of a system’s architecture along with a set of components that could be incorporated. Categories and Subject Descriptors D.2.11 [Software Engineering]: Software Architectures; D.2.13 [Software Engineering]: Reusable Software Keywords Component-based software engineering, component selection, software architecture, multi-criteria decision making