A meta-model for large-scale software system

For large-scale software system development, many configuration items will be produced during software life cycle and every configuration item will evolve independently. Therefore, there is a need for adopting a suitable model to describe the configuration items, the relationship among them, the evolving of a single item and the constraints of the system. By means of UML class diagram, we propose a software configuration meta-model to express configuration items, relationships among the items and the evolvement of each configuration item. The model consists of three kinds of classes: configuration item, port and version. We also defined four relationships: aggregation, generalization, dependency and successor. The notion of port is used to describe the static properties and dynamic behaviors of a configuration item. The constraints of configuration items are defined using the object constraint language (OCL). The model must conform to several constraints: well-formed configuration, behavior equivalence, upward compatibility, and structural conformance. In short, the model can express complex software product structure and describe constraints in a precise way. It provides a strong basis for controlling change and supporting support management and development in the large-scale software system.