Preview

Труды Института системного программирования РАН

Расширенный поиск
Том 33, № 3 (2021)
Скачать выпуск PDF
7-26
Аннотация

В литературе по программной инженерии можно встретить понятие архитектурного стиля программного обеспечения (ПО). Во многих книгах по архитектуре ПО и академических лекциях это понятие рассматривается как одно из важных. Однако, многие разработчики-практики пессимистично настроены в отношении понятия архитектурного стиля. Таким образом, не вполне понятно, является ли данное понятие чисто академической концепцией или действительно используется разработчиками прикладного программного обеспечения. В этой статье делается попытка оценить отношение разработчиков-практиков к концепции архитектурного стиля ПО. Также оценивается популярность одиннадцати конкретных архитектурных стилей. Применяются два метода. Опрос разработчиков был применен для оценки отношения разработчиков и определения того, считает ли сообщество разработчиков возможным автоматическое распознавание архитектурных стилей. Для интеллектуального анализа открытого исходного кода с платформы GitHub применялись автоматические скрипты. Эти скрипты позволяют выявлять факт использования стилей в конкретных репозиториях. Скрипты работают на основе самостоятельно разработанных наборов свойств для выбранных стилей. Было обнаружено, что понятие стиля архитектуры программного обеспечения – это не только «университетская» концепция. Многие разработчики ПО применяют это понятие и соответствующую концепцию в своей работе. В работе сформулированы свойства для одиннадцати архитектурных стилей ПО и описаны разработанные на основе этих свойств автоматические скрипты. Результаты интеллектуального анализа репозиториев с использованием предложенных свойств показали, какие стили популярны среди разработчиков проектов с открытым исходным кодом, опубликованных коммерческими компаниями и некоммерческими сообществами. Результаты интеллектуального анализа репозиториев дополнительно валидируются опросом GitHub-разработчиков.

27-40
Аннотация

Статический анализ программ постепенно осваивает продвинутые случаи использования, и плотная интеграция с инструментами программирования становится все более необходимой. Однако, каждая интеграция требует реализации особенной архитектуры или определенной функциональности в анализаторе. Например, инструменты для Continuous Integration обычно анализируют проекты с нуля, в то время, как тот же самый анализ с нуля малоэффективен для выполнения запросов по коду. Код, который реализует архитектуру для разных интеграций, составляет различные модели работы. В данной статье анализируются модели, которые могут использоваться статическими анализаторами, с точки зрения безопасности, производительности, долговременного хранения данных. Все модели отнесены к одной из групп на основе данных о логическом расположении вычислителя, способах получения ресурсов, методах организации ввода-вывода, а также возможностей по учету изменений и исторических данных. Описаны преимущества и недостатки моделей, приведены рекомендации по их использованию. Для моделей ввода-вывода также протестирована пропускная способность сети. Приводится модель, объединяющая все данные случаи использования. Она протестирована в разрабатываемом статическом анализаторе Equid, и в статье приведены наблюдения об особенностях её работы и реализации.

41-50
Аннотация

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

51-60
Аннотация

В данной статье о проводимом исследовании мы предлагаем новый подход к единому анализу использования кэш-памяти для разработки оптимизаций расположения данных в составе компилятора LCC для архитектур Эльбрус и SPARC. Подход состоит из трёх частей. Первая часть - обобщение двух методов оценки количества кэш-промахов и выбор из них более подходящего для реализации в компиляторе метода. Вторая часть - поиск применимого в компиляторе решения задачи минимизации количества промахов кэша. Третья часть - реализация выбранного метода анализа в компиляторе и использование результатов анализа для оптимизаций расположения данных.

61-76
Аннотация

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

77-86
Аннотация

Задача автоматической классификации запросов приложения, а также задача определения правил маршрутизации запросов на сервере напрямую связана с анализом пользовательского интерфейса динамических веб-страниц и может быть решена на уровне браузера, поскольку он содержит полную информацию о возможных запросах, возникающих при взаимодействии пользователя с каждой из страниц веб-приложения. В данной работе для решения поставленной задачи предлагается использовать данные из контекста выполнения запроса в веб-клиенте с целью выделения дополнительных признаков для классификации запросов. При этом в качестве контекста возникновения или трассы запроса рассматривается совокупность дополнительных идентификационных данных, которые можно получить, наблюдая за выполнением JavaScript-кода на веб-странице или за изменением элементов пользовательского интерфейса в результате активации интерфейсных элементов. К таким данным, например, можно отнести положение и стиль элемента, вызвавшего клиентский запрос, стек вызовов функций JavaScript и изменение в DOM-дереве страницы после запроса. В рамках данной работы для автоматизации выделения трасс запросов и их последующей классификации используется реализация протокола Chrome DevTools.

87-100
Аннотация

За последнее десятилетие Интернет стал гигантским и богатейшим источником данных. Данные используются для извлечения знаний путем выполнения машинного анализа. Чтобы выполнить интеллектуальный анализ данных веб-информации, данные должны быть извлечены из источника и помещены в аналитическое хранилище. Это ETL-процесс. Разные веб-источники имеют разные способы доступа к своим данным: либо API по протоколу HTTP, либо парсинг исходного кода HTML. Статья посвящена подходу к высокопроизводительному извлечению данных из источников, не имеющих API для доступа к данным. Отличительными особенностями предлагаемого подхода являются: балансировка нагрузки, двухуровневая подсистема данных и отделение процесса загрузки файлов от процесса парсинга. Подход реализован в решении со следующими технологиями: Docker, Kubernetes, Scrapy, Python, MongoDB, Redis Cluster и СephFS. Результаты тестирования решения также описаны в этой статье.

