Traditionally, a software product is produced through distinctive stages,
such as development stage, quality control stage and a production stage,
often resulting in difficulty of communications and lack of
collaborations among the stages. To provide a true collaborative
environment, techniques for creating a model are described. The model, in
one perspective, is a collection of instances of environments needed for
the stages to achieve a predetermined status of the software product.
According to one embodiment, the model includes a plurality of first and
second elements. Each of the first elements pertains to one of the
instances and each of the second elements represents relationships
between or among the first elements. Further the model may include a
plurality of third elements, each carrying instructions or data. As a
result, a model, accessible by each of the stages, provides a
collaborative environment and is applicable to each of the stages,
synchronizes changes and facilitates communications among the stages,
thus greatly improving collaborations, communications and efficiency of
producing the software product.