1. Create the unit to upgrade into, self explanitory.
2. Create the actor for the upgraded unit. Units without a unit actor created for them will not appear visually in game.
3. Morph ability. This is where you define the upgrade process such as time, how the unit acts when upgrading and to what it upgrades to (you can even have a unit upgrade to many units).
4. Button for upgrade in command card. This is where you define the art of the button and the tooltip.
5. Add the morph ability you made to the downgraded unit.
6. Add the morph order and button to the command card for the downgraded unit.
7. Modify the actor events for the downgraded unit to be destroyed during the morph process.
8. Modify the actor events for the upgraded unit to be created when the downgraded actor is destroyed (same event?).
Underlined words represent the cataloge the data type is in.
That should suffice. Check command centre, hatchery or spire for more details on the right actor events used.
If the "upgrade" has minor visual changes, consider using the same unit actor for all upgrades and instead changing only the visuals required to save extra data declerations. If you use a lot of units with the same actor you can do the same. An unit actor can be used as the actor for many different unit types. The only restriction unit actors have is that 1 must exist for all units at any time (having 0 or more than 1 is known as an actor error).