The methodologies of product-line engineering emphasize proactive reuse to construct high-quality, less costly products. To refer software product line engineering, it is important to analyze the commonality and variability of a domain and to develop core assets based on them. But, core assets are in the different levels of abstract because they are produced at different steps of software development. The variability of core assets has been exposed as a different type at different level. We must consider the variability in requirement and architecture level that are higher than code level to develop core assets successfully in product line engineering. If we consider the variability at higher level, we can reduce the amount of work that handles the variability as the development step is proceeded.