Not a lot of theory involved, I think most people fiddle with their armor values once they've got the propulsion and weapons fitted.
The main thing you need to think about is what you're designing protection from. In most cases this means missiles - missile ships need to survive an exchange of fire, while beam ships need to survive some hits until they can close the range. A rough rule you can use is to put enough armor on a ship to survive missile hits equal to what you could expect from an ASM either at your tech level or one higher (the latter being more expensive, but also more future-proof and better against certain flavors of high-tech NPRs you might run across). Essentially, since missiles have a maximum armor penetration equal to the square root of their damage rounded down, you try to anticipate the damage an enemy missile could do and put on enough armor to ensure that a missile won't penetrate - it might reach the last layer of armor but won't do any internal damage.
This gives you a decent rule of thumb for a minimum amount of armor, but in practice you'll need more as ships get larger, engagement ranges get longer, missiles and launchers get faster, etc. There's some statistical work that's been done but I'm not aware of a good general model for how many hits from N-damage missiles an X-by-Y armor belt can survive before internal damage is probable. Additionally, beam ships will need heavier armor if they expect to get into brawls with other beam ships, especially if the enemy has lasers or, worse, particle lances. At some point, you start to get a feel for how your armor matches up against different NPRs, assuming you're not just killing them immediately, so you can start to tailor your designs a bit.
As a rough rule of thumb, it may make sense to set as a fleet doctrine a certain percentage of the ship's tonnage dedicated to armor, which will naturally lead to thicker armor as you research better techs. Anywhere from 10-20% is a decent starting point, so I suggest picking something that sounds reasonable and seeing how it works out (and if it doesn't, learning from failures is how Aurora is played, after all).