Джерела правового регулювання програм для ЕОМ. В даний час охорона програм для ЕОМ як об’єкта виключного права регулюється в Росії двома законами: «Про правову охорону програм для електронних обчислювальних машин і баз даних» і «Про авторське право і суміжні права». При цьому прийнятий в 1993 р. Закон про авторське право майже у всіх позиціях скасував більш ранній, прийнятий у 1992 р., Закон про правову охорону програм для ЕОМ. Винятком є його ст. 13, присвячена праву на реєстрацію програми для ЕОМ і включає норму про обов’язкову реєстрацію договору про повну поступку всіх майнових прав на зареєстровану програму.

Про застосування та взаємодії двох згаданих законів неодноразово висловлював свою думку проф. Е. П. Гаврилов. Так, він пише: «Закон „Про правову охорону програм для ЕОМ і баз даних“ в основній своїй частині повторюється в Законі про авторське право і суміжні права. При цьому в кількох випадках текст Закону уточнюється, змінюється. Тому при наявності розбіжностей між цими законами повинен мати силу Закон про авторське право і суміжні права, зокрема і тому, що він був прийнятий пізніше. З цього загального правила є винятки: ст. 13 Закону про правову охорону програм для ЕОМ… зберігає свою силу; п. 3 ст. 14 закону про комп’ютерних програмах… зберігає силу… Всі інші норми закону про комп’ютерні програми і бази даних поглинені і скасовані Законом» [1] (по контексту — законом РФ «Про авторське право і суміжні права». — Прим. авт. статті).

Ідеї, висловлені в коментарі, розвинені Е. П. Гавриловим у статті «Охорона комп’ютерних програм: який закон слід застосовувати?» [2]. У ній він обґрунтовує думку про те, що «норми Закону 1992 р. скасовані нормами Закону 1993 р.», а «питання про дію 13 ст. вимагає додаткового вивчення».

Після прийняття двох основних законів, що регулюють правовий режим програм для ЕОМ, велася полеміка про те, норми якого з них слід застосовувати. Дотепер у літературі, присвяченій цьому питанню, зустрічаються різні думки.

Так, Р. В. Віталієв вважає, що «в Законі про авторське право і суміжні права міститься ряд норм, уточнюють і розвивають окремі положення Закону про правову охорону програм для ЕОМ і баз даних» [3].

Л. С. Сімкін наводить доводи, частково спрямовані проти думки Е. П. Гаврилова. Зокрема, Л. С. Сімкін пише: «У літературі висловлено думку, згідно з яким при наявності розбіжностей між цими законами повинен мати силу Закон про авторське право і суміжні права, оскільки був прийнятий пізніше. Названі закони співвідносяться між собою як загальний і спеціальний, у зв’язку з чим наведений висновок не зовсім точний. Так, наприклад, Закон про авторське право і суміжні права передбачає компенсацію за порушення авторських прав у сумі від 10 до 50000 МРОТ (ст. 49), тоді як Закон про правову охорону програм для ЕОМ встановлює нижню межу аналогічної компенсації — 5000 МРОТ (ст. 18). Мабуть, при такій розбіжності силу має спеціальний закон» [4].

В. А. Носова та Н.П.Козадеров висловлюють таку думку: «В даний час в Російській Федерації відносини, пов’язані зі створенням, охороною й використанням програм для ЕОМ, регламентуються законом РФ „ПРО правову охорону програм для електронних обчислювальних машин і баз даних“ і законом РФ „Про авторське право і суміжні права“ [5].

Погоджуючись з точкою зору Е. П. Гаврилова, вважаємо, що при вирішенні колізій щодо програм для ЕОМ слід застосовувати Закон про авторське право. Цей закон ми в основному і будемо розглядати, враховуючи, що норми Закону про правову охорону програм для ЕОМ в цьому плані представляють в основному лише термінологічний інтерес.

Порівняння термінів, що стосуються програм для ЕОМ, в законах „Про авторське право і суміжні права“ і „Про правову охорону програм для ЕОМ і баз даних“

В основному термінологія збігається. Визначення програми для ЕОМ, відповідно до ст. 4 Закону про авторське право, майже дослівно повторює визначення, дане в ст. 1 Закону про правову охорону програм для ЕОМ. Програма для ЕОМ представлена як сукупність даних і команд і включає підготовчі матеріали та аудіовізуальні відображення.

