abstract Router xor Interface Bluetooth xor Wifi GHz_24 GHz_5 Ethernet_Mbps -> integer? [Ethernet_Mbps => (Ethernet_Mbps = 1 || Ethernet_Mbps = 10 || Ethernet_Mbps = 100)] abstract xor Antennas Small //Att[Small_Cost_Eur = 1] Medium //Att[Medium_Cost_Eur = 2] Large //ATT[Large_Cost_Eur = 3] EnergyRate_Watts -> integer? // Classes definitions sections CRouter : Router CAntennas : Antennas CC1Antennas : Antennas CC2Antennas : Antennas //Cross-tree constraints [CC1Antennas.Large] // Attributes product functions definitions // ATTF[*_Cost] // Products with Quality Attributes Section [EnergyRate_Watts => ((Bluetooth && CAntennas.Small && CC1Antennas.Large && CC2Antennas.Small) && (EnergyRate_Watts = 10) || (GHz_24 && CAntennas.Small && CC1Antennas.Large && CC2Antennas.Small) && (EnergyRate_Watts = 9) || (GHz_5 && CAntennas.Small && CC1Antennas.Large && CC2Antennas.Small) && (EnergyRate_Watts = 8) || (Ethernet_Mbps && CAntennas.Small && CC1Antennas.Large && CC2Antennas.Small) && (EnergyRate_Watts = 7))]