Перейти к содержимому

Правила которым должна следовать программа это

  • автор:

Структурное программирование — основа хорошего стиля программирования

сценариев

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

Подходящий стиль программирования включает использование:

  • Имена функций и переменных, которые относятся к предполагаемой задаче.
  • Хорошо помещенный отступ.
  • Код комментария для удобства читателя.
  • Хорошая общая презентация кода.

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

Структурированное программирование

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

Концепции программирования

Структурированное программирование указывает, как программа должна быть закодирована, и имеет три понятия:

Нисходящий анализ

Мы всегда делаем программное обеспечение для выполнения повторяемых задач. Эти так называемые бизнес-процессы известны разработчикам как проблема. Поэтому очень важно, чтобы мы понимали, как решить проблему сверху вниз. С помощью анализа сверху вниз мы разбили проблему на маленькие части, в которых каждая часть имеет логический эффект. Мы решаем каждую проблему индивидуально. Пошаговый план проясняет, как мы можем решить проблему шаг за шагом.

Модульное программирование

Во время программирования мы разбиваем код на более мелкие группы инструкций. Эти группы известны как модули, подпрограммы или подпрограммы. Модульное программирование на основе проведенного нисходящего анализа. Он предотвращает переходы с использованием инструкций goto в программе. Инструкции Goto часто приводят к тому, что программа не отслеживается. Переход к программе должен быть запрещен в стиле программирования, это не является частью структурного программирования.

Структурированное кодирование

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

Руководство по кодированию для структурированного программирования

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

Название соглашения

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

отступ

Это пробелы слева в начале строки, обычно пробел 2-8 или одиночная табуляция.

Операторы

Это определяет правила для написания математических, присваивающих и логических операторов. Например, перед оператором присваивания «=» и после него должен быть пробел, как в «x = 2».

Инспекционные структуры

Правила написания if-then-else, case-switch, do-while и только для операторов потока управления и вложенными способами.

Длина линии и разрыв линии

Определяет, сколько символов может быть в одной строке, обычно строка символов 80 длинная. Отмена определяет, как строка должна быть упакована, если она слишком длинная.

черты

Это определяет, как мы должны объявлять и вызывать функции с параметрами или без них.

переменные

В разделе переменных мы указываем, как объявлять и определять переменные разных типов данных.

комментарии

Комментарии принадлежат к важным компонентам кодирования, потому что они описывают в самом коде, что на самом деле делает код. Кроме того, они предоставляют больше информации о программе в коде. Таким образом, этот раздел предназначен в качестве документации для обслуживания программного обеспечения.

Программная документация является важной частью структурного программирования

Создание программной документации является важной частью процесса разработки. Хорошо написанная документация — отличный инструмент для сбора информации о бизнес-процессах, необходимой для понимания процесса разработки программного обеспечения. Документация по программному обеспечению также содержит информацию о том, как использовать продукт.

Правильно оформленная документация должна содержать следующие документы:

Требования

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

Источниками этого документа могут быть:

  • Ранее сохраненные документы о программном обеспечении.
  • Программное обеспечение, которое уже работает на клиента.
  • Отчеты из пользовательских интервью.
  • Анкеты и исследования.

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

Документация по разработке программного обеспечения

Эта документация содержит всю информацию, необходимую для сборки программного обеспечения. Содержит:

  • Архитектура программного обеспечения высокого уровня.
  • Подробный разработка программного обеспечения.
  • Диаграммы с потоками данных.
  • Дизайн база данных.

Эти документы работают как хранилище программистам для разработки программного обеспечения. Хотя эти документы не содержат подробностей о шифровании программы, они предоставляют всю необходимую информацию для шифрования, такую ​​как CRUD-матрица.

Техническая документация

Эта документация постоянно обновляется разработчиками и программистами. Документы содержат всю информацию о коде. При написании кода программисты утверждают:

  • Цель кода.
  • Кто это написал
  • Где это нужно для этого.
  • Что это делает и как это работает.
  • Какие другие источники использует код и так далее.

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

