## 1 Introduction
However, there is still a lack of research that describes a specific feature formally and considers its connection to the feature model. In this paper, we propose a systematic approach to product family modeling. The method performs inconsistency checks during the formalization of each feature in the given initial feature model, pushing the evolution of the feature model and feature specification, and finally obtains an internally consistent product family model. The method formalizes the specification of each feature on the basis of an initial feature model. Moreover, the consistency of feature specifications with the feature model is checked during the formalization of features. When an inconsistency is detected, a relevant operation is performed to promote the evolution of the feature model. The approach consists of two key techniques: a template-based modeling approach for feature model construction and evolution and a rule-based inconsistency check approach for detecting inconsistencies between the feature specification and the feature model and giving solutions. For the template-based modeling method, each template contains two parts of knowledge: the elements needed to describe a class of feature models, and the algorithm to translate the given elements into formal description. The rule-based inconsistency checking approach is based on the consistent implementation of the formal specification. Each rule consists of a condition and an action. When the feature description and the feature model satisfy all the conditions of the rule, it indicates that there are descriptions of inconsistency, and the corresponding action hints are given to resolve the inconsistency. There are three types of consistency check rules: variable consistency rule, functional scenario consistency rule, and functional path consistency check rule. A tool is implemented to support our approach. It guides the user in constructing and evolving the product family model. The tool detects the consistency problem between feature specification and feature model in the feature description process and automatically generates the corresponding solution according to the satisfied conditions. A specific case study is presented in the paper to illustrate how our tool works. Our approach is language independent. We use the PFA language to describe feature models and the Structured Object-Oriented Formal Language (SOFL) [11; 12] language to describe feature specifications. We chose PFA because it can derive the specification of the members of a product family from the algebraic specification of the abstract features of that family and the specification of each feature. We chose SOFL because it is formal and easy to use. SOFL as a formal description language combines formal methods, graphics, and a three-step approach to address the gap between formal methods and actual software development. There are already examples of specifications using the SOFL language in the actual industrial requirements analysis phase [13]. The remainder of the article is organized as follows. Section 2 reviews the related work. Section 3 presents our computer-aided product family modeling after introducing the algebra of product families and the formal specification technique of SOFL. Section 4 uses a concrete example to illustrate our approach and to briefly introduce our support tools. Section 5 summarizes the points of the article and describes what problems we have solved so far and the direction of our work afterward.