Commit yourself of one full week of being "hard" or her.
Actually you are not being hard, all you are doing is walking, shes the one being rude and trying to pull you about.
Connect the lead, take the handle in your right hand and place your left hand in the middle of the leash with the dog sitting at the heel of your left foot.
Start from there and walk, dont let her move from the side of your foot as you walk, when she does, a short sharp tug and "HEEL" in a short direct tone (not angry, frutsrated or pleading), you may need to do this a few times in a row at first before she gives you a break. The second she does begin saying "good girl" "good girl" "good girl", being a dog she will translate this into "yippee i can do what i want again" and try wandering off.
Continue with your tug heel tug heel each walk. Over the course of the week she will improve and by the end of the week she should be near perfect on the leash and very well placed to work with heel off leash also.
Your objective is not to dominate her, be angry, make her your slave, you have a simple goal, to go for a walk without being pulled around by an impatient and rude child. Set out with that and use your "heel and tug" to achieve it.
Always praise her when shes doing it and always reward her after walks with a treat and love.
I use this longer method because I use harness training which doesnt hurt the dog and requires more time to get it through. You can use training collars which are probably faster getting it accross. Its just not the way I do it. Id rather take the week with little harness tugs to get them doing as they ought.
Hope it helps.
Be prepared tough and DONT get frustrated by their intial attempts to test and bushwack you. keep you tone always the same, the tug and command sharp and direct and show her she cannot influence this no matter what she tries.