Документация пользователя

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

Эта документация может включать процедуры установки программного обеспечения, руководства пользователя, метод удаления и специальные ссылки для получения дополнительной информации, такой как настройка лицензии и т. Д.

Проблемы структурированного программирования и стиля программирования

Есть несколько проблем для команды разработчиков во время разработки программного обеспечения:

Повторно использовать программный код

Программные интерфейсы современных языков очень продвинуты и имеют огромную библиотеку функций. Однако, чтобы снизить затраты на разработку, мы предпочитаем снова использовать код. Это код, который был ранее создан для другого программного обеспечения.

Управление версиями

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

Целевой хост

Может случиться так, что у заказчика совершенно другая техническая инфраструктура, чем у разработчика. Программное обеспечение, разработанное внутри компании, изначально будет работать внутри компании. Но в конце проекта его необходимо адаптировать к хост-машинам клиента. Иногда невозможно разработать программное обеспечение, которое также работает на целевых машинах.

Обсудить с нами LinkedIn.

Структурное программирование - основа хорошего стиля программирования

Структурное программирование — основа хорошего стиля программирования

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

Что представляют инструменты с открытым исходным кодом?

Открытый исходный код – это децентрализованная модель разработки, которая позволяет любому человеку изменять технологию и обмениваться ею, поскольку ее структура находится в открытом доступе. Этот термин возник в контексте разработки программного обеспечения для обозначения того, что программное обеспечение соответствует определенным критериям свободного распространения. Сегодня термин «метод открытого кода» обозначает более широкий набор ценностей, основанный на принципах свободного обмена информацией, быстрого создания образцов и совместной разработки. Каждый может вносить новые идеи и совершенствовать технологию, чтобы она развивалась органично.

Почему открытый исходный код важен?

Идея открытого исходного кода возникла в технологическом сообществе. Чтобы технические инновации развивались, необходимо глобальное сотрудничество. Например, команда программистов в США разрабатывает новую технологию с открытым исходным кодом для финансового приложения. Другая команда программистов в Австралии модифицирует технологию с помощью новых функций, более подходящих для сектора здравоохранения. Затем третья команда в Азии разрабатывает новые продукты с открытым исходным кодом, в которых в качестве основного компонента используется оригинальная технология.

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

Какие принципы открытого исходного кода?

Основные принципы любого проекта с открытым исходным кодом:

Сообщество

Сообщество с открытым исходным кодом – это группа людей, объединившихся для достижения общей цели. Их общие ценности и цели определяют принятие решений и двигают вперед проект с открытым исходным кодом.

Прозрачность

Проекты с открытым исходным кодом гарантируют, что каждый член сообщества имеет доступ к информации и материалам, необходимым для выполнения своей работы. Зная общую картину, члены команды принимают более эффективные решения и опираются на идеи и открытия друг друга.

Открытое сотрудничество

Общественные проекты поощряют командную работу, поэтому группа решает проблемы, которые не под силу отдельным людям. Например, участники любой инициативы с открытым исходным кодом вносят изменения, чтобы улучшить то, что создал кто-то другой. Вы также можете установить правила, чтобы другие могли изменять решение по мере необходимости в будущем.

Быстрое прототипирование

Проект с открытым исходным кодом следует итерационному подходу, при котором члены команды создают прототипы и часто ими обмениваются. Быстрое прототипирование поощряет культуру экспериментов. Вы можете улучшить и перенести изменения, которые работают, и избавиться от неработающих.

Всеохватывающая меритократия

Движение с открытым исходным кодом поощряет различные точки зрения и обсуждения. Сообщество принимает решения на основе консенсуса, но при этом расставляет приоритеты в пользу успеха. Лучшие идеи получают большую поддержку и усилия со стороны сообщества с открытым исходным кодом.

Какие особенности программного обеспечения с открытым исходным кодом?

