Открыть сервисСервис

Имплементация в программировании и праве

Имплементация (от лат. implementum — «оснащение, выполнение») — термин, используемый в двух основных значениях: в информатике это процесс превращения описания алгоритма, интерфейса или спецификации в работающий программный код; в юриспруденции — процесс введения норм международного договора в действие внутри государства, приведение национального законодательства в соответствие с принятыми обязательствами.

Имплементация в программировании

В программной инженерии имплементация означает написание кода, который реализует заранее определённый контракт: функцию, интерфейс, протокол или архитектурный компонент. Термин часто используется как синоним слова «реализация», однако подчёркивает именно акт воплощения уже принятого решения, а не его проектирование.

Контекст использования

Имплементация выступает связующим звеном между этапами проектирования и тестирования. Типичный цикл включает:

Понятие широко применяется при работе с абстрактными типами данных, интерфейсами и контрактами. Например, в языке Java ключевое слово implements используется классом для объявления того, что он реализует указанный интерфейс. В языке C++ механизмы виртуальных функций позволяют создавать классы, реализующие абстрактные базовые интерфейсы.

Паттерны и принципы

Имплементация тесно связана с принципом разделения интерфейса и реализации. Клиентский код зависит от описанного контракта, не зная деталей работы конкретной реализации. Это позволяет:

  • заменять одну реализацию другой без изменения потребителей кода;
  • создавать несколько реализаций одного интерфейса (например, для разных платформ или алгоритмов);
  • упрощать тестирование за счёт подстановки заглушек.

Популярный паттерн «Стратегия» основан на имплементации семейства взаимозаменяемых алгоритмов за общим интерфейсом. Паттерн «Адаптер» позволяет имплементировать несовместимый интерфейс в виде ожидаемого клиентом набора методов.

Типичные проблемы

Ошибки имплементации — распространённый источник дефектов. К ним относятся:

  • нарушение контракта (несоответствие поведения кода заявленной спецификации);
  • утечки абстракции, когда детали реализации просачиваются в публичный интерфейс;
  • преждевременная оптимизация, ухудшающая читаемость;
  • дублирование логики вместо переиспользования существующих компонентов.

В контексте открытого программного обеспечения имплементация означает создание программ, совместимых со свободными спецификациями. Так, движок LibreOffice реализует формат OpenDocument, а Chromium — спецификации веб-стандартов консорциума W3C.

Имплементация в праве

В международном праве имплементация — это действия государства, направленные на выполнение принятых на себя обязательств по международному договору. Согласно Венской конвенции о праве международных договоров 1969 года, государство обязано соблюдать договор добросовестно и не ссылаться на положения своего внутреннего права как на причину неисполнения.

Формы имплементации

Выделяют две основные формы:

  • прямая имплементация — нормы международного договора действуют непосредственно на территории государства без дополнительных мер со стороны национального законодателя (характерна для стран с монистической моделью правопорядка, например, Нидерландов);
  • косвенная имплементация — требует принятия национального акта (закона, указа), который транслирует нормы договора во внутреннее право (типична для дуалистических правопорядков, включая Россию).

В Российской Федерации согласно статье 15 Конституции общепризнанные принципы и нормы международного права и международные договоры являются составной частью правовой системы. Порядок заключения и прекращения международных договоров регулируется Федеральным законом от 15 июля 1995 года № 101-ФЗ «О международных договорах Российской Федерации».

Имплементация в национальное законодательство

Практическая имплементация требует комплекса мер:

  • правового анализа обязательств, вытекающих из договора;
  • оценки соответствия действующего законодательства требованиям договора;
  • подготовки и принятия необходимых нормативных актов;
  • создания или адаптации институтов, отвечающих за исполнение договора (судов, надзорных органов, служб);
  • обеспечения исполнения судебных решений, принятых по международным договорам.

Примером масштабной имплементации служит присоединение России к Конвенции о защите прав человека и основных свобод, потребовавшее создания института Европейского суда по правам человека в правовой системе страны.

Смежные понятия

С термином «имплементация» тесно связаны понятия «реализация», «деплой» (развёртывание), «интеграция» и «транспозиция» (в праве Европейского союза — прямая или косвенная передача норм директив в национальное право). В юридической литературе иногда проводится различие между имплементацией как процессом и исполнением договора как результатом.

Источники:

  • Мейерс Р. Л. Словарь информатики: терминологический справочник
  • Соммервилл И. Инженерия программного обеспечения
  • Венская конвенция о праве международных договоров (1969)
  • Федеральный закон от 15 июля 1995 года № 101-ФЗ «О международных договорах Российской Федерации»
  • Конституция Российской Федерации, статья 15
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru