Сбор метрик программного кода для анализа его уязвимостей
Автор: Попов Г.А., Жунва М.М.
Журнал: НБИ технологии @nbi-technologies
Рубрика: Информационные технологии в безопасности и телекоммуникациях
Статья в выпуске: 4 т.18, 2024 года.
Бесплатный доступ
Сбор метрической информации о коде является одним из наиболее доступных методов статического анализа, позволяющим выявлять потенциальные ошибки и уязвимости в программном обеспечении. Основные метрики, используемые в этом процессе, включают количество строк комментариев, иерархию наследования, цикломатическую сложность и вычислительную сложность. Количество комментариев помогает оценить понятность кода, в то время как сложные схемы наследования могут привести к трудностям в поддержке и увеличению вероятности ошибок. Цикломатическая сложность, предложенная Томасом Мак-Кейбом, измеряет количество независимых путей выполнения в коде, что позволяет оценить его сложность и потенциальные риски. Метрики Холстеда, основанные на статистическом анализе операторов и операндов, помогают предсказать количество ошибок в программе. Важно отметить, что сбор метрической информации не гарантирует отсутствие ошибок, а лишь указывает на участки кода, требующие внимания. Процесс сбора метрик прост в реализации и не требует значительных усилий со стороны разработчиков, что делает его ценным инструментом для повышения качества программного обеспечения. В заключение, использование метрических данных в анализе кода способствует более эффективному выявлению и устранению потенциальных проблем в программных системах.
Метрическая информация, статический анализ кода, ошибки программного обеспечения, метрики холстеда, анализ кода
Короткий адрес: https://sciup.org/149147334
IDR: 149147334 | УДК: 004.056 | DOI: 10.15688/NBIT.jvolsu.2024.4.4
Текст научной статьи Сбор метрик программного кода для анализа его уязвимостей
DOI:
В современном мире мобильная связь – это не просто коммуникация, а основа доступа к интернету и бесчисленным сервисам. Однако, нестабильный сигнал, обусловленный местоположением абонента, состоянием инфраструктуры оператора и погодными условиями, постоянно снижает качество и скорость работы этих сервисов, приводя к сбоям или полному отсутствию доступа к сети.
При исследовании мобильных сетей в лабораторных комплексах, велика вероятность недостоверности полученных результатов, так как невозможно отразить весь спектр условий работы сети в реальном времени. Поэтому разработка приложения для сбора и анализа данных, получаемых от пользователей различных операторов, востребована на сегодняшний день. Использование данного приложения демонстрирует ряд преимуществ:
-
1) предоставляется доступ к данным с пользовательских устройств, что гарантирует получение реальных результатов в данный момент времени в точке сбора информации;
-
2) существенно упрощается процесс сбора и анализа данных, за счет автоматических функций приложения;
-
3) охватывается широкий географический диапазон с учетом различных условий рельефа и местности [3].
Приложение призвано предоставить пользователям независимую оценку качества мобильной связи различных операторов, основанную на реальных данных и помогающую выбрать наиболее надежного провайдера.
Вычислительные возможности современных смартфонов и API Android открывают новые перспективы для сбора данных о качестве мобильной связи. Доступ к информации о типе сигнала (2G/3G/4G), уровню сигнала (RSPS), операторе, геолокации, а также возможности хранения и передачи данных на сервер для последующей визуализации на интерактивной карте делают мобильные устройства эффективным инструментом мониторинга [2].
При запуске приложения автоматически включается процесс Listener, который фиксирует изменение сигнала. При изменении сигнала, данные сразу отображаются на экране пользователя. Главный экран приложения (рис. 1) работает в режиме реального времени, постоянно отображая актуальные данные.

Последнее обновление: 13:7:56 48.6422531 | 44.4244363
4G | MegaFon pre-5G
-
-103 dBm
4G | Beeline
-
-97 dBm
Сохранить в лог
Рис. 1. Интерфейс используемой программы
Android API [1] предоставляет все необходимое для сбора подробных данных о качестве мобильной связи:
-
– функции CellSignalStrengthLte.getDbm() возвращают уровень сигнала (RSRP) в децибелах;
-
– TelephonyManager.getNetworkType() определяет тип сети (2G, 3G, 4G, 5G);
-
– SubscriptionInfo.getCarrierName() идентифицирует оператора;
– fusedLocationClient.getFusedLocationClient() определяет текущее местоположение устройства.
Рисунок 2 демонстрирует структуру данных, сохраняемых приложением в формате запроса, обеспечивающем простую и эффективную обработку информации. Это позволяет проводить углубленный анализ качества связи и автоматизировать построение отчетов. Интуитивно понятный интерфейс упрощает экспорт и импорт данных.
getData = { "latituede" : "48.641549", "longitude" : "44.4288946", "operatorName" : "Beeline", "levelDbm" : "-104", "timestamp" : "1728297748", "deviceName" : "RMX3630",
Рис. 2. Пример сохраняемых данных
В эксперименте участвовали сети двух операторов – Мегафон и Билайн. Измерение уровня сигнала осуществлялось с помощью мобильного приложения вдоль траектории длиной 11 км (дискретизация 1 км). На рисунке 3 наглядно представлены результаты измерений, отображающие пространственную зависимость уровня сигнала. Наличие преград, характер местности и погодные условия так же учитывались на протяжении всего маршрута.
На рисунке 4 представлен маршрут, по которому проводились измерения уровня сигнала обоих операторов связи с двух разных мобильных устройств.

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

Рис. 3. Сравнение уровня сигнала мобильных операторов связи
ройств одновременно и формировало собственную базу для создания точного географического покрытия мобильных операторов на всем пути. Благодаря данному приложению возможно реализовать географические карты, отображающие результаты измерений уровня сигнала различных операторов, что позволит пользователям выбирать провайдера с учетом реального качества связи в конкретной локации.
Список литературы Сбор метрик программного кода для анализа его уязвимостей
- Arora S., Barak B.Computational Сomplexity: A Modern Approach. Cambridge University Press, 2009. 489 p. DOI: 10.1017/ CBO9780511804090.
- Floyd R.W. Assigning Meanings to Programs. Dordrecht, Springer Netherlands, 1993, pp. 65-81. DOI: 10.1007/978-94-011-1793-7_4.
- Halstead M.H. Elements of Software Science. New York, North Holland, 1979. 127 p.