Особенности любого программного обеспечения с открытым исходным кодом тесно согласуются с ценностями сообщества.

Открытый исходный код

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

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

Открытая разработка

Открытая разработка гарантирует прозрачный и открытый процесс проектирования и планирования программного обеспечения. Речь идет о том, чтобы позволить сообществу управлять дизайном программного обеспечения и набором функций. Это может быть непросто, поскольку достижение консенсуса сообщества может быть длительным процессом. Однако согласованный с сообществом дизайн приводит к созданию лучшего продукта, который более эффективно удовлетворяет потребности пользователей.

Открытая разработка

Открытая разработка – это принятие инклюзивных и прозрачных процессов разработки, которые позволяют всем участвовать в них на равных. Общедоступные сервисы делают деятельность в области развития заметной. Например, в проектах с открытым исходным кодом обычно принимается набор стандартов, где четко указаны метрики, по которым будет оцениваться вклад. Это позволяет уделять одинаковое внимание всем обновлениям программного обеспечения, будь то обновление от человека, впервые внесшего свой вклад, или от опытного разработчика.

Открытое сообщество

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

Что такое программное обеспечение с открытым исходным кодом?

Программное обеспечение с открытым исходным кодом – это программное обеспечение с исходным кодом, который каждый может изучить, изменить и улучшить. Исходный код – это часть программного обеспечения, с которой программисты работают, чтобы изменить работу приложения или добавить новые функции. Любой человек, имеющий доступ к исходному коду программы, может улучшить или настроить приложение, добавив в него функции или устранив существующие ошибки. Программное обеспечение с открытым исходным кодом присутствует в большинстве веб-приложений и устройств, которыми вы пользуетесь сегодня. Примерами программного обеспечения с открытым исходным кодом являются Linux, операционная система с открытым исходным кодом, и Mozilla Firefox, интернет-браузер с открытым исходным кодом.

Чем отличается программное обеспечение с открытым исходным кодом от других видов программного обеспечения?

Иногда организации или люди, создающие программное обеспечение, предпочитают контролировать его по коммерческим причинам. Они сохраняют исключительные права собственности на исходный код, что означает, что только они могут изменять код для исправления ошибок или добавления новых функций. Такое программное обеспечение называется частным, или программным обеспечением с закрытым исходным кодом. Примеры частного ПО – это Adobe Photoshop и Norton AntiVirus.

Программное обеспечение с открытым исходным кодом и программное обеспечение с закрытым исходным кодом

Три основных отличия программного обеспечения с открытым исходным кодом от закрытого или частного программного обеспечения заключаются в следующем:

Надежность

Частное программное обеспечение зависит от одной организации или разработчика, контролирующего код, чтобы он обновлялся, не содержал ошибок и работал. С другой стороны, более широкое сообщество поддерживает программное обеспечение с открытым исходным кодом. Некоторые из популярных проектов с открытым исходным кодом привлекают тысячи участников со всего мира, которые тщательно тестируют старые и новые изменения. Поэтому часто открытый исходный код более надежен.

Безопасность

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

И наоборот, частное программное обеспечение имеет более длительные циклы обновления по таким причинам:

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

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

С другой стороны, ПО с открытым исходным кодом доступно по лицензии с открытым исходным кодом, что означает, что его можно свободно использовать, изменять и распространять. Контракты на блокировку поставщиков отсутствуют или очень гибкие. Разработчики могут загрузить программное обеспечение с общедоступного веб-сайта и просмотреть весь открытый код на своих компьютерах. Лицензии с открытым исходным кодом также позволяют пользователям делать следующее:

  • Изменять исходный код для собственных проектов.
  • Распространять измененный код, если пользователи продолжают разрешать другим просматривать свои изменения.

Какие существуют типы программного обеспечения с открытым исходным кодом?

Хотя лицензия с открытым исходным кодом является менее ограничительной, чем частная, уровень и диапазон разрешений зависит от типа лицензии. Ниже перечислены основные типы лицензий с открытым исходным кодом.

