1. A software estimation system for use in software engineering, comprising: a) at least one neuro-fuzzy component, wherein each neuro-fuzzy component implements a plurality of fuzzy rules, and wherein said at least one neuro-fuzzy component takes as input a plurality of contributing factor ratings and processes said contributing factor ratings in accordance with said fuzzy rules to compute numerical parameter values for an algorithmic model; and b) an algorithmic model module coupled to said at least one neuro-fuzzy component, wherein said module takes as input said numerical parameters and processes said numerical parameter values in accordance with said algorithmic model to compute at least one output metric; wherein each output metric provides an estimate of a characteristic associated with a software development project.