Zakon o programski opremi podpira transakcije s programsko opremo in ščiti intelektualno lastnino, vključeno v samo programsko opremo. Transakcije na splošno vključujejo licenciranje, podporo in razvoj. Programska oprema je zaščitena z različnimi pravicami intelektualne lastnine.
Licenčne pogodbe za programsko opremo so lahko preproste pogodbe ali podrobne pogodbe, običajno odvisno od vrednosti transakcije. Potrošnik lahko prenese aplikacijo z interneta in se strinja s pogoji licenčne pogodbe za programsko opremo, tako da na spletu klikne pogoje pogodbe. Te licenčne pogodbe niso predmet pogajanj. Potrošnik mora sprejeti pogoje, če želi licencirati programsko opremo.
Zakon o programski opremi zajema večje transakcije licenciranja programske opreme, o katerih se pogajajo stranke. Te stranke se lahko začnejo z osnovno pogodbo, ki jo zagotovi prodajalec programske opreme, vendar je končni dogovor tisti, ki sta ga obe strani spremenili, da ustreza posebni transakciji. Takšni dogovori vključujejo lastniške pogoje in posebne pravice, ki jih pridobitelju licence podeli dajalec licence. Stopnja spremembe glede na prvotno osnovno pogodbo je nekoliko odvisna od količine prilagoditve programske opreme s strani ponudnika programske opreme za pridobitelja licence.
Nekatere transakcije s programsko opremo vključujejo spremembe izvirne programske opreme s strani prodajalca. Te spremembe so lahko del licenčne pogodbe za programsko opremo ali pa so zajete v ločeni pogodbi o razvoju programske opreme. Druge transakcije s programsko opremo so lahko za določeno lastniško programsko opremo. Sporazumi, ki opredeljujejo te transakcije, bodo določili, kdo je lastnik te na novo razvite programske opreme in katera stranka prejme licenco. Stranke morajo pri pogajanjih o teh transakcijah upoštevati različne vidike prava o programski opremi.
Pogodbe o podpori programske opreme določajo parametre, po katerih mora prodajalec programske opreme zagotavljati podporo. Te pogodbe se razlikujejo glede na stroške osnovne programske opreme in stopnjo prilagajanja. Poceni programska oprema ima na splošno omejeno količino podpore. Bolj prilagojena ali dražja programska oprema ima zelo specifične pogoje podpore.
Podporni sporazumi lahko vključujejo različne ravni podpore. Osnovna raven je zagotovljena v delovnem času. Naslednja raven podpore je lahko zagotovljena izven delovnega časa in se lahko dodatno zaračuna. Zakon o programski opremi obravnava parametre, pod katerimi je ta podpora zagotovljena stranki.
Zaščita avtorskih pravic je zagotovljena za večino programskih aplikacij. Nekatere programske aplikacije lahko pridobijo patentno zaščito. Obstajajo posebna zaščitna področja, ki lahko zajemajo določene vrste programske opreme. Zakonske zaščite programske opreme se razlikujejo glede na državo. Pogajanja o licenci za programsko opremo med dvema mednarodnima naročnikoma še dodatno zapletejo pogodbe, saj je treba upoštevati zakone, predpise in pogodbe vsake države, saj stranke določajo posebne pravice, podeljene v okviru teh sporazumov.