Лицензия общественного достояния

Лицензия общественного достояния означает, что любой человек может изменять, использовать или коммерциализировать программное обеспечение без ограничений. В большинстве случаев создатели ПО с открытым исходным кодом, являющегося общественным достоянием, приняли намеренное или добровольное решение не соблюдать авторские права на программное обеспечение.

Либеральная лицензия

Либеральные лицензии с открытым исходным кодом содержат минимальные требования к тому, как вы можете изменять или распространять программное обеспечение. Примерами этого типа лицензии являются Apache и Berkeley Source Distribution (BSD). Хотя оригинальное программное обеспечение защищено авторским правом и имеет открытый исходный код, пользователи могут коммерциализировать и распространять модифицированные версии.

Меньшая стандартная общественная лицензия

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

Свободная лицензия

Свободные лицензии являются наиболее распространенными лицензиями на открытый исходный код, и популярным примером является Стандартная общественная лицензия (GPL). Условия свободной лицензии направлены на ограничение коммерциализации.

  • Если вы изменяете компоненты с открытым исходным кодом со свободной лицензией, вы должны выпустить весь новый исходный код вместе с вашим приложением. Однако это не обязательно делать, если вы используете приложение только внутри компании и не публикуете его в открытый доступ.
  • Вы можете продавать свои GPL-модификации, но покупатель может распространять их дальше по своему усмотрению.
  • Вы должны упомянуть всех предыдущих авторов кода в заявлении об авторских правах вашего нового кода.

Кто регулирует использование программного обеспечения с открытым исходным кодом?

Open Source Initiative (OSI) – это глобальная некоммерческая организация, которая занимается просвещением и пропагандой всех видов программного обеспечения с открытым исходным кодом. В качестве органа по стандартизации она поддерживает Open Source Definition – документ, который юридически определяет условия, делающие любое программное обеспечение открытым.

Следуя этому документу организации, вы можете получить одобренный OSI лицензионный товарный знак. Торговая марка повышает доверие пользователей и побуждает других вносить свой вклад и сотрудничать с вами. OSI ведет список утвержденных лицензий и одобряет новые лицензии в сообществе по открытому исходному коду, а также регулирует требование открытых стандартов для программного обеспечения.

Что такое открытые стандарты?

Открытые стандарты – это правила разработки программного обеспечения, которые поддерживают единообразие и совместимость технологий. Они находятся в свободном доступе для внедрения, принятия и обновления, чтобы в результате сделать многие аспекты нашей повседневной жизни более комфортными и удобными.

Например, стандарты позволяют всем типам машин подключаться ко всем типам беспроводных маршрутизаторов. Вы можете использовать свой ноутбук для подключения к Интернету из дома и из любимого кафе, независимо от того, какой маршрутизатор используется. Без стандартов вам пришлось бы искать кафе с маршрутизатором, совместимым с вашим ноутбуком!

Сравнение открытого исходного кода и открытых стандартов

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

Почему существуют коммерческие версии программного обеспечения с открытым исходным кодом?

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

Например, допустим, компания выпускает систему управления базами данных как под лицензией General Public License (GPL), так и под частной лицензией. Любой может использовать версию GPL для разработки программного обеспечения при условии, что он сделает новый код открытым. В отличие от этого, частная версия предлагает дополнительные программные услуги, например следующие:

  • Полностью управляемый сервис баз данных
  • Служба резервного копирования данных корпоративного уровня
  • Дополнительное шифрование безопасности

Вы можете приобрести коммерческое программное обеспечение для внутреннего использования или заплатить больше, чтобы использовать его в своих продуктах и услугах.

Является ли программное обеспечение с открытым исходным кодом тем же, что и свободное программное обеспечение?

Термин свободное программное обеспечение относится к общественному движению, также называемому движением свободного программного обеспечения, целью которого является получение и гарантирование определенных свобод для пользователей ПО. Это движение стремится к тому, чтобы у пользователей была свобода делать следующее:

  • запускать,
  • изучать,
  • изменять программное обеспечение
  • и обмениваться его копиями.

