News
Предисловие.
Abstract
В очередном томе «Трудов Института» представлены статьи, посвященные различным аспектам системного программирования: организации компиляторов и систем программирования, защите программных средств от различного рода атак, тестированию программного обеспечения на основе формальных спецификаций, автоматизации создания программного обеспечения на основе формализованных описаний аппаратуры, модельно-ориентированной разработке программных систем, интеллектуальному анализу данных.
В статье А. Белеванцева, М. Кувыркова, Д. Мельника «Использование параллелизма на уровне команд в компиляторе для Intel Itanium» описывается выполненная авторами разработка и реализация алгоритма эффективной генерации команд раннего выполнения (speculative execution). Технология раннего выполнения – это одна из особенностей EPIC (Explicitly Parallel Instruction Computing), заключающаяся в возможности опережающего выполнения команд, которые используют данные из памяти, что помогает “скрывать” задержки чтения данных и лучше переупорядочивать поток команд. В статье описывается предложенный авторами алгоритм генерации инструкций раннего выполнения, а также приводятся методы, используемые авторами для улучшения эффективности раннего выполнения на основании данных анализа указателей.
В статье П. Довгалюка «Разреженная модель базовых блоков для оптимизации потоков команд» предлагается модель для описания потоков команд в базовых блоках. Модель ориентирована на задачи оптимизации потоков команд по скорости их исполнения. Подобные модели применяются с целью получения кратчайшего по времени расписания команд, поступающих на конвейер процессора.
Статья С. Гайсаряна и К Долговой «Разработка системной поддержки вызова программ, реализованных на языке Fortran, из среды Java посвящена исследованию возможности вызова программ, реализованных на языке Fortran 95, из среды Java. Чтобы среды могли обмениваться данными, должно иметься отображение данных одной среды на данные другой. В статье представлено описание отображения данных языка Fortran на данные языка Java и обратно. Также описывается способ эффективной передачи данных из среды Java в среду Fortran и обратно. Помимо этого, в статье рассматривается метод организации вызова подпрограмм, реализованных на языке Fortran из окружения Java.
В статье П. Бойко «Метод виртуального процессора в защите программного обеспечения» рассматривается метод защиты программного обеспечения от изучения с помощью переноса защищаемого кода в виртуальную среду исполнения. Проводится анализ эффективности, а так же анализ недостатков метода. Предлагается вариант реализации, позволяющий снизить себестоимость разработки.
Статья В. Несова и О. Маликова «Использование информации о линейных зависимостях для обнаружения уязвимостей в исходном коде программ» посвящена некоторым аспектам реализации метода обнаружения потенциальных уязвимостей в программе на основе статического потоково-чувствительного анализа потоков данных. Серьезной проблемой этого метода является большое количество ложных предупреждений. Часто ложные предупреждения вызваны недостаточной точностью определяемой информации об атрибуте – значение некоторой переменной (объекта программы). Самым простым подходом определения информации о целочисленных значениях является анализ на основе интервальных оценок. Предлагаемый авторами подход состоит в поддержании системы линейных неравенств, выполняющихся для числовых атрибутов в данной точке программы.
В статье В. Владимирова «Критерии полноты тестового покрытия в генетических алгоритмах генерации тестов». В статье описывается применение генетических алгоритмов для автоматической генерации тестов. Проводится анализ некоторых широко распространённых критериев полноты на предмет их применимости для построения тестов с помощью генетических алгоритмов. Строятся оценочные функции, соответствующие этим критериям.
Статья С. Грошева «Применение технологии UniTesK для тестирования систем с различной конфигурацией активных потоков управления» посвящена особенностям тестирования различных конфигураций активных потоков с помощью технологии тестирования UniTesK. В статье исследуются возможности использования технологии тестирования UniTesK для построения тестов с различной конфигурацией потоков управления, систематизируется опыт тестирования различных конфигураций активных потоков, разрабатываются подходы для случаев, на которые технология UniTesK в существующем на данный момент виде не рассчитана.
В статье А. Демакова, С. Зеленова и С. Зеленовой «Генерация тестовых данных сложной структуры с учетом контекстных ограничений» представлена технология автоматической генерации тестовых данных сложной структуры, обеспечивающая возможность тонкой настройки процесса генерации тестовых данных и оптимизации этого процесса под особенности функциональности конкретного тестируемого приложения. Подход основан на использовании формального описания данных сложной структуры.
В статье В. Мутилина «Паттерны проектирования тестовых сценариев» рассматриваются вопросы использования типовых решений (паттернов проектирования) для построения тестовых программ, основанных на обобщенных моделях тестируемых систем в форме неявно заданных конечных автоматов.
В статье С. Зеленова и Д. Силакова «Автоматическая генерация тестовых данных для оптимизаторов графических моделей» предлагается метод GraphOTK автоматической генерации тестовых данных для тестирования оптимизирующих трансляторов графических моделей. Это метод позволяет решить проблему автоматической генерации тестовых данных, а также за счет параметризации генератора позволяет варьировать количественные и качественные характеристики получаемых тестовых данных.
В статье В. Рубанова и А. Михеева «Интегрированная среда описания системы команд встраиваемых процессоров» рассматривается интегрированная среда MetaDSP для описания системы команд встраиваемых процессоров. Такое описание включает спецификацию синтаксиса и поведения команд процессора и позволяет автоматически настроить набор кросс-инструментария разработки (ассемблер, дисассемблер, симулятор, отладчик), а также сгенерировать документацию прикладного программиста для целевого процессора. Эти возможности позволяют использовать MetaDSP и соответствующий настраиваемый кросс-инструментарий на этапе дизайна аппаратуры для прототипирования встраиваемых процессоров.
В статье Ю. Фонина «Использование языков описания процессоров высокого уровня для генерации платформо-зависимых частей операционной системы» анализируются языки описания архитектур процессора, рассматриваются основные элементы микропроцессора, а также выделяются базовые элементы архитектуры процессора, необходимые для генерации ядра операционной системы, их параметры и свойства.
В статье Е. Волковой и А. Страбыкина «Анализ и трансформации исполняемых UML моделей» рассматриваются конечные автоматы языка UML, предлагается подход к анализу исполняемых моделей UML. На основании выборки моделей, использованных в промышленных проектах, исследуются их количественные свойства и демонстрируется актуальность трансформации моделей. Выделяются образцы, часто используемые при построении автоматов. Предлагаются новые трансформации, улучшающие структуру модели, описывается процесс их применения к реальной системе.
В статье А. Волкова «Использование ролей в сценариях взаимодействия» рассматривается возможность систематического использования понятия роли в сценариях взаимодействия и исследуются средства, позволяющие строить общее поведение для объектов моделируемой системы по их поведению в различных ролях. Для представления сценариев используется модель взаимодействий UML (UML Interactions). В качестве абстрактных моделей для описания общего поведения объектов рассматриваются автоматные модели и модели, основанные на сетях Петри, в нотации UML (машины состояний и активности соответственно).
Целью статьи Г. Маракаевой «Применение методов выявления закономерностей для классификации химических соединений» является постановка задачи классификации неизвестных химических соединений. С помощью классификации выявляются признаки, характеризующие группу, к которой принадлежит тот или иной объект. Это делается посредством анализа уже классифицированных объектов и формулирования некоторого набора правил. Целью различных алгоритмов классификации, обзор которых приводится в статье, является построение классификационной модели, которая будет предсказывать класс для заданного примера на основании имеющихся значений атрибутов.
Наконец, завершающая сборник статья В.В. Кулямина, В.А. Омельченко и О.Л. Петренко «Формирование профессиональных компетенций современного разработчика ПО» посвящена обоснованию эффективности применения активных методов обучения передовым технологиям разработки программного обеспечения, в частности, формальным методам. Предоставлено несколько примеров таких методов, которые подталкивают студентов к активному мышлению и использованию получаемых при обучении знаний в практической деятельности.
Замечу, что наряду с изданием ежегодного сборника «Трудов Института» ИСП РАН регулярно издает препринты, в которых публикуются более объемные работы сотрудников Института. В частности, одновременно с настоящим сборников публикуются препринты А. Болдакова и М. Гринева «Расширение языка XQuery функциональными update-выражениями» и П. Плешачкова «SXTM: Высокопроизводительный менеджер управления XML-транзакциями». Эти работы, как и многие исследования, результаты которых публикуются в сборнике, поддержаны грантами РФФИ, Министерства науки и образования и президиума РАН.
Edition
Proceedings of the Institute for System Programming, vol. 9 (in Russian), 2006, Стр. 5-6.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).