In a previous post I discussed how any given weapon could maintain up to 12 attachments, these attachments are not considered really to be upgrades even if they do modify the gun in some way such as increased velocity or what would otherwise be considered an upgrade. To recap attachments there's scopes, foregrips, launchers, clip types, ammunition including magnesium tracers which you can set to feed at a variable rate such as 1 in every 3 rounds, or one half way through the clip etc. There's also attachments for increased cooling of the weapons that generate heat like machine guns or any assault rifles that happen to use various kinds of rounds that generate heat. There's stocks, muzzle attachments, laser sights, flashlights, handles and triggers, paint jobs, etc. Upgrades are the internals, the tech etc, while there's a few fancy models set up because you don't see the internals in game they're not actually there instead once applied they just modify stats relating to the gun.
Some of the upgrades include better heat management, barrel replacement for increased velocity which can also be done with barrel extensions. There's various springs, rods, feeders, etc all to change any given stat of the gun with multiple upgrades. In later stages these include adding computer aided aiming systems, thermal maps, bullet tags to trace an enemy's location if they survived your attack but got hit, various other systems that would normally be an accessory taking up a valuable accessory slot are now being attached to your gun. These upgrades must be in place first before they can be used as attachments and then they can also be upgraded beyond that. You can also put research in to finding better ammo such as upgrading to use uranium rounds or a higher velocity shape to existing rounds which may also effect accuracy. Even light weight materials to decrease weapon weight so the player can run faster and draw the weapon faster. In the late stages with higher tech weapons upgrades become key to reducing cooldown, recharge, and refire times so that a weapon can be used effectively.
Each gun and gun type have their respective skills sets in addition so that the more you use a specific gun the better you become with it. While your standard reload time for all guns might be nice and fast you can improve it further with a specific gun skill earned by reloading the gun a given number of times. Same goes for handling kick by firing, switching to and from the weapon, aiming down the sights, and various other aspects. These skills are learned by doing unlike upgrades which are purchased over time with resources and time spent for research or attachments which are bought one at a time.