A software product model emphasizing relationships
Shih-Chien Chou, Chun-Wei Huang
Proceedings Second Asia-Pacific Conference on Quality Software
Managing software products during software development is essential. A model is needed to model products and facilitates product management. Important product management functions include: 1) version control, 2) configuration management, 3) product consistency management, 4) reference completeness management, and 5) product reuse support. This paper proposes a product model to facilitate the functions above. Since product relationships play important roles in product management, the proposed
... el especially emphasizes them. . Communicated by Michael R. Lyu. SHIH-CHIEN CHOU AND CHUN-WEI HUANG 350 1) Intra-DEP relationships. Intra-DEP relationships link sub-products within a product. To construct intra-DEP relationships within a product, the product should first be decomposed into sub-products. Intra-DEP relationships are then established among the sub-products according to change effects. When a sub-product of a product is changed, other sub-products affected by the change can be identified by tracing intra-DEP relationships. We use an example to explain in more details what can be benefited from intra-DEP relationships. Suppose we have a program of 10K lines and the program is stored in a repository as a single product (i.e., the program is not decomposed and no intra-DEP relationship is established). Then, when a portion of the program is changed, the whole program should be checked to identify the parts that are affected by the change. Since the size of the program (i.e., 10K lines) is large, identifying the parts affected by a change within the program would be time-consuming and error-prone. On the other hand, suppose the 10K-lined program is decomposed into 20 sub-products and intra-DEP relationships are established among the sub-products. Then, when a sub-product is changed, intra-DEP relationships can be traced to identify the affected sub-products. The affected sub-products can then be checked to identify the affected parts. Since the size of a sub-product (i.e., 0.5K lines in average) is mush smaller than that of the whole product, identifying affected parts from sub-products should be much easier than identifying affected parts from the whole product. Since product change is unavoidable during software development and maintenance, intra-DEP relationships contribute much in both software development and maintenance. 2) Inter-DEP relationships. Inter-DEP relationships are actually the "developed based on" relationships. For example, if a design document is developed based on a specification, the former product inter-depends on the latter one. Since changing a product will affect the ones inter-depending on the changed product, inter-DEP relationships facilitate identifying the affected products when a product is change. Combining product decomposition and inter-DEP relationships contribute more in identifying the exact parts within the affected products. That is, if inter-DEP relationships are established between sub-products of different products, identifying the affected parts within an affected product will be much easier. We use an example to explain this. Suppose a design document is developed based on a specification and both the products are not decomposed. In this case, an inter-DEP relationship exists between the products. When a portion of the specification is changed, the whole design document should be checked to identify the affected parts. On the other hand, suppose the specification and the design document are decomposed and inter-DEP relationships are established between the sub-specifications and sub-design documents. Then, when a sub-specification is changed, only the sub-design document(s) inter-depending on the changed sub-specification should be checked to identify the affected parts. Since the size of a sub-product is smaller than that of the whole product, identifying affected parts from a sub-product will be easier than from the whole product. By now we only describe the use of product relationships in change management. In our research, we also identified that product relationships facilitate identifying correlated products for reuse, as described below: Shih-Chien Chou (周世杰) received a Ph.D. degree from the . He currently serves as a soldier in Chinese Army.