Traditional, non-component-based software development in its purest form is typically performed in a top-down fashion in which the whole system is broken down into consecutively smaller parts that are ...
The component diagram, basically, shows 'what's in the box' using both components and artefacts. Component diagrams in UML 2.0 are far more powerful (and useful) than those presented in UML 1.x.