Движение по открытому исходному коду берет свое начало в движении за свободное программное обеспечение, которое зародилось в начале 1980-х годов. Некоторые группы хотели сосредоточиться на практическом применении технологий, и они считали, что термин «свободное программное обеспечение» неясен и препятствует принятию его бизнесом. Они предложили термин «открытый исходный код» и в конечном итоге популяризировали и стандартизировали его, создав Open Source Initiative (OSI).

Программное обеспечение с открытым исходным кодом и свободное программное обеспечение

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

Программное обеспечение с открытым исходным кодом и свободное программное обеспечение

Термин бесплатное программное обеспечение просто означает коммерческий продукт, который предоставляется бесплатно в течение ограниченного времени. Бесплатное ПО также может быть бесплатной пробной версией или версией с ограниченными возможностями продукта, которая в противном случае требует абонентской платы. Даже если вы получите доступ к свободному программному обеспечению, у вас не будет права перепродавать, распространять или каким-либо образом его изменять.

Как AWS вносит свой вклад в программное обеспечение с открытым исходным кодом?

В AWS мы считаем, что открытый исходный код полезен для всех. Мы стремимся донести ценность открытого исходного кода нашим клиентам и операционную эффективность AWS сообществам разработчиков открытого исходного кода. Инженеры AWS регулярно разрабатывают программное обеспечение с открытым исходным кодом и вносят свой вклад в работу тысяч сообществ разработчиков открытого исходного кода на GitHub, Apache, Linux Foundation и других. Вот еще несколько способов, которыми мы поддерживаем открытый исходный код:

  • Мы приложили все усилия для того, чтобы клиенты могли развернуть и использовать в облаке предпочитаемое ими программное обеспечение с открытым исходным кодом. AWS поддерживает более широкий спектр технологий с открытым исходным кодом, чем другие облачные провайдеры.
  • У нас есть несколько долгосрочных проектов в сообществе с открытым исходным кодом. Мы постоянно вносим в эти проекты исправления ошибок, улучшения безопасности, масштабируемости, производительности и функциональности.
  • Мы тесно сотрудничаем с ведущими компаниями с открытым исходным кодом (от HashiCorp и MongoDB до Confluent и Red Hat) и помогаем им превосходить ожидания клиентов.

Узнайте больше о наших проектах с открытым исходным кодом на этой странице или изучите более 1200 проектов с открытым исходным кодом под руководством Amazon на GitHub.

Начните работу с открытым исходным кодом на AWS, создав бесплатный аккаунт уже сегодня.

Правила которым должна следовать программа это

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

Пагубный успех этих компаний побуждает молодых разработчиков следовать их примеру, разрабатывая собственные программы или аппаратуру для господства над пользователями. Иногда они приходят на хакатоны со своими проектами, намереваясь получить поддержку сообщества, но отвергая в то же время дух этого сообщества: они не собираются отвечать сотрудничеством на сотрудничество. Хакатоны, которые допускают такое, подрывают дух сообщества, на котором они основаны.

Некоторые извращенные хакатоны полностью посвящены помощи в обработке информации конкретными компаниями: в некоторых случаях это европейские и канадские банки, а также Expedia. Они прямо этого не говорят, однако судя по объявлениям, они ставят целью содействие в разработке каких-то несвободных программ, а участники приглашаются для помощи этим неблаготворительным проектам.

Эти примеры показывают, до чего могут докатиться хакатоны. Вернемся к более обычному случаю хакатона, не чисто коммерческого, но допускающего проекты, которые несвободны.

Когда разработчик приходит на хакатон с проектом и не говорит, будет ли результат свободным, это не идет явно против духа сообщества, но подрывает этот дух. Хакатоны должны укреплять дух сообщества, на котором они зиждутся, настаивая на том, чтобы проекты хакатона брали обязательство выпускать программы в соответствии с этим духом.

