Industrial software projects are not based on a top-down development process relying on refinement but use a more iterative and incremental approach with respect to changing requirements. We call this an evolutionary approach. In this paper, we present the basic concepts of a suitable overall componentware methodology with respect to software evolution. We clarify the difference between refinement steps and evolution steps in an document-based development process. Based on this, we introduce the concept of requirements/assurances contracts to explicitly model the dependencies between the development documents. This helps developers to track and manage the software evolution process. A short example shows the usefulness of the presented concepts and introduces a description technique for requirements/assurances contracts in componentware.