Some examples of the contents of a component are header files, help, information about compatibility and dependencies, hardware or software requirements, design information, test cases, and so on. A component can also contain source code.
In Rational Synergy, a component can be represented by an individual file or a project.
Because file versions are reusable, they can be created or built in one project and used in another. For example, the ccmscci.dll library file might be built in the ccmscci project where its source code is stored. However, the same file can also be included as a member in both the visual_studio_integration and va_java_integration projects. Each project can contain a different version of the file, depending on its needs.
In addition, you can create a project that contains several files that are published together as a component. For example, you might create a project called ccmserver_ext (which is similar to the ccmserver project, but for external use only), containing the files ccmserver.jar, ccmserver.properties, and ccmserver.html. You can have many versions of the ccmserver_ext project, each containing a published version of the component with compatible files.
You might also consider an entire source project a component, if the component users must view or modify the code.
Because components can be composed from other components, you can have entire project hierarchy that represents a component.
The following topics describe how Rational Synergy manages component-based development.