Это значит говорить разработчикам: “Итак, чтобы заслужить нашу поддержку и помощь, вы должны согласиться дать сообществу свободно пользоваться результатами вашего проекта, если вы вообще сочтете их достаточно хорошими для пользования или публикации”.

Участвуя в хакатонах лично, вы можете поддержать этот принцип. Перед присоединением к любому проекту на хакатоне спрашивайте: “Под какой лицензией вы это опубликуете? Перед тем, как подключиться к разработке, я хочу удостовериться, что эти программы будут свободны”. Если разработчики проекта говорят, что они выберут лицензию позже, вы могли бы ответить, что и вы подумаете об участии позже. Не стесняйтесь — если этот разговор услышат другие, они, возможно, поступят так же.

Чтобы определить, какие лицензии свободны, см. список лицензий GNU. Большинство лицензий “открытого исходного текста” являются лицензиями свободных программ, но некоторые лицензии открытого исходного текста не являются лицензиями свободных программ, потому что они слишком ограничительны.

Твердость отдельных людей приводит к своим результатам, но правила самого хакатона сказываются еще больше. Хакатоны должны просить каждый проект-участник обязаться следовать правилу:

Если вы когда-нибудь выпустите или используете эту программу или схему, вы выпустите ее исходный текст под свободной лицензией. Если вы будете распространять программу в исполняемом виде, вы также сделаете ее свободной.

Многие хакатоны финансируются учебными заведениями или проводятся в них, и это еще один довод в пользу этого правила. Свободные программы представляют вклад в знания общества, а несвободные программы удерживают знания от общества. Таким образом, свободные программы поддерживают дух просвещения, а несвободные противостоят ему. Учебные заведения должны настаивать на том, чтобы все развиваемые в них программы были свободными, в том числе и на хакатонах, которым учебное заведение оказывает поддержку.

Примечание переводчика

  1. . от слова “свобода” — в русском языке, с одной стороны, слова, выражающие понятия “свободный” и “бесплатный”, разделены лучше, чем в английском; с другой стороны, в русскоязычной практике часто перемешиваются понятия “свободный” и “свободно распространяемый”, что далеко не одно и то же.

Что нужно знать о роли искусственного интеллекта в вооруженных конфликтах

Что нужно знать о роли искусственного интеллекта в вооруженных конфликтах

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

Статья 12 октябрь 2023

Что такое искусственный интеллект?

Под искусственным интеллектом подразумевается применение компьютерных систем для решения задач, которые обычно требуют осмысления, планирования и обоснования человеком.

Хорошо известным примером является система ИИ, лежащая в основе ChatGPT, но существует и множество других.

Основой систем ИИ являются алгоритмы. Традиционный алгоритм — это набор инструкций или правил, которым компьютер или машина должны следовать, чтобы ответить на вопрос или решить задачу.

Машинное обучение — это вид системы ИИ, которая создает свои собственные инструкции, основываясь на данных, на которых она «обучается». Затем она следует этим инструкциям для поиска решения поставленной задачи. В некотором смысле такая компьютерная программа пишет сама себя. Последние достижения в области ИИ связаны именно с машинным обучением.

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

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

Другая проблема заключается в том, что системы машинного обучения часто представляют собой так называемый «черный ящик». Это значит, что даже если известны входные данные, бывает очень сложно объяснить, почему система выдала тот или иной результат.

Как ИИ может применяться в вооруженных конфликтах?

Вооруженные силы масштабно инвестируют в системы ИИ. Уже есть примеры их применения на поле боя для информационного обеспечения военных операций или в составе различных систем вооружений.

МККК выделил три области, в которых вооруженные силы разрабатывают ИИ для применения в ходе военных действий и которые вызывают серьезные вопросы с гуманитарной точки зрения:

  1. Интеграция ИИ в системы вооружений, в частности, в автономные системы вооружений;
  2. Применение ИИ в кибернетических и информационных операциях;
  3. Военные «системы поддержки процесса принятия решений», основанные на ИИ.

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

