A conceptual approach is to simply count electrons in a bond and treat each bonding valence electron as half a bond order.
This works for many cases, except for when the highest-energy electron is in an antibonding molecular orbital.
SIMPLE CASE
For example, the bond order of #:"N"-="N":# fairly straightforward because it's a triple bond, and each bonding valence electron contributes half a bond order.
So:
#"BO"_"triple" = "BO"_sigma + 2"BO"_pi = 1/2 xx ("2 electrons") + 2(1/2 xx ("2 electrons")) = 3# for the bond order, as we should expect, since bond order tells you the "degree" of bonding.
MULTI-ATOM CASE
Or, in a more complicated example, like #"NO"_3^(-)#, a conceptual approach is to count the number of electrons in the bond and see how many bonds it is distributed across.
So, in #"NO"_3^(-)#, which has one double bond in its resonance structure, has #2# electrons in its #pi# bond, distributed across three #"N"-"O"# bonds.
That means its #bb(pi)#-bond order is simply #1/2*("2 pi electrons")/("3 N"-"O bonds") = color(blue)("0.333")#, making the bond order for each #"N"-"O"# bond overall be:
#"BO" = "BO"_sigma + "BO"_pi = 1 + 0.333 = 1.333#.
Therefore, #"NO"_3^(-)# on average actually has three "#bb("1.333")#" bonds overall (instead of one double bond and two single bonds), meaning it is one third of the way between a single bond and a double bond.
EXCEPTION EXAMPLE: O2
#"O"_2# actually has two singly-occupied #pi^"*"# antibonding orbitals.
If we were to calculate its bond order, we would get #2# normally, corresponding to the #:stackrel(..)("O")=stackrel(..)"O":# Lewis structure.
But what if we wanted the bond order for #"O"_2^(+)#? From the discussion above, we may expect #1.5#, but it's NOT #1.5#, even though #"O"_2^(+)# has one less valence electron. What is it actually?
You may realize that we would have removed one electron from an #pi^"*"# antibonding molecular orbital. That means we've removed half a bond order corresponding to antibonding character, which is the same as adding half a bond order corresponding to bonding character.
So, by removing an antibonding electron, we've done the equivalent of adding a bonding electron.
In other words, we've decreased a bond-weakening factor, thereby increasing the bonding ability of the molecule.
Therefore, the actual bond order of #"O"_2^(+)# is #bb(2.5)#, stronger than #"O"_2#!