Lets talk about the combat mechanics and how hard attack and soft attack work and how softness affects these.

First you have to distinguish between the "statistically expected result" and the actual result obtained in a specific case. For example, when flipping a coin ONCE, the "statistically expected result" is 50% for heads, 50% for tails; but the actual result will be either heads or tails, not some quantum superposition of the two states. When flipping a coin one hundred times, the "statistically expected result" would be 50 heads and 50 tails, but the actual result can be expected to vary randomly from that ratio.

HOI-2 combat proceeds in the following stages:

1) At the beginning of each hour of combat, all of the units involved (friendly and enemy) have their combat efficiencies recalculated, based on such factors as Leadership, Terrain, Minister bonus, Techs, Effective Supply Efficiency, current unit Strength, and so on. This efficiency bonus or penalty will directly increase or decrease the unit's stats such as Soft and Hard attack, Defensiveness, Toughness, etc.

2) Also at the start of the hour, each unit selects a target randomly, at which it will fire ALL of its shots during that hour of combat. Targeting is not necessarily reciprocal... if unit A attacks enemy unit Z, then unit Z is still free to choose its own enemy target, possibly unit A but perhaps a different one.

3) Next, all of the units involved in the combat (on both sides) are checked to see which one has the highest modified (Soft or Hard, not Soft plus Hard) attack strength... and the hour is divided into that number of rounds or impulses, with fractions dropped. For instance, if one of my units had a modified Soft attack of 24 (base 16 Soft Attack, skill 5 Leader, +10% Decryption bonus, 100% Infrastructure with Offensive Supply, no Terrain penalty = 24.75 rounded down to 24) then that hour would be divided into 24 impulses... assuming that my Hard Attack was also less than 25.

4) Now each impulse of the hour is fought, with each participating unit that still retains some firepower (ie: assuming that it has not yet exhausted all of its shots) firing ONE shot at its predetermined target (remember that it will fire ALL of its shots in any one hour at the SAME target). Before firing, the chosen target's Aspect is checked to see whether it presents a Hard or Soft target to its opponent on this particular impulse (not hour), and the firing unit only succeeds in getting off a shot on this impulse if it still has an uncommitted shot of the same type (Hard or Soft) as the target Aspect. Each impulse in the hour uses up one Soft and one Hard shot, regardless of which type of shot was actually used during that impulse.

5) If the firing unit succeeded in getting off a shot, the target unit can now attempt to avoid any damage from the shot. The chance of avoiding damage (for normal, full GDE land units) is 80% if the unit is defending and still has at least one point of Defensiveness left, 80% if the unit is attacking and still has at least one point of Toughness left... and 60% otherwise. Each incoming enemy shot uses up one point of Defensiveness (or Toughness, depending on Attacking/Defending stance), regardless of whether or not damage from the shot has been successfully avoided.

6) Shots that hit and are not avoided now apply STR/ORG damage to the targets, after which the next impulse is calculated. When all the impulses in the hour are finished, a check is made to see if any units withdraw from combat (ORG < 5), and the unit stats are recalculated for the next hour of combat... some factors will have changed (eg: Strength, Night modifiers, etc). Units select new targets (or possibly the same one) randomly, and the next hour is begun.

This rather complicated model can be reduced mathematically to a fairly simple calculation of "Expected Hits", which is:

EH = (SA x Softness) + (HA x Hardness)

... which can then be compared to the opponent's modified Defensiveness (or Toughness, depending on stance), and any expected hits less than DEF/TOU multiplied by 0.2 while any expected hits that exceed DEF/TOU are multiplied by 0.4 instead... this is the inverse of the 80%/60% parameters mentioned in (5) above.