In embedded system development, a crucial task is to reduce the maximum power consumption owing to power source limitations while maximizing the quality of service. The tradeoff between power consumption and quality of service needs to be resolved. If software can change its power consumption in accordance with the power consumption of hardware, it can reduce the maximum power consumption while increasing the quality of service. In this paper, we propose a model-based Development methodology for software with self-adaptive power consumption. With the proposed method, software changes its behavior during runtime by linking state-machine diagrams described by Executable UML to a feature model used in Software Product Line development. This method makes it possible to change the power consumption due to software according to the power consumption of the whole target device. The target software can maximize the quality of service under certain power constraints. Therefore, the target software can satisfy the tradeoff between power consumption and quality of service. Evaluation results showed that the average response time was about 0.22 s, and the adaptive rate was about 87.6%.