English version
Поиск
Подписаться на новости Версия для печати


Программы для ЭВМ: проблемы терминологии и охраны

Опубликовано: 21 августа 2002 года
Впервые опубликовано в журнале "Патенты и лицензии" N 6, 2002 год.

Источники правового регулирования программ для ЭВМ

В настоящее время охрана программ для ЭВМ как объекта исключительного права регулируется в России двумя законами: "О правовой охране программ для электронных вычислительных машин и баз данных" и "Об авторском праве и смежных правах". При этом принятый в 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.