Међутим, када постоји друштвени односно јавни интерес или интерес законитих носилаца лиценце, ауторско право на рачунарски програм може се ограничити односно поједине радње искоришћавања се могу дозволити и без сагласности носиоца права на рачунарски програм, као и без плаћања накнаде.
Тако, на пример, у ауторском праву важи опште правило да је дозвољено, без дозволе аутора и без плаћања ауторске накнаде, привремено умножавање ауторског дела било које врсте и форме уколико је умножавање пролазно или случајно; саставни и битан део самог технолошког процеса; сврха таквог умножавања да омогући пренос података у рачунарској мрежи између два или више лица преко посредника; сврха умножавања да омогући законито коришћење самог ауторског дела и уколико умножавање нема засебан економски значај.
Правила ограничења ауторског права која важе за рачунарски програм
Поред општих правила за ограничење ауторског права изнетих у претходном ставу, када је реч о рачунарском програму, Закон о ауторском и сродним правима (даље: Закон) прописује и додатна правила о ограничењима – суспензији права која важе само у случају рачунарског програма. Тих ограничења има неколико, и неформално их можемо поделити у две целине: она која се тичу омогућавања коришћења програма законитом носиоцу лиценце, и она која се тичу омогућавања декомпилације под одређеним условима да би се успоставила интероперабилност програма.
Ограничења у циљу омогућавања несметаног коришћења рачунарског програма
Постоје радње умножавања програма које су нужне да би програм уопште могао да се употребљава. И с тим у вези законодавац је прописао ситуације у којима су предметне радње умножавања дозвољене без обавезе да се тражи посебна сагласност носиоца права.
Уколико је ауторско дело рачунарски програм (под условом да уговором између носиоца права и корисника програма није нешто друго предвиђено), лицу које је примерак рачунарског програма прибавило на законит начин (законити носилац лиценце) дозвољено је да без дозволе аутора и без плаћања ауторске накнаде трајно или привремено умножи рачунарски програм или поједине његове делове, али под условом да је то неопходно да би се рачунарски програм могао користити, и ако је то у складу са наменом самог рачунарског програма.
Такође, у исту сврху је законитом имаоцу примерка рачунарског програма дозвољено и учитавање, приказивање, покретање, преношење или складиштење рачунарског програма у меморију рачунара, а с тим у вези законити ималац примерка програма може без дозволе аутора и носиоца права да отклања грешке у програму како би програм функционисао.
Уколико је пак неопходно да се, у циљу коришћења и пуштања у рад програма, направе и копије тог програма на носачу односно у меморији рачунара, такав вид складиштења мора бити дозвољен, односно не може се законитом кориснику програма забранити ни уговором о лиценци.
Ограничења у циљу постизања интероперабилности
Рачунарски програм се од стране законитог имаоца примерка програма може посматрати, испитивати или тестирати, с циљем да се утврде идеје и принципи на којима неки од елемената програма почива, а све под условом да се то чини док се предузимају радње учитавања, приказивања, покретања, преноса програма или смештања тог програма у меморију у складу са наменом и начином коришћења. Поред омогућавања адекватног коришћења програма од стране купца лиценце, циљ овакве одредбе је омогућавање ширења знања и идеја, даљи технолошки напредак и иновације. Један од разлога оваквог тестирања и испитивања може бити и успостављање интероперабилности са другим рачунарским програмом, у коју сврху се врши превод изворног кода. Тај поступак утврђивања изворног кода рачунарског програма назива се декомпилација. Начелно је забрањена, осим на начин и у обиму у ком је законодавац то прописао.
Декомпилација рачунарског програма, која се састоји од умножавања и превођења изворног кода, може бити дозвољена без дозволе носиоца права, између осталог, само уколико је то неопходно ради прибављања података неопходних за постизање интероперабилности независно створеног рачунарског програма са другим програмима.
Такође, да би предметни изузетак од ауторскоправне заштите могао да се примени, односно да би декомпилација била дозвољена, додатно је потребно да буду кумулативно испуњени следећи услови:
- да радњу умножавања изворног кода и превода његове форме врши законит носилац лиценце, односно друга особа која има право да користи примерак програма или лице које је од стране тих лица овлашћено да предузима те радње;
- да подаци који су неопходни за постизање интероперабилности нису на други начин били доступни поменутим лицима;
- да су радње из претходне тачке ограничене само на оне делове оригиналног програма који су неопходни за постизање интероперабилности.
Описани изузетак од ауторскоправне заштите трпи још услова, који се односе на коришћење информација добијених умножавањем изворног кода и преводом његове форме. Односно, на овај начин добијени подаци могу се користити искључиво у циљу постизања интероперабилности независно створеног рачунарског програма, при чему је нарочито забрањено да се добијене информације саопштавају другима (осим ако је то неопходно за постизање интероперабилности независно створеног рачунарског програма). Подаци добијени декомпилацијом такође се не смеју користити за развој, производњу или рекламирање рачунарског програма који је суштински сличан у изразу рачунарском програму чија се декомпилација врши или за било коју другу радњу којом се повређује ауторско право на том програму. Коришћење података добијених декомпилацијом у другу недозвољену сврху водило би повреди ауторског права, а потенцијално би се том радњом стекли и елементи кривичног дела.
Важно је напоменути да су одредбе Закона које регулишу ограничења ауторског права у циљу постизања операбилности императивног карактера и не могу се искључити нити ограничити уговором.
Интероперабилност у софтверском смислу подразумева могућност компјутерских система и рачунарских програма да међусобно деле информације, односно да се могу препознавати и заједно функционисати.
Питање интероперабилности рачунарских програма је комплексно и слојевито јер се може рашчланити на неколико врста, попут семантичке и структуралне, која представља могућност да системи и програми размењују податке и препознају и отварају формате фајлова, или пак техничке или синтактичке интероперабилности која, између осталог, подразумева могућност успостављања безбедносних протокола помоћу којих се комуницира на мрежи.
Интероперабилност функционише тако што су два рачунарска програма или више њих креирани и подешени на начин да међусобно могу размењивати информације, препознавати команде и сарађивати. Без интероперабилности рачунарски програми не би могли међусобно да функционишу, нити би могли да се инсталирају на оперативне системе, али ни хардверски не би могли да се повезују на мрежу и различите уређаје.
На пример, да би апликације могле да буду преузете на телефонским уређајима са Андроид оперативним системом и да на њему функционишу, потребно је да такви софтвери (апликације) буду интероперабилни са Андроидом. А да би се интероперабилност постигла, о софтверу на коме се базира овај оперативни систем морају се знати карактеристике изворног рачунарског кода.
Међутим, за неке програме потребно је проћи поступак декомпилације, да би се утврдиле карактеристике дела кода који је потребан за успостављање интероперабилности.
Појам декомпилације подразумева поступак обрнут од поступка настанка рачунарског програма. Дакле, рачунарски програм настаје тако што програмер пише најпре изворни – source код, затим компајлер такав код преводи у бинарним језиком исписан object код који је читљив компјутерским уређајима. С тим у вези, када неко жели да изврши декомпилацију неког програма, полази од object кода, па долази до људима разумљивог source кода, који може умножавати и преводити.