МККК призывает правительства установить новые международные правила, которые запретили бы одни виды автономных вооружений и ограничили бы применение других, в том числе контролируемые ИИ.

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

Все случаи подобного применения ИИ в вооруженных конфликтах могут нанести урон гражданскому населению, если международное сообщество в таких случаях не будет придерживаться подхода, ориентированного на человека.

Как применяется ИИ для принятия обоснованных военных решений?

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

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

Например, система распознавания изображений на основе ИИ может применяться для распознавания военных объектов в ходе анализа видео с беспилотников и других потоков разведывательной информации, чтобы рекомендовать вооруженным силам цели для нанесения ударов.

Другими словами, эти системы ИИ могут поставлять данные для принятия решений о том, на кого или на что и когда нападать. Высказывались даже тревожащие предположения о том, что системы на основе ИИ можно применять для принятия решений о применении ядерного оружия.

Некоторые утверждают, что системы поддержки процесса принятия решений могут помочь человеку принимать такие решения, которые будут содействовать соблюдению международного гуманитарного права и сводить к минимуму риски для гражданского населения.

Другие предупреждают, что чрезмерная зависимость от результатов работы ИИ создает проблемы для защиты гражданского населения и соблюдения норм международного гуманитарного права, включая необходимость учитывать мнение человека при принятии правовых решений, особенно из-за непрозрачного и предвзятого характера многих современных систем машинного обучения.

Как можно применять ИИ в кибернетической и информационной войне?

Ожидается, что ИИ изменит как способы защиты от кибератак, так и методы их проведения.

Например, системы с ИИ и возможностями машинного обучения могут в автоматическом режиме искать уязвимости в компьютерных системах противника и одновременно обнаруживать слабые места в своих собственных. При нападении они могут одновременно защищаться и наносить ответные удары в автоматическом режиме.

Подобные разработки могут расширить масштабы кибератак, а также изменить их характер и привести к более серьезным последствиям, особенно для гражданского населения и инфраструктуры.

Информационная война уже давно стала частью конфликтов. Однако цифровое поле боя и системы с ИИ изменили способы распространения информации и создания дезинформации.

Системы с ИИ широко применяются для создания фальшивых текстовых, аудио-, фото- и видеоматериалов, которые все труднее отличить от подлинных.

Не все формы информационной войны связаны с ИИ и машинным обучением, но похоже, что эти технологии изменят характер и масштабы манипулирования информацией, а также их последствия в реальном мире.

Какие опасения вызывает у МККК применение ИИ и машинного обучения в вооруженных конфликтах?

Применение систем ИИ и машинного обучения в вооруженных конфликтах порождают серьезные гуманитарные, правовые, этические последствия и последствия в плане безопасности.

В условиях стремительной интеграции ИИ в военные системы государствам крайне важно учитывать конкретные риски для людей, затронутых вооруженным конфликтом.

Несмотря на широкий спектр последствий, которые необходимо учитывать, можно выделить следующие особые риски:

  1. Автономные системы вооружений представляют все большую опасность.
  2. Растет ущерб гражданскому населению и гражданской инфраструктуре в результате киберопераций и информационных войн.
  3. В военных условиях ИИ отрицательно влияет на качество принятых человеком решений.

Государствам важно сохранить эффективный контроль человека и учет его мнения в ходе применения систем ИИ, в том числе машинного обучения, для решения задач или поиска решений, которые могут иметь серьезные последствия для жизни людей.

На войне нельзя перекладывать на машины и компьютерные программы соблюдение правовых обязательств и моральную ответственность.

К чему МККК призывает международное сообщество?

Очень важно, чтобы в разработке и применении ИИ в районах, затронутых конфликтами, международное сообщество придерживалось подхода, который был бы действительно ориентирован на человека.

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

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

Темы

  • Новые технологии и МГП
  • Кибервойна
  • Рассмотрение новых видов оружия

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *