In this article we present a method for estimating the effort of software projects following an evolutionary, object-oriented development paradigm. Effort calculation is based on decomposing systems into manageable building blocks (components, subsystems, classes), and assessing the complexity for all their associated development cycles. Most terms of the complexity calculation formulae carry coefficients which represent their individual weights ranging from factors for particular features up to general influence factors of the project environment. These coefficients can continuously be improved by statistical regression analysis. Outstanding features of the method are its flexibility (allowing estimations for project portions of any size) and its capability to deal with dynamic adjustments which might become necessary due to changed plans during project progress. This capability reflects the evolutionary character of software development and, in particular, implies revision, use and evaluation activities.