П. 2 ст. 7 Закону про авторське право містить терміни: операційна система як один з видів програми для ЕОМ, а також вихідний текст і об’єктний код.

Ст. 3 Закону про правову охорону програм для ЕОМ включає не тільки операційну систему як вид програми для ЕОМ, але ще й програмні комплекси. Видається логічним, що законодавець не ввів поняття програмного комплексу в Закон про авторське право, так як він являє собою сукупність програм і добре визначається нормою про похідний твір.

Згідно п. 5 ст. 3 Закону про правову охорону програм для ЕОМ, правова охорона не поширюється на ідеї та принципи, що лежать в основі програми для ЕОМ, у тому числі на ідеї та принципи організації інтерфейсу і алгоритму, а також мови програмування. Закон про авторське право в більш загальній формі визначає відсутність правового захисту ідей і принципів, не розкриваючи при цьому конкретних етапів написання програми і відповідних результатів.

Ієрархія програми для ЕОМ

Для того, щоб перейти до розгляду технічної сутності етапів створення програми, пропонуємо розглянути наступну ієрархію програми для ЕОМ, що є надбудовою над „hard ware“: операційна система;
компілятори, інтерпретатори, редактори (мови програмування);
прикладні програми.

Кожна з перерахованих ступенів ієрархії сама по собі також є програмою для ЕОМ і має такі форми подання, як вихідний текст і об’єктний код. Система управління базами даних (СУБД) також є програмою для ЕОМ, і її можна розглядати як засіб створення іншої програми або спеціальну мову програмування.

Написання прикладної програми неможливе без використання спеціального програмного забезпечення у вигляді трансляторів мов програмування, а також без системного програмного забезпечення у вигляді операційної системи. Тільки застосування сукупності трьох компонентів — прикладного, спеціального та системного програмного забезпечення — дає можливість написати програми для ЕОМ. Побічно це відображається у вимогах, пропонованих до їх реєстрації: програма для ЕОМ представляється до реєстрації у вигляді фрагментів (або повного) вихідного тексту, при цьому обов’язково зазначаються мови програмування і операційні системи.

Основні етапи створення програми для ЕОМ

На етапі побудови специфікації визначають цілі, завдання, призначення, обмеження, вимоги до конфігурації технічних засобів, мови реалізації. Цей етап виражається, наприклад, у вигляді документа „технічне завдання“.

На етапі проектування визначається структура прикладного програмного забезпечення, йде проектування користувальницьких інтерфейсів. Існує декілька засобів вираження, спеціалізовані мови — UML (уніфікована мова моделювання, що включає в себе сукупність графічних діаграм), ER-модель (визначає зв’язки „сутність — зв’язок“), блок-схема, виражена в графічному мовою представлення алгоритму. Етап проектування є багатоступеневим. У ньому процес йде від загального до приватного, від плану — до опрацювання деталей. При цьому в описі алгоритму існує два рівня:

концептуальний, тобто в алгоритмі використовуються предметно-інтерпретовані об’єкти (наприклад, перевірити залишок рахунку дебету на….). Алгоритм інваріантний мові реалізації і може бути розписаний на різних рівнях абстракції;

програмний, оскільки в блок-схемі, як і в програмі використовуються змінні, імена файлів, таблиць.

Програмний алгоритм також інваріантний мові програмування. Наприклад, контроль умови в блок-схемі позначається через ромб, від якого відходять дві стрілки. При цьому застосовуються мови програмування: IF, CASE та ін

На етапі реалізації (програмування) йде створення, розробка і тестування програми. Програма виражена мовами програмування (C, C++, Алгол, Фортран, Кабол, Бэйсик) і СУБД (Oracle, Sybase, Informix).

На етапі створення документації пишуть роз’яснювальні документи у вигляді настанов для користувачів.

Порівняння правової і технічної термінології для роз’яснення терміна „підготовчі матеріали“

В Законі про авторське право згадка про підготовчих матеріалах відповідає першому і другому етапу створення програми, а саме: побудови специфікації та проектування. Надання підготовчих матеріалів самостійного правового значення представляється логічним, так як кожен з них має свій засіб вираження і мова, а розроблені документи близькі за своїми властивостями до літературного твору і легко переводяться в іншу форму.

