Well, I've got a basic system like that in my own game... granted, it doesn't use stats like "strength, dexterity, etc" but just basic "skill points."
How i do it is i have a FSM that controls the XP systems... Now, there are ways you can code this to be more algorithmic but I have it run a test whenever the XP has changed (I use an int, so the "int changed" is the action i use to fire off.)
Then i go to a check system... it checks the value of the XP and if there is enough, it does the "level up"
in the "Level up" set of actions, i just tell it to add in X to another int called "available skill points" (i know i should probably call it something else... and use the tooltip for that bit.)
Now, in another system (i usually use the GUI system) i have a set of buttons in one state that controls where those skill points are spent. when the user spends a point, it fetches the value, deducts one from it and returns the new balance of skill points to the system that's holding that value. from there, the set of states that use the skill points can be set up for whatever you need it to do. so, if you want to do the traditional RPG system of Str/dex/int/sta/etc... then you can set up a button in the character sheet system if you have one to add one point to each.
I guess it depends on how you want to have it set up... but a basic skill point management system isn't the toughest (but it's not the simplest either... as with everything, there is no "do it, and make it awesome" button.
)