You should try to decrease the amount of food she gets in every meal and not let her choose when to eat,because as you say she's a little overweight,So you should choose her meal times and amounts of food she gets in every meal. For starters make her food routine once when you wake up at maybe 6 or 7AM, 12PM, 6 PM and if she gets hungry again 12 AM. But, the half cup should become a 1/4 cup or even less because you'll be feeding her 3 to 4 times a day. And make the amounts of food she gets in every meal the same. Lets say a 1/4 cup or less. If you didn't go with the times i chose, it's okay to choose your own times, as long as it takes 6 to 7 hours between each meal.
In short it's easier to say give her less amounts of food, and more meal times than you used to give her before, and it should be 4 at max. If you notice she still isn't hungry after 6 to 7 hours from each meal then make it 8, although that seems too long. But don't give her food before 6 hours, calories need time to burn.
Of course you should try to help burn them by playing. Training too can help,and exercising. But to make it more fun for her stick up with training and playing. If you start to give her meals on routine, she'll have more appetite to be ready for training. Try tossing treats to make her run after them and eat them, don't make them lots of treats though. 5 treats are enough for every season. 3 seasons maximum per day. Training the cat to stand up or do anything else to get treats is also good, just make sure to not give a large amount of treats.
So to answer the header in three words i'd say:
1- have a routine to the meals she gets
2- have her get the same amount of food every time
3- play with and exercise your cat
Even if your cat asks for more food at each dish it's important not to give her more. Her health depends on it.