101-108
Аннотация

В статье представлен обзор первого впечатления от языка для реализации подхода low code. Со дня релиза прошло около одного месяца.

109-122
Аннотация

В настоящее время большинство критичных по времени бизнес-процессов выполняются с использованием компьютерных технологий. В качестве примера можно рассмотреть финансовые процессы, включая торговлю на фондовых биржах, использующие такие протоколы передачи информации, как Financial Information eXchange (FIX) Protocol. Один из основных вызовов, возникающих относительно таких процессов, – это поддержка наилучшей производительности, так как любая задержка, не установленная спецификацией, может привести к большим финансовым потерям и иному ущербу. Следовательно, необходимо проводить анализ производительности критичных по времени систем и приложений. В данной работе предложен новый метод для анализа производительности критичных по времени приложений, основанный на формализме db-net. Этот формализм позволяет моделировать поток управления системой с использованием цветных сетей Петри, а также моделировать состояния реляционной базы данных. Метод позволяет проводить анализ производительности критичных по времени приложений, которые работают как транзакционные системы и создают логи с сообщениями, представимыми в форме записей в таблице реляционной базы данных. Примером таких приложений является коммуникационная система для торговли на фондовой бирже, работающая на основе протокола FIX. Эта система рассматривается в данной работе для демонстрации применимости предложенного метода. В то же время существует множество подобных систем в различных предметных областях, и предложенный метод может быть также применён и для анализа производительности таких систем. Для тестирования и апробирования метода разработан программный прототип. Он основан на расширении программного инструмента Renew – симулятора ссылочных сетей Петри. Прототип протестирован на логе, содержащем сообщения протокола FIX, предоставленном разработчиком решений для тестирования программного обеспечения одной из мировых фондовых бирж. Показано применение метода для количественного анализа превышений максимально допустимых задержек между сообщениями. Разработанный метод позволяет выполнять анализ производительности как часть проверки соответствия свойств системы заданной модели (conformance checking). Метод может быть использован как для научно-исследовательских целей, так и для анализа производительности реальных информационных систем.

123-142
Аннотация

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

143-154
Аннотация

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

155-170
Аннотация

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

171-198
Аннотация

В наши дни аналитика в реальном времени – одно из наиболее часто используемых понятий в мире баз данных. В широком смысле этот термин означает очень быструю аналитику очень свежих данных. Обычно этот термин используется вместе с другими популярными терминами – гибридной транзакционной / аналитической обработкой (HTAP) и обработкой данных в основной памяти. Причина в том, что самый простой способ предоставить свежие оперативные данные для анализа – это объединить в одной системе как транзакционную, так и аналитическую обработку. Самый эффективный способ обеспечить быструю транзакционную и аналитическую обработку – хранить всю базу данных в основной памяти. Итак, с одной стороны, эти три термина связаны, но с другой стороны, каждый из них имеет собственное право на жизнь. В этой статье мы даем обзор нескольких систем управления данными в памяти, которые не являются системами HTAP. Некоторые из них являются чисто транзакционными, некоторые – чисто аналитическими, а некоторые поддерживают аналитику в реальном времени. Затем мы рассмотрим девять HTAP-СУБД с хранением баз данных в основной памяти, некоторые из которых не поддерживают аналитику в реальном времени. Существующие HTAP-СУБД реального времени с хранением баз данных в основной памяти имеют очень разнообразную и интересную архитектуру, хотя они используют ряд общих подходов: многоверсионное управление параллелизмом, многоядерное распараллеливание, расширенная оптимизация запросов, своевременная компиляция запросов и т.д. Кроме того, нас интересует, используют ли эти системы энергонезависимую память, и если да, то каким образом. Мы пришли к выводу, что появление нового поколения NVM будет значительно стимулировать использование энергонезависимой основной памяти в системах HTAP с хранением баз данных в основной памяти.

199-222
Аннотация

Объемные тексты могут содержать источник и взаимосвязанной информации различных типов, передаваемых посредством отношений, некоторые из которых могут быть оценочными. Проведение анализа так их текстов требует установление подобных связей, определении их участников: события, сущности, и т.д. В данной работе исследуется применение языковых моделей BERT в задаче извлечения оценочных отношений. Для произвольного документа и списка размеченных в нем именованных сущностей, такая задача предполагает составление списка оценочных отношений между ними. Эффективность применения языковых моделей напрямую зависит от объема обучающих данных. Для увеличения объема обучающего множества применяется подход опосредованного обучения. Такое обучение подразумевает применение алгоритма автоматической разметки оценочных отношений из сторонних источников. Предложенный подход разметки оценочных отношений основан на двухэтапном применении FRAME-BASED фактора в анализе новостных документов, для: (1) составления списка оценочных пар (PAIR-BASED), (2) разметки документов с использованием PAIR-BASED и FRAME-BASED факторов. Полученная на основе такого алгоритма коллекция получила название RuAttitudes2017. Для проведения экспериментов с моделями использовался корпус новостных текстов на русском язык е RuSentRel-1.0. Применение опосредованного обучения с использованием коллекции RuAttitudes2017 повысило качество моделей на 10-13% по метрик е F1, и на 25% при сравнении с наилучшими результатами моделей на основе нейронных сетей.



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)