Component Diagrams are used show the interfaces/services exposed by "programs" (like one or more POJOs packed together, EJBs, Webservices etc) and how they interact with each other.
For example, if you have an
EJB for Order Processing, then it will be a component in your component diagram. Granular level details like attributes, methods, arguments of this service wont be exposed/provided in the component diagrams.
Value Objects are very granular structures used to encapsulate the business data. These are not complex enough to be qualified to be put in Component Diagrams.
Class diagrams should be granular and detailed, which should contain each and every class we use in the application and its relationship with other classes.
Hope this helps.
Regards,
Joseph, SCEA
[ February 23, 2007: Message edited by: Joseph Alexander ]