
В современном гражданском обороте договорные отношения по созданию и внедрению программного обеспечения занимают особое место, обусловленное спецификой объекта правового регулирования. Программы для электронно-вычислительных машин, выступая результатом интеллектуальной деятельности и объектом авторского права, одновременно являются сложным техническим продуктом, качество и функциональные характеристики которого подлежат верификации. Разрешение споров, возникающих из договоров на разработку программного обеспечения, требует применения специальных познаний в области информационных технологий, программирования, архитектуры программных систем и методов тестирования. В указанном контексте особое значение приобретает институт судебной экспертизы, позволяющий суду получить научно обоснованные ответы на вопросы, требующие специальных знаний. Настоящее исследование посвящено комплексному анализу компьютерная экспертиза программного обеспечения на соответствие договору как самостоятельного вида судебно-экспертного исследования, имеющего важнейшее доказательственное значение при разрешении споров, вытекающих из договорных обязательств в сфере создания программных продуктов.
Актуальность темы исследования обусловлена несколькими факторами. Во-первых, статистика арбитражных судов свидетельствует о неуклонном росте количества дел, связанных с неисполнением или ненадлежащим исполнением договоров на разработку программного обеспечения. Во-вторых, правоприменительная практика сталкивается с существенными сложностями при оценке качества выполненных работ, поскольку традиционные подходы, применяемые в отношении материальных объектов, не всегда могут быть экстраполированы на нематериальные результаты интеллектуальной деятельности. В-третьих, методология компьютерная экспертиза программного обеспечения на соответствие договору продолжает развиваться, требуя научного осмысления и систематизации накопленного эмпирического материала.
Настоящая статья подготовлена АНО «Центр инженерных экспертиз» и представляет собой теоретико-прикладное исследование, в котором рассматриваются понятие, правовая природа, методологические основания и процессуальные аспекты компьютерная экспертиза программного обеспечения на соответствие договору. Особое внимание уделяется классификации типичных вопросов, решаемых в рамках данного вида экспертизы, а также анализу судебной практики применения экспертных заключений при разрешении споров.
Глава 1. Теоретико-правовые основания компьютерной экспертизы программного обеспечения на соответствие договору
- 1. Понятие и правовая природа договора на разработку программного обеспечения
Для понимания сущности компьютерная экспертиза программного обеспечения на соответствие договору необходимо обратиться к анализу договорных конструкций, опосредующих создание программных продуктов. В отечественной цивилистике договор на разработку программного обеспечения традиционно рассматривается в контексте договора подряда (глава 37 Гражданского кодекса Российской Федерации) либо договора возмездного оказания услуг (глава 39 Гражданского кодекса Российской Федерации). Существуют также точки зрения, квалифицирующие данный договор как смешанный, содержащий элементы подряда, оказания услуг и, в случаях передачи исключительных прав, элементы лицензионного договора или договора об отчуждении исключительного права.
Независимо от конкретной правовой квалификации, любой договор на разработку программного обеспечения характеризуется следующими существенными условиями:
- Предмет договора. Предметом выступает деятельность разработчика по созданию программного продукта с заданными характеристиками и передаче результата заказчику. Предмет должен быть определен таким образом, чтобы можно было однозначно установить, какой именно результат подлежит передаче.
- Сроки выполнения работ. Определяются начальный и конечный сроки выполнения работ, а также могут устанавливаться промежуточные сроки завершения отдельных этапов.
- Цена договора. Определяется стоимость работ и порядок оплаты (единовременная оплата, поэтапная оплата, авансирование).
- Техническое задание. Данный документ, выступающий обычно приложением к договору, содержит детализированное описание требований к создаваемому программному продукту: функциональных, нефункциональных, требований к интерфейсу, производительности, безопасности, совместимости, документированию.
Именно техническое задание является тем эталоном, с которым эксперт сравнивает фактически созданный программный продукт при проведении компьютерная экспертиза программного обеспечения на соответствие договору.
- 2. Понятие и сущность компьютерной экспертизы программного обеспечения на соответствие договору
В современной научной литературе под компьютерная экспертиза программного обеспечения на соответствие договору понимается процессуальное действие, состоящее в проведении исследования программного продукта лицом, обладающим специальными познаниями в области информационных технологий и программирования, с целью установления фактических данных о соответствии (несоответствии) этого продукта условиям договора и требованиям технического задания, имеющих значение для правильного разрешения гражданско-правового спора.
Данный вид экспертизы характеризуется следующими сущностными признаками:
- Специальный субъект. Исследование проводится экспертом, обладающим специальными познаниями в области разработки программного обеспечения, архитектуры программных систем, языков программирования, методов тестирования и верификации.
- Специальный объект. Объектом исследования выступает программное обеспечение как сложный нематериальный объект, представленный в форме исходного кода, исполняемых файлов, технической документации.
- Специальная цель. Целью исследования является установление соответствия или несоответствия программного продукта условиям договора и требованиям технического задания.
- Процессуальная форма. Исследование проводится в рамках гражданского или арбитражного процесса на основании определения суда о назначении экспертизы.
- 3. Соотношение договорной и технической документации как объектов экспертного исследования
При проведении компьютерная экспертиза программного обеспечения на соответствие договору эксперт сталкивается с необходимостью анализа сложной системы документов, определяющих требования к программному продукту. В эту систему входят:
- Договор на разработку. Содержит общие условия, часто отсылающие к приложениям.
- Техническое задание. Основной документ, детально регламентирующий функциональные и нефункциональные требования.
- Спецификации. Могут уточнять отдельные характеристики программы.
- Календарный план. Определяет этапы работ и сроки их выполнения.
- Протоколы согласования. Фиксируют изменения требований в процессе разработки.
- Переписка сторон. Может содержать дополнительные разъяснения и уточнения.
Особую сложность представляют случаи, когда договорная документация содержит противоречия, нечеткие формулировки, оценочные понятия. В таких ситуациях эксперт вынужден либо констатировать невозможность проверки отдельных требований, либо, руководствуясь общепринятыми стандартами и практикой, давать интерпретацию расплывчатым формулировкам.
Глава 2. Методология проведения компьютерной экспертизы программного обеспечения на соответствие договору
- 1. Общие принципы экспертного исследования
Методология компьютерная экспертиза программного обеспечения на соответствие договору базируется на ряде общенаучных и специальных принципов, соблюдение которых обеспечивает достоверность и обоснованность полученных выводов. К числу таких принципов относятся:
- Принцип научной обоснованности. Применяемые методы должны быть научно признанными, апробированными и валидированными для решения соответствующих задач.
- Принцип полноты и всесторонности. Исследование должно охватывать все аспекты, необходимые для ответа на поставленные вопросы, и учитывать все предоставленные материалы.
- Принцип объективности. Выводы эксперта должны основываться исключительно на результатах исследования, свободных от влияния каких-либо внешних факторов.
- Принцип проверяемости. Описание исследования должно позволять другому специалисту, обладающему соответствующей квалификацией, повторить исследование и проверить выводы.
- Принцип процессуальной допустимости. Исследование и его результаты должны соответствовать требованиям процессуального законодательства.
- 2. Классификация методов исследования
В рамках компьютерная экспертиза программного обеспечения на соответствие договору применяются различные методы исследования, которые можно классифицировать по нескольким основаниям.
По стадии исследования:
- Методы подготовительного этапа. Включают изучение договорной документации, анализ поставленных вопросов, планирование исследования.
- Методы раздельного исследования. Предполагают изучение каждого объекта (программы, документации) в отдельности.
- Методы сравнительного исследования. Применяются для сопоставления фактических характеристик программы с требованиями договора.
- Методы синтеза и оценки. Позволяют обобщить полученные результаты и сформулировать выводы.
По характеру исследования:
- Статические методы. Основаны на анализе исходного кода программы без ее исполнения. Включают структурный анализ, семантический анализ, метрический анализ, анализ зависимостей.
- Динамические методы. Основаны на наблюдении за поведением программы в процессе ее исполнения. Включают функциональное тестирование, нагрузочное тестирование, тестирование стабильности, тестирование безопасности.
- Эвристические методы. Основаны на опыте и интуиции эксперта, применяются в сложных нестандартных ситуациях.
- 3. Статические методы анализа программного кода
Статические методы занимают важное место в методологии компьютерная экспертиза программного обеспечения на соответствие договору, поскольку позволяют получить информацию о внутреннем устройстве программы, качестве кода, соответствии стандартам программирования.
Структурный анализ. Данный метод предполагает исследование архитектуры программы, выделение основных модулей и компонентов, определение их взаимосвязей. Эксперт строит структурные схемы, диаграммы классов (для объектно-ориентированных программ), диаграммы потоков данных. Структурный анализ позволяет оценить, насколько архитектура программы соответствует требованиям технического задания, а также выявить потенциальные проблемы, связанные с избыточной сложностью, несвязанностью модулей, нарушениями архитектурных принципов.
Семантический анализ. Метод направлен на исследование смыслового содержания программного кода. Эксперт анализирует реализованные алгоритмы, проверяет их соответствие алгоритмам, описанным в техническом задании. Семантический анализ позволяет выявить логические ошибки, несоответствие реализованной функциональности требуемой.
Метрический анализ. Предполагает расчет количественных показателей программного кода и сравнение их с нормативными значениями или с показателями, косвенно вытекающими из требований технического задания. К числу наиболее информативных метрик относятся:
- Объем кода. Количество строк кода, количество операторов, количество функций. Позволяет косвенно оценить трудоемкость разработки и сложность программы.
- Цикломатическая сложность Мак-Кейба. Количество линейно независимых маршрутов в программе. Высокая сложность свидетельствует о потенциальной труднотестируемости и подверженности ошибкам.
- Связность модулей. Степень взаимозависимости между модулями программы. Высокая связность затрудняет модификацию и сопровождение.
- Зацепление. Степень зависимости модуля от других модулей. Высокое зацепление также негативно сказывается на сопровождаемости.
Анализ соблюдения стандартов кодирования. Многие технические задания содержат требования к оформлению кода, использованию определенных стилей, наличию комментариев. Эксперт проверяет соблюдение этих требований, что может быть важно для оценки качества разработки и возможности дальнейшего сопровождения программы.
- 4. Динамические методы анализа программного обеспечения
Динамические методы незаменимы при проверке реальной функциональности программы, ее производительности, надежности и безопасности. В рамках компьютерная экспертиза программного обеспечения на соответствие договору применяются следующие виды динамического анализа.
Функциональное тестирование. Является основным методом проверки соответствия программы функциональным требованиям технического задания. Эксперт разрабатывает тестовые сценарии, охватывающие все заявленные функции, и последовательно выполняет их, фиксируя результаты. При этом проверяются:
- Реакция программы на корректные входные данные.
• Реакция программы на некорректные, граничные, неожиданные данные.
• Соответствие выходных данных ожидаемым результатам.
• Корректность обработки исключительных ситуаций.
Нагрузочное тестирование. Применяется для проверки нефункциональных требований к производительности. С помощью специализированных программных средств создается нагрузка на систему, имитирующая работу реальных пользователей. Замеряются:
- Время отклика системы при различных уровнях нагрузки.
• Пропускная способность (количество операций в единицу времени).
• Количество одновременно обслуживаемых пользователей.
• Потребление ресурсов (процессор, память, дисковый ввод-вывод).
Полученные результаты сравниваются с требованиями технического задания. Если ТЗ требует, чтобы программа выдерживала одновременную работу ста пользователей со средним временем отклика не более двух секунд, нагрузочное тестирование покажет, соответствует ли программа этим требованиям.
Тестирование стабильности. Предполагает длительную (в течение нескольких часов или суток) работу программы под нагрузкой. Цель — выявить накапливающиеся ошибки, утечки памяти, снижение производительности с течением времени. Тестирование стабильности особенно важно для систем, предназначенных для круглосуточной работы.
Тестирование безопасности. Проводится, если договор содержит требования к защите информации. Эксперт проверяет:
- Надежность механизмов аутентификации и авторизации.
• Защиту от несанкционированного доступа к данным.
• Отсутствие известных уязвимостей.
• Корректность разграничения прав доступа.
• Шифрование передаваемых и хранимых данных.
Интеграционное тестирование. Если программа должна взаимодействовать с другими системами (базами данных, веб-сервисами, аппаратным обеспечением), эксперт проверяет корректность этого взаимодействия. Проверяется правильность передачи данных, обработка ответов, устойчивость к сбоям в каналах связи.
- 5. Анализ документации
Важным компонентом компьютерная экспертиза программного обеспечения на соответствие договору является анализ технической и пользовательской документации. Договор на разработку часто предусматривает создание определенного комплекта документов: руководства пользователя, руководства администратора, описания архитектуры, пояснительной записки, инструкции по установке.
Эксперт проверяет:
- Полноту документации. Все ли документы, предусмотренные договором, разработаны и переданы.
• Соответствие документации программе. Описывает ли документация реальную программу, соответствуют ли приведенные в ней сведения фактическому поведению и интерфейсу программы.
• Качество документации. Насколько полно, понятно и структурированно изложен материал, достаточен ли он для использования программы по назначению.
Глава 3. Типичные вопросы, решаемые в рамках компьютерной экспертизы программного обеспечения на соответствие договору
Правильная постановка вопросов, выносимых на разрешение эксперта, имеет ключевое значение для получения информативного и полезного заключения. Анализ судебной практики позволяет выделить наиболее типичные вопросы, которые ставятся перед экспертом при назначении компьютерная экспертиза программного обеспечения на соответствие договору.
- 1. Вопросы о соответствии функциональным требованиям
- Соответствует ли разработанное программное обеспечение «[Название ПО]» функциональным требованиям, изложенным в разделе [номер раздела] Технического задания № [номер] от [дата]? Если не соответствует, то какие именно функции отсутствуют или реализованы не в полном объеме?
- Реализованы ли в представленном программном продукте все функции, перечисленные в Спецификации (Приложение № [номер] к Договору)? Если нет, то какие функции не реализованы?
- Обеспечивает ли программное обеспечение выполнение алгоритмов расчета, предусмотренных в [указать документ], и соответствуют ли результаты расчета эталонным значениям, приведенным в [указать источник]?
- Корректно ли программное обеспечение обрабатывает все виды входных данных, предусмотренные техническим заданием, включая граничные и исключительные значения?
- 2. Вопросы о соответствии нефункциональным требованиям
- Соответствует ли фактическая производительность программного обеспечения требованиям, заявленным в пункте [номер пункта] Технического задания, в части времени отклика системы при максимальной нагрузке?
- Обеспечивает ли программное обеспечение возможность одновременной работы [количество] пользователей без существенного снижения производительности, как это предусмотрено пунктом [номер пункта] Технического задания?
- Соответствует ли программное обеспечение требованиям к надежности, изложенным в разделе [номер раздела] Технического задания, в части времени безотказной работы и способности восстанавливаться после сбоев?
- Соответствует ли программное обеспечение требованиям к информационной безопасности, предусмотренным [указать документ]? Имеются ли в программе уязвимости, позволяющие осуществлять несанкционированный доступ к данным или их модификацию?
- Соответствует ли пользовательский интерфейс программы требованиям эргономики, изложенным в разделе [номер раздела] Технического задания?
- 3. Вопросы о наличии дефектов и их критичности
- Имеются ли в программном обеспечении ошибки (дефекты), препятствующие его нормальному функционированию в соответствии с целевым назначением?
- Каков характер выявленных дефектов (критические, значительные, незначительные) и какова причина их возникновения?
- Являются ли выявленные недостатки следствием ошибок, допущенных при разработке, либо они вызваны неправильной эксплуатацией программы или действиями третьих лиц?
- Возможно ли использование программного обеспечения по целевому назначению без устранения выявленных недостатков?
- 4. Вопросы об устранимости недостатков и стоимости их устранения
- Являются ли выявленные недостатки устранимыми?
- Какова трудоемкость (в человеко-часах) и стоимость работ по устранению выявленных недостатков?
- Требует ли устранение недостатков внесения изменений в архитектуру программы или может быть выполнено путем модификации отдельных модулей?
- 5. Вопросы о соответствии документации
- Соответствует ли переданная разработчиком техническая документация (руководство пользователя, руководство администратора) фактическому состоянию программного обеспечения?
- Достаточно ли представленной документации для установки, настройки и эксплуатации программного обеспечения?
- Содержит ли документация все разделы, предусмотренные Техническим заданием?
- 6. Комплексные вопросы
- Соответствует ли разработанное программное обеспечение в целом условиям Договора № [номер] от [дата] и требованиям Технического задания (Приложение № [номер])? Если не соответствует, то в чем именно выражается это несоответствие?
- Является ли результат выполненных работ по Договору № [номер] от [дата] (программное обеспечение «[Название ПО]») пригодным для использования по целевому назначению, с учетом всех выявленных недостатков?
Глава 4. Процессуальные аспекты компьютерной экспертизы программного обеспечения на соответствие договору
- 1. Основания и порядок назначения экспертизы
В арбитражном процессе компьютерная экспертиза программного обеспечения на соответствие договору назначается на основании определения суда в соответствии со статьей 82 Арбитражного процессуального кодекса Российской Федерации. Инициатором назначения экспертизы может выступать любая из сторон спора, заявляя соответствующее ходатайство. Суд также вправе назначить экспертизу по собственной инициативе, если сочтет это необходимым для правильного разрешения дела.
Определение о назначении экспертизы должно содержать:
- Наименование экспертного учреждения, которому поручается проведение экспертизы.
• Вопросы, поставленные перед экспертом.
• Перечень материалов, предоставляемых в распоряжение эксперта.
• Срок проведения экспертизы.
• Распределение расходов на проведение экспертизы между сторонами.
Стороны вправе предлагать суду кандидатуры экспертов, вопросы для постановки перед экспертом, а также отводить эксперта при наличии обстоятельств, вызывающих сомнения в его беспристрастности.
- 2. Права и обязанности эксперта
Эксперт, проводящий компьютерная экспертиза программного обеспечения на соответствие договору, обладает процессуальными правами и несет обязанности, предусмотренные статьей 55 Арбитражного процессуального кодекса Российской Федерации.
Эксперт вправе:
- Знакомиться с материалами дела, необходимыми для проведения исследования.
• Заявлять ходатайства о предоставлении дополнительных материалов.
• Отказаться от дачи заключения, если поставленные вопросы выходят за пределы его специальных познаний или предоставленные материалы недостаточны для дачи заключения.
• Участвовать в судебных заседаниях, давать пояснения по проведенному исследованию.
Эксперт обязан:
- Провести полное и объективное исследование.
• Дать обоснованное и объективное заключение по поставленным вопросам.
• Явиться по вызову суда для дачи пояснений.
• Предупредить суд о невозможности дачи заключения в случае наличия препятствий.
Важнейшей обязанностью эксперта при проведении судебной экспертизы является предупреждение об уголовной ответственности за дачу заведомо ложного заключения по статье 307 Уголовного кодекса Российской Федерации.
- 3. Требования к заключению эксперта
Заключение эксперта, полученное в результате компьютерная экспертиза программного обеспечения на соответствие договору, должно соответствовать требованиям статьи 86 Арбитражного процессуального кодекса Российской Федерации и ведомственным нормативным актам, регулирующим судебно-экспертную деятельность.
Структура заключения включает следующие разделы:
Вводная часть. Содержит:
- Дату, время и место составления заключения.
• Сведения об экспертном учреждении и об эксперте (фамилия, имя, отчество, образование, специальность, стаж работы, ученая степень, занимаемая должность).
• Основания проведения экспертизы (реквизиты определения суда).
• Предупреждение эксперта об уголовной ответственности.
• Вопросы, поставленные перед экспертом.
• Перечень материалов, предоставленных для исследования.
• Лица, присутствовавшие при проведении исследования.
Исследовательская часть. Содержит подробное описание проведенных исследований:
- Методы, примененные при исследовании, с обоснованием их выбора.
• Ход исследования по каждому этапу.
• Промежуточные результаты, полученные в ходе исследования.
• Выявленные факты и обстоятельства.
Выводы. Содержат четкие и недвусмысленные ответы на каждый из поставленных вопросов. Выводы должны вытекать из проведенного исследования и быть им обоснованы.
Заключение подписывается экспертом и скрепляется печатью экспертного учреждения.
- 4. Оценка заключения эксперта судом
Заключение эксперта не имеет для суда заранее установленной силы и оценивается наравне с другими доказательствами. Суд оценивает его с точки зрения:
- Относимости. Имеет ли заключение отношение к рассматриваемому делу, помогают ли выводы эксперта установить обстоятельства, имеющие значение для дела.
- Допустимости. Соблюдена ли процедура назначения и проведения экспертизы, предупрежден ли эксперт об уголовной ответственности, не было ли нарушений, влекущих недействительность заключения.
- Достоверности. Насколько научно обоснованными и полными являются исследования, не противоречат ли выводы эксперта другим материалам дела, обладал ли эксперт необходимой квалификацией.
При наличии сомнений в обоснованности заключения или противоречий в выводах эксперта суд может назначить дополнительную или повторную экспертизу.
Глава 5. Анализ судебной практики применения компьютерной экспертизы программного обеспечения на соответствие договору
- 1. Общая характеристика судебной практики
Анализ судебной практики арбитражных судов Российской Федерации за последние годы свидетельствует о широком применении компьютерная экспертиза программного обеспечения на соответствие договору при разрешении споров, связанных с созданием программных продуктов. Экспертные заключения назначаются как по инициативе истцов, обосновывающих требования о расторжении договора и взыскании убытков, так и по инициативе ответчиков, защищающихся от предъявленных требований.
- 2. Типичные ситуации назначения экспертизы
Анализ дел позволяет выделить несколько типичных ситуаций, в которых суды назначают компьютерная экспертиза программного обеспечения на соответствие договору.
Ситуация первая: спор о наличии недостатков. Заказчик отказывается оплачивать работы, ссылаясь на наличие недостатков. Разработчик настаивает на соответствии результата договору. Суд назначает экспертизу для установления факта наличия или отсутствия недостатков.
Ситуация вторая: спор о существенности недостатков. Стороны не оспаривают наличие некоторых недостатков, но расходятся в оценке их существенности. Заказчик утверждает, что недостатки делают использование программы невозможным, разработчик настаивает на их незначительности. Экспертиза позволяет установить, препятствуют ли недостатки использованию программы по назначению.
Ситуация третья: спор о стоимости устранения недостатков. Стороны согласны, что недостатки имеются, и они подлежат устранению. Однако заказчик считает, что стоимость устранения завышена, а разработчик — занижена. Экспертиза определяет рыночную стоимость работ по устранению.
Ситуация четвертая: спор о соответствии скрытым требованиям. Недостатки проявляются только после длительной эксплуатации или при определенных условиях. Заказчик обращается в суд после приемки работ. Экспертиза позволяет установить, являются ли выявленные проблемы скрытыми недостатками, за которые отвечает разработчик.
- 3. Примеры из судебной практики
Пример первый. Между заказчиком и разработчиком был заключен договор на создание программного комплекса для автоматизации складского учета. После приемки работ заказчик обнаружил, что программа некорректно рассчитывает остатки товаров при проведении инвентаризации, что приводило к существенным искажениям данных. Разработчик утверждал, что ошибка вызвана неправильным вводом данных пользователями. Назначенная судом компьютерная экспертиза программного обеспечения на соответствие договору установила, что алгоритм расчета остатков, реализованный в программе, не соответствует алгоритму, описанному в техническом задании, что и является причиной ошибок. Суд удовлетворил иск заказчика о соразмерном уменьшении цены.
Пример второй. Государственный заказчик обратился в суд с иском о расторжении контракта на разработку информационной системы и взыскании неустойки в связи с нарушением сроков. Разработчик возражал, указывая, что заказчик неоднократно менял требования в процессе разработки, что объективно увеличило сроки. Экспертиза установила, что изменения, вносимые заказчиком, были незначительными и не могли существенно повлиять на сроки, а основные задержки связаны с низким качеством разработки. Суд расторг контракт и взыскал неустойку.
Пример третий. Заказчик принял программу без замечаний и оплатил ее. Через полгода эксплуатации выявились ошибки в модуле формирования отчетности, которые ранее не проявлялись. Заказчик потребовал их безвозмездного устранения. Разработчик отказался, ссылаясь на то, что программа была принята и ошибки являются следствием изменения законодательства. Экспертиза показала, что ошибки связаны с некорректной реализацией алгоритмов, действовавших на момент разработки, и должны быть устранены за счет разработчика. Суд обязал разработчика устранить недостатки.
Глава 6. Сложности и проблемные аспекты компьютерной экспертизы программного обеспечения на соответствие договору
Проведение компьютерная экспертиза программного обеспечения на соответствие договору сопряжено с рядом объективных сложностей, требующих особого внимания как со стороны экспертов, так и со сторон спора и суда.
- 1. Проблемы, связанные с качеством технического задания
Наиболее распространенной проблемой является низкое качество самого технического задания. Нередко ТЗ содержит расплывчатые, неконкретные формулировки, которые невозможно объективно проверить. Например, требования типа «интерфейс должен быть удобным и интуитивно понятным» или «программа должна работать быстро» являются оценочными и не поддаются объективной верификации. В таких случаях эксперт вынужден либо констатировать невозможность проверки, либо, что нежелательно, давать субъективную оценку.
Другая проблема — противоречия между различными разделами ТЗ или между ТЗ и иными документами. Например, в одном разделе указано одно требование, а в другом — противоположное. Эксперт должен выявить такие противоречия и, по возможности, разрешить их, руководствуясь общими принципами и здравым смыслом, либо указать на невозможность однозначного ответа.
- 2. Проблемы, связанные с изменением требований в процессе разработки
В реальной практике требования к программному обеспечению редко остаются неизменными на протяжении всего цикла разработки. Заказчик может уточнять, дополнять, изменять требования. Если эти изменения не оформляются дополнительными соглашениями к договору и не фиксируются в новой редакции ТЗ, возникают споры. Эксперту приходится анализировать всю переписку сторон, протоколы совещаний, иные документы, чтобы понять, какие требования были актуальны на момент сдачи работ.
- 3. Проблемы, связанные с отсутствием исходного кода
В некоторых случаях заказчику передаются только откомпилированные файлы (дистрибутивы) программы, а исходный код остается у разработчика. Это существенно ограничивает возможности эксперта. Многие проверки, особенно связанные с качеством кода, наличием скрытых функций, использованием определенных алгоритмов, становятся невозможны. Экспертиза в таких случаях может проводиться только методами «черного ящика» (функциональное тестирование), что не всегда позволяет дать исчерпывающие ответы.
- 4. Проблемы разграничения ошибок и особенностей
Иногда разработчик утверждает, что выявленное несоответствие является не ошибкой, а технической особенностью, вызванной ограничениями используемых технологий, действиями заказчика или объективными обстоятельствами. Эксперт должен глубоко разобраться в сути проблемы, чтобы установить истинную причину.
- 5. Проблемы воссоздания среды функционирования
Многие современные программные комплексы требуют для своей работы сложной инфраструктуры: серверы баз данных, веб-серверы, специализированное аппаратное обеспечение, взаимодействие с внешними сервисами. Воссоздание такой среды в лабораторных условиях для тестирования может потребовать значительных временных и материальных затрат, а иногда и вовсе невозможно. В таких случаях экспертиза проводится на рабочих местах заказчика, что требует координации с его службами и может создавать дополнительные сложности.
Глава 7. Значение компьютерной экспертизы программного обеспечения на соответствие договору для доказывания в арбитражном процессе
- 1. Место экспертного заключения в системе доказательств
В системе доказательств по делам, связанным с разработкой программного обеспечения, заключение эксперта занимает особое место. В отличие от иных письменных доказательств, которые лишь фиксируют определенные факты, экспертное заключение содержит выводы, основанные на применении специальных познаний. Суд, не обладая такими познаниями, вынужден полагаться на мнение эксперта, что придает экспертному заключению особую доказательственную силу.
- 2. Влияние экспертного заключения на исход дела
Практика показывает, что наличие качественного экспертного заключения, подтверждающего позицию стороны, значительно повышает шансы на благоприятный исход дела. И наоборот, отсутствие экспертной поддержки или наличие слабого, неубедительного заключения может привести к проигрышу дела, даже если сторона формально права.
- 3. Роль эксперта в судебном заседании
Важным фактором, повышающим доказательственную силу заключения, является участие эксперта в судебном заседании. Эксперт может дать пояснения по проведенному исследованию, ответить на вопросы суда и сторон, разъяснить сложные моменты, подтвердить обоснованность своих выводов. Присутствие эксперта в суде демонстрирует его уверенность в результатах исследования и готовность отстаивать свою позицию.
Заключение
Проведенное исследование позволяет сформулировать ряд теоретических и практических выводов относительно сущности, методологии и доказательственного значения компьютерная экспертиза программного обеспечения на соответствие договору.
Во-первых, данный вид судебно-экспертного исследования представляет собой самостоятельное направление компьютерно-технической экспертизы, имеющее специфические объекты, задачи и методы. Его правовой основой выступают нормы гражданского и арбитражного процессуального законодательства, а также положения Гражданского кодекса Российской Федерации о договоре подряда и иных договорных конструкциях, опосредующих создание программного обеспечения.
Во-вторых, методология компьютерная экспертиза программного обеспечения на соответствие договору базируется на применении широкого спектра научно обоснованных методов статического и динамического анализа, позволяющих всесторонне и объективно исследовать программный продукт и сопоставить его с требованиями договорной документации. Выбор конкретных методов определяется характером поставленных вопросов, особенностями исследуемого программного обеспечения и доступностью исходных материалов.
В-третьих, круг вопросов, решаемых в рамках данного вида экспертизы, чрезвычайно широк и охватывает как проверку соответствия функциональным и нефункциональным требованиям, так и выявление дефектов, определение их критичности, оценку возможности и стоимости устранения недостатков, анализ документации.
В-четвертых, судебная практика свидетельствует о высокой востребованности компьютерная экспертиза программного обеспечения на соответствие договору при разрешении споров, возникающих из договоров на разработку программного обеспечения. Экспертные заключения, полученные в результате таких исследований, ложатся в основу судебных решений по делам о расторжении договоров, взыскании убытков, соразмерном уменьшении цены, понуждении к устранению недостатков.
В-пятых, проведение данного вида экспертизы сопряжено с рядом объективных сложностей, связанных с качеством договорной документации, изменением требований в процессе разработки, отсутствием исходного кода, необходимостью воссоздания сложной среды функционирования. Преодоление этих сложностей требует от эксперта высокой квалификации, опыта и творческого подхода к решению поставленных задач.
АНО «Центр инженерных экспертиз» обладает всеми необходимыми компетенциями для проведения компьютерной экспертизы программного обеспечения на соответствие договору на высочайшем профессиональном уровне. Наши эксперты имеют многолетний опыт работы как в области разработки программного обеспечения, так и в сфере судебной экспертизы, владеют современными методами анализа и тестирования, знакомы с требованиями процессуального законодательства. Мы гарантируем заказчикам объективность, полноту и научную обоснованность исследований, а также готовность защищать результаты нашей работы в суде.
Обращение к профессиональным экспертам на стадии возникновения спора или при подготовке к судебному разбирательству позволяет получить объективную оценку ситуации, сформировать обоснованную позицию и значительно повысить шансы на успешное разрешение дела. Компьютерная экспертиза программного обеспечения на соответствие договору является надежным инструментом защиты прав и законных интересов участников гражданского оборота в сфере информационных технологий.






Задавайте любые вопросы