О применении языков программирования, софта и пр.

В целях обеспечения принципов открытости и прозрачности деятельности, а также в соответствии с требованиями законодательства в сфере информационных технологий организации (п. 4 Приказа Минцифры России от 02.06.2025 № 511), осуществляющие деятельность в сфере информационных технологий, описана информация о применяемом технологическом стеке. Данное положение распространяется на используемые языки программирования, инструментальные средства, составляющие основу процессов разработки и управления.


Построение процесса разработки

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

1.  Методология управления проектами

·  Гибкая методология (Agile): Разработка ведется итеративными циклами (спринтами) продолжительностью от 1 до 4 недель. Это позволяет оперативно реагировать на изменения требований и регулярно поставлять ценность продукта.

2.  Контроль версий и качество кода

·  Система контроля версий (Git): для управления исходным кодом используется стратегия ветвления, при которой новая функциональность разрабатывается в отдельных ветках.

· Статический анализ кода: Все изменения кода в обязательном порядке проходят проверку линтерами для обеспечения соответствия стандартам кодстайла.

· Code Review: Каждое изменение кода попадает в продукт только после прохождения процедуры проверки (Pull Request) и получения согласование (апрувы) от разработчиков.

· Управление задачами: Внесение любых изменений в код строго привязано к задачам в системе Jira. Неразрешенные задачи не принимаются к реализации.

3. Архитектура и функциональность

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

4. Непрерывная интеграция и доставка (CI/CD)

· Автоматизация сборки и развертывания: Внедрена практика непрерывной интеграции и непрерывного развертывания (CI/CD). Это обеспечивает автоматизированную сборку, тестирование и развертывание кода, что позволяет быстро выявлять и исправлять ошибки.

5. Тестирование и безопасность

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

· Модульное тестирование (Unit-тесты).

· Ручное тестирование.

· Автоматизированное тестирование с использованием специализированных сканеров.

· Анализ защищенности: Код проходит статический (SAST) и динамический (DAST) анализ безопасности для выявления и устранения уязвимостей на ранних стадиях.

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


Применение языков программирования в ПО

ПО представляет собой комплекс программных компонентов, собираемых в ОС Linux, написанных с использованием языков программирования:

· язык программирования C (clang 19.1.5 и gcc 14.2.1) (файлы с расширениями .c, .h и др.);

· язык программирования JavaScript (Typescript) 5.7.2 (файлы с расширением .js и др.);

· язык программирования Python 3.13 (файлы с расширением .py);

· языки программирования Go 1.23.4.


Инструменты используемые при разработке

Средства сборки продуктов (Сборочные скрипты Ideco; DroneCI; clang; gcc; Пакетный менеджер DNF); средства разработки (Node.js; Python; C; Typescript; Go; Vim; Visual Studio Code); Средства разработки документации (Latex; MikTex; Visual Studio Code; TexMaker); Средства тестирования (Flake8; Mypy; Pylint; AFLplusplus; Svace; Облако Yandex Cloud).

Получить консультацию
Заполните форму для получения консультации по вопросам Ideco UTM ФСТЭК и мы свяжемся с вами в ближайшее время .
Нажимая кнопку «Отправить» вы соглашаетесь с Политикой конфиденциальности