Робота на перших двох етапах є найбільш інтелектуальної. За оцінкою експертів, програмування займає лише 30% від усієї роботи по створенню програми, 70% часу йде на розробку підготовчих матеріалів. Помилки перших двох етапів мають найбільш важкі наслідки і складні для виправлення в готовій програмі для ЕОМ.

Результатом першого і другого етапів є поява розробленої проектної документації, причому вона може бути виконана із застосуванням різних мов програмування. Тобто реалізація (програмування) рішень, прийнятих на першому і другому етапах, може бути проведена різними програмними засобами, що підкреслює значимість і самоцінність цих етапів. Можна сказати, що проектна документація інваріантна засобів програмування. Ці два етапи існують автономно, аналогічно планом літературного твору.

Таким чином, підготовчі матеріали, згадані в Законі, являють собою складну систему виражених у матеріальній формі проектних рішень. При цьому форма їх вираження менш формалізована і стандартизована, ніж мови програмування. Це обумовлено вільним вибором засобів подання підготовчих матеріалів — блок-схема, діаграма UML, російська мова. При цьому синтаксис самих засобів менш суворий. Наприклад, якщо в мові програмування оператор присвоєння строго виражений певним знаком :=, то в блок-схемі даний оператор може бути представлений як словесно, так і через знак ” = ” або символом :=.

Як справедливо зауважив Л. С. Сімкін, „як об’єкта охорони визнається не ідея, закладена в алгоритм, а лише конкретна реалізація цього алгоритму у вигляді символічного запису конкретної послідовності операторів і дій над ними“ [6].

Елементи творчості у створенні програми для ЕОМ

Визначення ступеня оригінальності підготовчих матеріалів утруднено перерахованими вище обставинами. Надаючи підготовчих матеріалів правову охорону, законодавець вводить захист розгорнутих планів і проектних рішень. На відміну від літературного твору і від вихідного тексту програми для ЕОМ, де можливо формальне візуальне порівняння двох текстів, візуальне порівняння підготовчих матеріалів можливе тільки при використанні одних і тих же засобів проектування з чітким розумінням еквівалентності використовуваних знаків. При аналізі підготовчих матеріалів немає можливості привести два проекти, виконаних різними засобами, до одного виду, так як немає коштів, аналогічних „декомпіляції“.

Творчий аспект написання програми виражається в позиціях, що відображають індивідуальну роботу автора. Такі характеристики програми свідчать про рівень професіоналізму і відображають особистість автора.

Структура алгоритму (розбиття на блоки, підзадачі, виділення загальних частин), оптимальність (з урахуванням продуктивності і надійності) програми.

Оптимальність рішень, що виражається у: використанні конструкцій мови (одне і те ж дію можна виконати, використовуючи різні конструкції, що мають різну продуктивність);

побудові програми. Наприклад, вважається грамотним не використовувати оператори циклу, які можна винести з циклу, не застосовувати двічі перевірку однієї умови (оператор IF);

структурованості програми.

Забезпечення надійності, тобто оформлення однакових завдань у вигляді підпрограм.

Сукупність перерахованих творчих характеристик програми може свідчити про наявність об’єктивної новизни та унікальний характер твору. Структура алгоритму, програми відображає стиль і рівень автора, його індивідуальність. Також до індивідуальних характеристик можна віднести спосіб ідентифікації змінних.

В якості прикладу наведемо створення програми автоматизації операційного дня банку. На етапі специфікації визначаються: мета — визначена найменуванням;

завдання — обслуговування клієнтів, виконання внутрішніх банківських бухгалтерських операцій, розрахунок відсотків, міжбанківські платежі;

функції — ведення каталогу клієнтів, проведення платіжних документів, ведення курсів валют;

обмеження — не розглядаються багатовалютні рахунку, не встановлюються ліміти на клієнтські рахунки;

вимоги до реалізації — програма повинна бути мережевий, як використовувати СУБД Oracle, для розробки клієнта — Delphi, операційна система — Windows NT.

На етапі проектування будуються функціональна, структурна, організаційна, інформаційна моделі. Інформаційна модель будується у вигляді ER-діаграми. Наприклад, для опису рахунку виділяються сутності — балансовий рахунок, аналітичний рахунок, залишки рахунку. Функціональна модель може бути представлена у вигляді блок-схеми або діаграми діяльності (в анотації UML).

