“…Features should be well-known by both customers and designers and can be functional (services or operations) and nonfunctional (capacity, usage, cost, and other quality attributes) [67]. [43], aspect-oriented programming [73], generative programming [22], product line software engineering [20,67,68], reengineering [85,86], object oriented software engineering [66,72,90], component based systems [63,65,88,110,115,117], feature oriented programming [6].…”