Розробляється структура програмного забезпечення, а саме: поділ завдань між сервером і клієнтом, структура пакетів БД, виділення загальних підпрограм і змінних. Розробляються макети користувальницьких інтерфейсів: введення і виконання платіжних документів, каталог клієнтів і т. д.

На етапі програмування, створюються програми на Delphi і Oracle відповідно до рішень, виробленим на етапі проектування. Розроблювальний вихідний текст повинен відповідати проектним рішенням. Логіка вихідного тексту програми для ЕОМ залежить від підготовчих матеріалів, розроблених на етапах, що передують програмування. Потім пишуть керівництва для користувачів.

Порівняння вихідних текстів двох програм

Якщо при порівнянні підготовчих матеріалів важко визначити можливе протиправне діяння, то при порівнянні двох вихідних текстів завдання спрощується. На думку А. П. Титова, „охороноздатність програми, представленої у вигляді вихідного тексту та/або об’єктних кодів, не викликає сумніву“ [7].

За умови, що блок-схема порівнюваних програм для ЕОМ і мова програмування одні і ті ж, чим вони можуть відрізнятися?

По-перше. Вибором імен змінних (найпростіший спосіб плагіату).

По-друге. Використанням різних синтаксичних конструкцій одного призначення, наприклад, для організації циклу (виконання сукупності операцій кілька разів).

Для подальших міркувань важливо згадати про формулюваннях Закону про правову охорону програм для ЕОМ, таких як „адаптація“ програми і її „модифікація“. Перша означає правомочне внесення змін для забезпечення функціонування програми, а друга — будь-які неправомірні зміни, що не є адаптацією. Ці два терміни зручні, оскільки розділяють допускається Законом про авторське право, вільне відтворення програм для ЕОМ (зміна програми як адаптація) і протиправне використання (зміна програми як модифікація).

Можна зробити висновок про те, що зміна вихідного тексту веде до появи нової програми для ЕОМ, оскільки форма подання тексту буде нова. У відповідності з Законом про авторське право створено новий твір.

При цьому важливо враховувати, що при адаптації програми особою, яка правомірно володіє її екземпляром, в цілях функціонування на технічних засобах користувача Закон про авторське право не порушений. Користувач лише вніс зміни в програму для ЕОМ у відповідності зі своїми технічними засобами, цілком у дусі п. 1 ст. 25 Закону.

Якщо користувач, що вніс зміни в програму для її функціонування, слідом за цим буде відтворювати і поширювати модифіковану програму на ринку, то ця дія може розглядатися як порушення майнових прав на програму, оскільки почалося використання твору.

Якщо ж модифікується блок-схема, яка використовується для реалізації вихідної ідеї, то при застосуванні одного і того ж мови програмування також з’явиться нова програма для ЕОМ, але буде мати місце випадок протиправного використання блок-схеми як частини підготовчих матеріалів.

Встановити, наскільки збігається текст знову створеної і створеної раніше програм, якщо вони написані на різних мовах, — вкрай важке завдання. Якщо перед порівнянням знову створену програму перевести на мову, яка використовується при складанні раніше створеної, то з великою ймовірністю вийде новий текст. Якщо більш пізня програма розроблена із застосуванням відмінного від більш ранньої мови програмування і при цьому підготовчі матеріали характеризуються оригінальністю, то можна говорити лише про запозичення концепції алгоритму, що не є порушенням.

[1]. Гаврилов Е. П. Коментарі до Закону про авторське право і суміжні права. М.: фонд „Правова культура“, 1996. С. 15 — 16.

[2]. Патенти і ліцензії. 2000. № 9. С. 9.

[3]. Віталієв Р. В. Захист прав творців і користувачів програм для ЕОМ і баз даних. М.: Вид-во Російської правової академії Міністерства юстиції РФ, 1996. С. 12.

[4]. Сімкін Л. С. Програми для ЕОМ: правова охорона (правові засоби проти комп’ютерного піратства). М.: Городець, 1998. С. 62 — 63.

[5]. Носова І. А., Козадеров Н.П. Програмне забезпечення: правові проблеми, шляхи їх вирішення. М.: КомпьютерПресс, 1998. С. 7.

[6]. Сімкін Л. С. Указ.соч. С. 46 — 47.

[7]. Тітов А. П. Правова охорона комп’ютерних програм і баз даних. Мінськ: Інститут технічної кібернетики Національної академії наук Білорусі. 2001.